014-establishes-wrapper-na-alias
Frontmatter sugar: `unit:`-wrapped establishes items and the `n/a` implementation alias
Two pieces of authoring sugar for the predecessor dialect, both normalized away at parse so nothing new reaches registry.json. (1) An authority unit may be written as a single-key `{ unit: <unit> }` wrapper -- a third 1:1 representation alongside the existing bare-string and tagged-map forms -- which the Unit deserializer unwraps to its inner unit. The corpus uses this on `establishes` items (one wrapper per item, `unit` the only field). (2) `implementation: n/a` is accepted as a deserialize-only alias for the canonical `n-a`, which stays the only spelling ever emitted. Neither changes the registry schema or any consumer; both unblock adopting a corpus authored in the OAP dialect (389 wrapped establishes items across ~97 specs; 5 specs using `n/a`) without a mass frontmatter migration.
Read the full pinned specification ↗Relationships
depends on
Claimed units
- extends
{ "nature": "additive", "spec": "000-spec-spine-bootstrap", "unit": { "kind": "file", "path": "crates/spec-spine-types/src/unit.rs" } } - extends
{ "nature": "additive", "spec": "000-spec-spine-bootstrap", "unit": { "kind": "file", "path": "crates/spec-spine-types/src/frontmatter.rs" } } - extends
{ "nature": "additive", "spec": "000-spec-spine-bootstrap", "unit": { "kind": "file", "path": "crates/spec-spine-types/tests/grammar.rs" } } - extends
{ "nature": "additive", "spec": "001-compile-registry", "unit": { "kind": "file", "path": "crates/spec-spine-core/tests/compile.rs" } }
Source headings
- 014: `unit:`-wrapped establishes items and the `n/a` implementation alias
- 1. Purpose
- 2. Territory
- 3. Behavior
- 3.1 The `unit:` wrapper (a third 1:1 unit representation)
- 3.2 The `n/a` implementation alias
- 3.3 Normalization and equivalence (the sugar never escapes)
- 3.4 Tests (minimum)
- 4. Out of scope
Frozen anchors
No frozen anchors declared.