Optional ReadonlycarriedOptional ReadonlyconfirmThe confirm gate a write here must pass (row grammar, "Confirm: the eighth clause" and "the
trigger is a declared transition"): the transition it holds, and either the preview row
that lists what the fire would move with the settings row holding the operator's sign-off,
or no ask at all. Executed by the registry, once, for every door — a bare transition is
refused CONFIRM_REQUIRED while the gate holds, and the row's OPTIONS lists confirm as
the one writable, non-readable argument that answers it. The registry derives the published
confirms sheet from the rows that declare this. Absent means the row fires
unconditionally. confirm is the argument's name and no row declares a field by it —
register() refuses one.
Optional ReadonlylifecycleThe entity's CREATE/DELETE doors, when it has any — the keystone a collection needs to be more than a read-only view of somebody else's store.
Absent means exactly "this entity has no lifecycle": OPTIONS omits DELETE/POST, and
the transport answers 405 rather than pretending a removal was refused by the desk. The
doors write the SAME one store the fields read; the mold builds this from the row's
declaration and no row implements it by hand.
ReadonlypathThe path template, e.g. /channel/{kind}/{index}/headAmp. Braced segments become
ResourceId keys. One template per entity type; instances differ only by id.
Optional ReadonlypolicyWhat a committed write here means for the session's dirtiness and the operator's history. Absent means DEFAULT_RESOURCE_POLICY — the write dirties the session, is not undoable and is not a barrier.
Optional ReadonlytransientWhether this entity's state narrates WORK IN FLIGHT rather than the board — an operation
row's running/startedAt/last-refusal. A transient row's frames still reach every
watcher, but the convergence instrument neither corrects it nor lets its stamps vouch for
commit completeness: a run's story belongs to the caller that fired it (who polls or
awaits the landing), not to the whole-console equality every surface must hold. Declared
by the MOLD (OperationResource), never per row — the classification is what the
shape means, not a per-instance opinion.
OptionaladdressesWhether these path variables NAME an instance of this entity at all — regardless of whether
this console happens to hold it. /patch/output/aux/99 addresses (a real channel kind at an
index the desk lacks); /patch/output/monitor/1 does not (monitor is no channel kind, so
no console could ever answer it).
The split exists because both read nothing and both are a 404, but they are different facts and the operator's next move differs: one is "allocate it / pick another index", the other is "that thing does not exist here at all". It is the ADDRESS CODEC's answer, never a per-entity branch — which is why it belongs beside canonicalId rather than in a transport.
Deliberately NOT canonicalId(id) !== undefined: some molds fold existence into the
canonical spelling (a derived view answers undefined for an address it cannot derive), so
reusing it would report every missing instance as an unnameable one. An entity that omits
this is read as "addressable" — the conservative half, NO_INSTANCE.
OptionalcanonicalThe canonical spelling of an instance id — the ONE name every broadcast frame carries, whichever door (raw wire segments, model values) the write came through. A resource that omits this broadcasts the caller's id verbatim.
What may be read and written on THIS instance. Drives OPTIONS and gates patch.
Omitted fields are treated as neither readable nor writable.
OptionalfreshWhat a FRESH instance of this row is — the whole state, as one object.
The row-wide sibling of travels: that says what a value MAY be, this says what it
STARTS at. A client needs both and can derive neither. A reset-to-default control, a detent,
and the numeric a control returns to when it leaves a non-numeric mode are all this fact, and
a surface that cannot ask for it compiles the number into its bundle instead — which is how
FBS_DEFAULT_NOTCH_Q came to be imported by a panel, a value the desk declares and the
client is meant never to resolve.
ONE OBJECT, not a per-field annotation, because a fresh state is COHERENT: mode: 'off'
is what makes the rest of an FBS arming irrelevant, and fields carrying separate defaults
can drift into a combination the row would refuse. It is the same value the row's create
door starts from, so this publishes an existing declaration rather than adding a second.
Row-wide by the same discipline as a travel: declared only where a fresh instance does not vary BY instance. A row whose default depends on the device behind it declares none here, and absence reads as "this row has no desk-wide starting point", never as "it starts empty".
OptionalinstancesEvery instance that exists right now, in the canonical spelling — what a console-wide
snapshot bursts and what a ?watch=1 stream's first frame is built from.
Three answers, and they mean three different things:
[] — this entity has none right now (no strip seeded, no scene stored);undefined / not implemented — this entity CANNOT enumerate. An operation resolves every
parseable id, so listing it would be inventing ids. The registry then probes the empty id
once, which is exactly what a singleton address parses and every other codec refuses.Pure, like read: enumerating may not bind, seed or persist anything.
OptionalinverseThe patches that put the console back after a write here — declared by a row whose gesture changes instances OTHER than the one addressed, which the generic inverse deliberately refuses to guess at.
Called only on an accepted, committed write of an undoable row, with the same two images
the generic inverse sees. Returning undefined means "not undoable", never a guess. The
steps replay through the registry like any other patch, so an undo reaches nothing a live
gesture could not.
OptionalknownWhich of S's own fields this entity actually KNOWS the value of, for this instance — as
opposed to a safe floor it is REPORTING because nobody has ever set or read it. undefined
when the entity does not draw this distinction (every field it reports is equally
authoritative) or the instance does not resolve.
Optional and purely REPORTED: the registry carries it alongside a read/broadcast as known
so a consumer (a REST client, a surface) can tell "operator/fabric set this" from "this is a
placeholder" — WITHOUT a second store, since it is derived from the same set the entity
already tracks to decide what project may write. It changes nothing about what may
be WRITTEN; capabilities still governs that.
Apply a wire delta to the one state. The registry has already checked every key against capabilities; the implementation narrows every VALUE from unknown before writing.
Project the state onto the audio — the southbound half. Called by the registry after every accepted patch that changed something. The implementation re-reads its own state and drives the backend from that read; there is no state argument to trust. A resource whose state has no audio consequence returns PROJECTED; an unwired backend returns notProjected so the refusal is visible on the first attempt.
Synchronous by contract. Hardware that lands later uses a queued sink: dispatch now, and
the landing (confirmation or refusal) reaches every client as the next frame of the same
instance via ResourceRegistry.reproject.
Read the ONE state. undefined when the instance does not exist — the layer turns that
into a not-found rather than an empty object, so "absent" and "default" stay distinct.
Pure: a read may not bind, seed, or persist anything.
OptionalripplesThe instances whose audible/derived state this write changed BESIDE the patched one. The registry re-projects and re-broadcasts each after the primary commit.
OptionalservedOne instance as ONE reader sees it — the row's per-subscriber projection over its own fresh
read, when it has one: the spectrum at the reader's bands, a carried collection narrowed
to the instances the reader demands. Takes an id and not a state, like project: the
row re-reads, so there is no argument to trust and the answer is what a GET at that view
would say. Declared on the row (the mold's config), asked by the registry (served) for the
GET door and the stream alike, so GET R and R?watch=1 answer one shape by
construction. undefined where the instance is not there. Absent on a row served as it
stands. Runs per frame per subscriber, so the unchanged case must stay cheap.
OptionaltravelsThe row's travels with NO instance named, for a client that must bind every control it will draw before it has drawn one. Optional: a row with no numeric travel to declare simply has none, and absence here reads as "ask the instance", never as "there is no limit".
The per-instance row this COLLECTION carries as level series, when it declares one — see
carried-series.ts. Declared by the mold's config, read by the registry (carrierOf), the router (OPTIONScarries/index) and the stream hub (a subscriber that demands a carried instance is owed the collection, projected). Absent on every other row.