Observation filed from work on #14254 (resolver half, PR #14707). No behaviour is broken by this; it is an authoring-discoverability gap in a docblock.
ObjectTranslationDataSchema._actions in packages/spec/src/system/translation.zod.ts (around line 334) documents the convention as:
objects.OBJECT._actions.ACTION.label
objects.OBJECT._actions.ACTION.confirmText
objects.OBJECT._actions.ACTION.successMessage
objects.OBJECT._actions.ACTION.resultDialog.*
Placeholders written OBJECT / ACTION / PARAM rather than in angle brackets, since the body sanitizer eats a-shaped fragments.
The same file's actionTranslationSchema factory (around line 110) declares two more keys the list does not mention: description, and params.PARAM.{label, helpText, placeholder, options}. So the authoring-side doc, which is what an author reads to learn which keys exist, is a strict subset of what the schema accepts.
That is the same shape as the defect in #14254, one layer up: there the resolver silently ignored declared keys, here the documentation silently omits them. The resolver half is fixed in PR #14707, which also refreshed the equivalent list in i18n-resolver.ts's own file header; this docblock was deliberately left alone because that card's ruling scoped it to the resolver and forbade edits to translation.zod.ts.
Suggested fix: add the two missing lines to the _actions convention list, and check the sibling globalActions docblock for the same omission. Docs-only, one file.
Generated by Claude Code
Generated by Claude Code
Observation filed from work on #14254 (resolver half, PR #14707). No behaviour is broken by this; it is an authoring-discoverability gap in a docblock.
ObjectTranslationDataSchema._actionsinpackages/spec/src/system/translation.zod.ts(around line 334) documents the convention as:Placeholders written
OBJECT/ACTION/PARAMrather than in angle brackets, since the body sanitizer eatsa-shaped fragments.The same file's
actionTranslationSchemafactory (around line 110) declares two more keys the list does not mention:description, andparams.PARAM.{label, helpText, placeholder, options}. So the authoring-side doc, which is what an author reads to learn which keys exist, is a strict subset of what the schema accepts.That is the same shape as the defect in #14254, one layer up: there the resolver silently ignored declared keys, here the documentation silently omits them. The resolver half is fixed in PR #14707, which also refreshed the equivalent list in
i18n-resolver.ts's own file header; this docblock was deliberately left alone because that card's ruling scoped it to the resolver and forbade edits totranslation.zod.ts.Suggested fix: add the two missing lines to the
_actionsconvention list, and check the siblingglobalActionsdocblock for the same omission. Docs-only, one file.Generated by Claude Code
Generated by Claude Code