diff --git a/docs/design/contracts/c24-blueprint-data.md b/docs/design/contracts/c24-blueprint-data.md index 3e07988..860e261 100644 --- a/docs/design/contracts/c24-blueprint-data.md +++ b/docs/design/contracts/c24-blueprint-data.md @@ -70,8 +70,10 @@ loop for the round-trippable vocabulary. **Out of the round-trippable set** (deliberate; fails clean as `UnknownNodeType`): recording sinks (they capture an `mpsc::Sender` — runtime identity, not param-generic -data, C19) and construction-arg builders (`LinComb` / `CostSum` / `SimBroker` / -`Session` — structural-axis args, a C20 concern), additively addable later (#156). +data, C19) and `SimBroker` (a scalar-typed baked value, a narrower gap than the args +channel). `LinComb` / `CostSum` / `Session` — formerly listed here — entered the +round-trippable set with #271's typed construction args (see the add-op `args` +clause and the data-driven `format_version` below). ### Runs and families are built FROM blueprint-data @@ -269,12 +271,13 @@ Tier-1 (additive-optional) is serde-default silent-ignore with **no** `format_ve bump — a new optional field defaults to prior behaviour (C1). Tier-2 (must-understand: a new node type, edge semantics, or structural-axis kind) **bumps** `format_version` so an old reader refuses cleanly (`LoadError::UnsupportedVersion` / `UnknownNodeType`). -**Pre-ship dormancy (#61):** until the first external ship there are no out-of-repo -readers — reader and writer change atomically in one commit — so the Tier-2 bump -discipline is dormant and structurally-semantic additions (the `gangs` section) land as -additive-optional fields of v1; the first ship consciously freezes v1, gangs included, -and activates the bump discipline. The per-section required-flag scheme is deferred (no -current Tier-2 section to validate it; recorded on #156). +**Pre-ship dormancy (#61, ended by #271):** until the first external ship there were +no out-of-repo readers — reader and writer changed atomically in one commit — so the +Tier-2 bump discipline lay dormant and structurally-semantic additions (the `gangs` +section) landed as additive-optional fields of v1. #271's construction args are the +first exercised Tier-2 bump (data-driven, next paragraph); v1 remains the version of +every args-free document, gangs included. The per-section required-flag scheme stays +deferred (no per-section case yet; recorded on #156). **First data-driven bump (#271):** construction args are the first Tier-2 case whose version is decided PER DOCUMENT, not a single global bump. The writer emits