OCI game templates for Gameplane. Each <name>/ folder holds module.yaml,
template.yaml, README.md and optional icon.png, specs.md, samples/.
build.sh push publishes them; validate.py preflight-checks them in CI.
A module can ship translations in <name>/locales/<tag>.json (flat JSON,
message id to ICU message).
locales/en.jsonis the English reference. It is generated, never hand-written:gp-module i18n extract <name>. It is not pushed to the registry.- To add a language, copy
en.jsontolocales/<tag>.json(a valid language tag such asdeorpt-BR), translate the values, keep the placeholders, then rungp-module i18n stamp <name>to record the source hashes. build.sh pushadds one layer perlocales/<tag>.json(excepten.json).- CI runs
i18n-check --moduleon every module with alocales/folder: ids must match the template, placeholders must match English, anden.jsonmust not drift from the template.