You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Split from the #4001 strictness campaign's data/ batch (the Batch C premise check). This issue is the removal tracker the strictness ledger's no door row convention requires — the enforce-or-remove decision itself is already made and recorded; nothing here is open for debate, only scheduled.
Facts (measured 2026-08-13 on main)
packages/spec/src/data/field.zod.ts exports two @deprecated value shapes that nothing consumes:
Schema
Consumers outside its own tests
Contradiction with the enforced contract
LocationCoordinatesSchema
none — the only non-test reference anywhere is a type-alias-convention.pin.test.ts row
declares {latitude, longitude}; the platform stores {lat, lng} (LocationValueSchema / valueSchemaFor, ADR-0104 D1; the field-zoo round-trip oracle)
CurrencyValueSchema
none — own field.test.ts block + a type-alias pin row; field-value.test.ts additionally pins that the enforced contract REJECTS this object shape
declares {value, currency}; a currency field's stored value is a BARE NUMBER everywhere (validator, SQL driver float column, import coercion)
Neither schema is referenced by any other schema (no carrier key), so both are unreachable from every metadata-type root by construction; neither is parsed outside its own test file. Sibling-repo sweep (objectui): zero references.
The decision is already made
ADR-0104's "Reality wins" section: CurrencyValueSchema is deleted; location adopts the stored {lat, lng} (delivered as LocationValueSchema in field-value.zod.ts) — "An exported-but-unconsumed value schema is exactly the inert metadata ADR-0078 forbids." Both JSDoc deprecations are on main and say "Removal rides the next spec major."
Scope of the removal (when the next spec major opens)
Delete LocationCoordinatesSchema + CurrencyValueSchema and their LocationCoordinates / CurrencyValue type exports from field.zod.ts (spec-property-retirement playbook: ADR-0087 conversion where applicable, generated baselines, check:api-surface re-anchor).
Delete their field.test.ts blocks and the two type-alias-convention.pin.test.ts rows.
Regenerate reference docs (content/docs/references/data/field.mdx currently lists both).
They are the strictness ledger's no door class: no carrier, no parse — .strict() is a property of a parse, and with no parse it enforces nothing while making a dead slot look load-bearing (#4583). The ledger row is being re-verdicted from authorable to no door pointing here (PR referencing #4001).
Split from the #4001 strictness campaign's
data/batch (the Batch C premise check). This issue is the removal tracker the strictness ledger'sno doorrow convention requires — the enforce-or-remove decision itself is already made and recorded; nothing here is open for debate, only scheduled.Facts (measured 2026-08-13 on
main)packages/spec/src/data/field.zod.tsexports two@deprecatedvalue shapes that nothing consumes:LocationCoordinatesSchematype-alias-convention.pin.test.tsrow{latitude, longitude}; the platform stores{lat, lng}(LocationValueSchema/valueSchemaFor, ADR-0104 D1; the field-zoo round-trip oracle)CurrencyValueSchemafield.test.tsblock + a type-alias pin row;field-value.test.tsadditionally pins that the enforced contract REJECTS this object shape{value, currency}; acurrencyfield's stored value is a BARE NUMBER everywhere (validator, SQL driverfloatcolumn, import coercion)Neither schema is referenced by any other schema (no carrier key), so both are unreachable from every metadata-type root by construction; neither is parsed outside its own test file. Sibling-repo sweep (objectui): zero references.
The decision is already made
ADR-0104's "Reality wins" section:
CurrencyValueSchemais deleted;locationadopts the stored{lat, lng}(delivered asLocationValueSchemainfield-value.zod.ts) — "An exported-but-unconsumed value schema is exactly the inert metadata ADR-0078 forbids." Both JSDoc deprecations are onmainand say "Removal rides the next spec major."Scope of the removal (when the next spec major opens)
LocationCoordinatesSchema+CurrencyValueSchemaand theirLocationCoordinates/CurrencyValuetype exports fromfield.zod.ts(spec-property-retirement playbook: ADR-0087 conversion where applicable, generated baselines,check:api-surfacere-anchor).field.test.tsblocks and the twotype-alias-convention.pin.test.tsrows.content/docs/references/data/field.mdxcurrently lists both).data/field.zod.tsrow (its 2 strip sites go to zero by subtraction, the ui/ 五个交互配置文件(22 个 z.object 站点)没有任何承载键:实测「无授权门」,按 ADR-0049 定去留 #4988/ADR-0049 定去留:NotificationActionSchema/EmbedConfigSchema实测没有授权门(#4001 批 14 改判的两个站点) #5015 route — the reverse pin cannot tell subtraction from closure, so the row prose must say which it was).Why not
.strict()them meanwhileThey are the strictness ledger's
no doorclass: no carrier, no parse —.strict()is a property of a parse, and with no parse it enforces nothing while making a dead slot look load-bearing (#4583). The ledger row is being re-verdicted fromauthorabletono doorpointing here (PR referencing #4001).Refs: #4001 (campaign anchor), ADR-0104, ADR-0049, ADR-0078.