Provenance: filed under the 2026-08-31 maintainer ruling on objectstack#13670 (option 2 — content is text's sole evaluation channel; the value spelling's retirement was explicitly split out as its own enforce-or-remove question, ⛔ not pre-judged there). Filed by the director seat, session session_01KGtaLpkW1mycWgkbSb3H6t.
The question this card carries
packages/types/src/layout.ts TextSchema declares both content?: string (the spelling the renderer reads FIRST) and value?: string (fallback, read only when content is absent/falsy — {schema.content || schema.value} in renderers/basic/text.tsx). The value declaration's own docblock records, verbatim: "Two spellings for one slot is a dialect, not a design. Retiring one of them is an ADR-0049 enforce-or-remove question and is deliberately NOT decided here."
Since the objectstack#13670 ruling, the case for the dialect has narrowed further: value is now declared out of the expression-binding carriage map by ruling, and the guides' 23 text.value teachings are being rewritten to content (objectui#7015). What remains reading value is the renderer's || fallback and whatever stored documents author it plainly (no census of stored non-expression text.value usage exists yet — that census is this card's first deliverable).
Shape of the eventual decision (for the grader — ⛔ not decided here)
- Retire
value: census stored usage → deprecation/normalization or loud refusal per ADR-0049 route selection; one slot, one spelling.
- Keep as tolerated fallback: then the tolerance must be declared where it lives (the docblock already does half of this) and pinned, so it stops being a dialect and becomes a recorded compatibility arm.
Refs: objectstack#13670 (the ruling) · objectui#7015 (docs fix) · objectui#6150 (the census that declared value in the first place) · objectui#4795 (the binding framework).
Provenance: filed under the 2026-08-31 maintainer ruling on objectstack#13670 (option 2 —
contentistext's sole evaluation channel; thevaluespelling's retirement was explicitly split out as its own enforce-or-remove question, ⛔ not pre-judged there). Filed by the director seat, sessionsession_01KGtaLpkW1mycWgkbSb3H6t.The question this card carries
packages/types/src/layout.tsTextSchemadeclares bothcontent?: string(the spelling the renderer reads FIRST) andvalue?: string(fallback, read only whencontentis absent/falsy —{schema.content || schema.value}inrenderers/basic/text.tsx). Thevaluedeclaration's own docblock records, verbatim: "Two spellings for one slot is a dialect, not a design. Retiring one of them is an ADR-0049 enforce-or-remove question and is deliberately NOT decided here."Since the objectstack#13670 ruling, the case for the dialect has narrowed further:
valueis now declared out of the expression-binding carriage map by ruling, and the guides' 23text.valueteachings are being rewritten tocontent(objectui#7015). What remains readingvalueis the renderer's||fallback and whatever stored documents author it plainly (no census of stored non-expressiontext.valueusage exists yet — that census is this card's first deliverable).Shape of the eventual decision (for the grader — ⛔ not decided here)
value: census stored usage → deprecation/normalization or loud refusal per ADR-0049 route selection; one slot, one spelling.Refs: objectstack#13670 (the ruling) · objectui#7015 (docs fix) · objectui#6150 (the census that declared
valuein the first place) · objectui#4795 (the binding framework).