Filed by the director seat executing the maintainer's 2026-08-28 ruling on objectui#6263 (summon #2 batch #4 item 1, option 甲; ruling verbatim: 「同意」 adopting the recommendation as presented). Full corrected analysis and provenance live on objectui#6263.
The two faces, so nobody re-conflates them
SelectOptionSchema (packages/spec/src/data/field.zod.ts:217) serves two surfaces:
The ruled disposition — 甲
Narrow default out of the form-view usage only: the FormView vocabulary's option shape stops accepting the key (an Omit-derived shape or equivalent at the form-view reference site — ⛔ SelectOptionSchema itself is not edited), with a tombstone whose rejection prose points the author at the right spellings: declare the pre-selected choice on the object definition — either the field-level defaultValue or the object field option's default: true (both enforced there).
Hard precondition (part of the ruling)
Census FIRST: count default (and its alias spellings isDefault/selected) inside form-view options across this tree, the example apps, and the published *.form.ts corpus — with a positive control for the instrument. Zero ⇒ proceed. Non-zero ⇒ STOP and report the count on this card; the maintainer decides between a migration note and reverting to honouring it.
Fences and mechanics
Refs: objectui#6263 (ruling anchor + corrected analysis) · #7246 / PR #7388 (the enforced object-field face — the ruling this card must not disturb) · objectui#6247 / PR #6618 (the sibling key's ui-side tombstone precedent) · #7127 (field-level defaultValue shapes).
Filed by the director seat executing the maintainer's 2026-08-28 ruling on objectui#6263 (summon #2 batch #4 item 1, option 甲; ruling verbatim: 「同意」 adopting the recommendation as presented). Full corrected analysis and provenance live on objectui#6263.
The two faces, so nobody re-conflates them
SelectOptionSchema(packages/spec/src/data/field.zod.ts:217) serves two surfaces:Field.select.options): the per-optiondefaultkey is ENFORCED — maintainer ruling [finding]SelectOption.defaultis an authorable key that nothing on the insert path ever reads — the select idiom is inert #7246 (2026-08-10, verbatim: "enforce"), implemented in merged PR feat(objectql): enforce the select idiom — the option markeddefault: trueis the field default (#7246) #7388:applyFieldDefaultsfalls back to the option markeddefault: truewhen the field declares nodefaultValue;defaultValuewins when both are declared; precedence pinned. ⛔ This face is untouchable by this card. The alias rows (isDefault/selected→default) feed an enforced key and stay.*.form.tscontrol options, via the FormView vocabulary): the same key parses clean and nothing reads it — the engine's insert-path fallback consults the OBJECT definition's options, not a form view's, and the metadata-admin renderer does not seed from it (measured on objectui#6263: all three consuming controls drop it). The [finding]SelectOption.defaultis an authorable key that nothing on the insert path ever reads — the select idiom is inert #7246 ruling's own rider points the way: "the console needs no second default contract" — defaults are owned by the server from the object definition.The ruled disposition — 甲
Narrow
defaultout of the form-view usage only: the FormView vocabulary's option shape stops accepting the key (anOmit-derived shape or equivalent at the form-view reference site — ⛔SelectOptionSchemaitself is not edited), with a tombstone whose rejection prose points the author at the right spellings: declare the pre-selected choice on the object definition — either the field-leveldefaultValueor the object field option'sdefault: true(both enforced there).Hard precondition (part of the ruling)
Census FIRST: count
default(and its alias spellingsisDefault/selected) inside form-view options across this tree, the example apps, and the published*.form.tscorpus — with a positive control for the instrument. Zero ⇒ proceed. Non-zero ⇒ STOP and report the count on this card; the maintainer decides between a migration note and reverting to honouring it.Fences and mechanics
packages/spec/src/**; content limb — narrowing the accept set of the published FormView schema). Dispatch atCONTRACT_REVIEW_TIER;needs:contract-reviewattached at filing.applyFieldDefaults, the feat(objectql): enforce the select idiom — the option markeddefault: trueis the field default (#7246) #7388 precedence pin, or the alias table.pm:blockedon this card; when this lands, re-verify on the merged ref — the ui-side derived type already tombstones the key (objectui PR refactor(service-messaging): migrate isUniqueViolation onto the shared @objectstack/types predicate (#6542) #6618), so the residual ui work is likely nil and that card closes on verification.Refs: objectui#6263 (ruling anchor + corrected analysis) · #7246 / PR #7388 (the enforced object-field face — the ruling this card must not disturb) · objectui#6247 / PR #6618 (the sibling key's ui-side tombstone precedent) · #7127 (field-level defaultValue shapes).