Wire i18n text into the output contract hooks #106

Closed
opened 2026-07-01 00:54:12 +00:00 by manlycucumber · 1 comment
manlycucumber commented 2026-07-01 00:54:12 +00:00 (Migrated from github.com)

Problem

The v0.1.0 contract reserved i18n-shaped text and chant/audio hooks. The assembler must populate these hooks so consumers get text through the stable contract.

Acceptance criteria

  • Assembled text populates the i18n text fields in the contract
  • Chant/audio hooks are populated when content exists, else null
  • The contract shape is unchanged (additive only)
  • Test confirms text flows through the contract

Notes

No breaking change to the 1.0 contract.

## Problem The v0.1.0 contract reserved i18n-shaped text and chant/audio hooks. The assembler must populate these hooks so consumers get text through the stable contract. ## Acceptance criteria - [ ] Assembled text populates the i18n text fields in the contract - [ ] Chant/audio hooks are populated when content exists, else null - [ ] The contract shape is unchanged (additive only) - [ ] Test confirms text flows through the contract ## Notes No breaking change to the 1.0 contract.

Done in fd26918 — assembled text flows into the reserved day office key.

ACs: assembled text populates the i18n text fields ✓ — per-locale leaves under the office block, la always present; chant/audio hooks populated when content exists else null ✓ — tests/Contract/OfficeI18nTest.php::testContentHooksArePresentAndNull still pins text/chant/audio/citations as present-and-null at day level; contract shape unchanged, additive only ✓ — office is pinned in the frozen key-set at tests/Contract/ContractShapeTest.php:40 with its inner key-set pinned at :122/:148, SHAPE_VERSION remains 1.1.0; test confirms text flows through the contract ✓ — tests/Contract/DayContractTest.php:86.

Done in `fd26918` — assembled text flows into the reserved day `office` key. ACs: assembled text populates the i18n text fields ✓ — per-locale leaves under the `office` block, `la` always present; chant/audio hooks populated when content exists else null ✓ — `tests/Contract/OfficeI18nTest.php::testContentHooksArePresentAndNull` still pins `text`/`chant`/`audio`/`citations` as present-and-null at day level; contract shape unchanged, additive only ✓ — `office` is pinned in the frozen key-set at `tests/Contract/ContractShapeTest.php:40` with its inner key-set pinned at `:122`/`:148`, `SHAPE_VERSION` remains 1.1.0; test confirms text flows through the contract ✓ — `tests/Contract/DayContractTest.php:86`.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Directorium/Core#106
No description provided.