Adds UIStrings autoload that loads display text from a YAML file,
replacing hardcoded strings in HUD and interaction prompt. Copy team
can now author UI microcopy in client/data/ui-strings.yaml without
touching GDScript. Includes 38 strings across 5 categories and 16
gdUnit4 tests for the parser and lookup API.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Well-tested (15 tests, 114% test-to-code ratio), clean integration into HUD and interaction prompt. Fallback-to-key prevents crashes. Hot-reload support is a nice dev convenience.
Tyre (Architecture): APPROVE
Architecturally correct — UI labels are client rendering concerns per D-020, not game content. client/data/ is the right location. D-042 will be updated to match implementation (documentation fix, not code fix).
Verdict: APPROVED
Note: D-042 in decisions/architecture.md will be corrected to reflect client/data/ui-strings.yaml path and remove reference to non-existent content loader.
## Review: client -> main (PR #20)
### Hoshe (Code Quality): APPROVE
Well-tested (15 tests, 114% test-to-code ratio), clean integration into HUD and interaction prompt. Fallback-to-key prevents crashes. Hot-reload support is a nice dev convenience.
### Tyre (Architecture): APPROVE
Architecturally correct — UI labels are client rendering concerns per D-020, not game content. `client/data/` is the right location. D-042 will be updated to match implementation (documentation fix, not code fix).
### Verdict: APPROVED
Note: D-042 in `decisions/architecture.md` will be corrected to reflect `client/data/ui-strings.yaml` path and remove reference to non-existent content loader.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Sprint 5 client delivery — adds a YAML-based UI string loading system for ticket #409 (UI microcopy).
get_text("dotted.key")lookup, fallback-to-key on missMode:,Time:,Health:) and interaction prompt prefix (E -) now loaded fromclient/data/ui-strings.yamlCopy team can now edit
client/data/ui-strings.yamlto add/revise strings without touching GDScript.Test plan
make test-client— 131/131 pass, 0 errors, 0 failuresMode: Normalnothud.mode_label: NormalE - Talknear NPCReview: client -> main (PR #20)
Hoshe (Code Quality): APPROVE
Well-tested (15 tests, 114% test-to-code ratio), clean integration into HUD and interaction prompt. Fallback-to-key prevents crashes. Hot-reload support is a nice dev convenience.
Tyre (Architecture): APPROVE
Architecturally correct — UI labels are client rendering concerns per D-020, not game content.
client/data/is the right location. D-042 will be updated to match implementation (documentation fix, not code fix).Verdict: APPROVED
Note: D-042 in
decisions/architecture.mdwill be corrected to reflectclient/data/ui-strings.yamlpath and remove reference to non-existent content loader.Pull request closed