where the one state lives
the mute-group and panic entities' own state, read-only
Optionalsink: ChannelMuteSink
the audio backend; omitted on a console with none, which makes every projection report a refusal instead of resolving successfully against nothing
ReadonlypathThe path template, e.g. /channel/{kind}/{index}/headAmp. Braced segments become
ResourceId keys. One template per entity type; instances differ only by id.
The one broadcast spelling: numeric {kind, index}, resolved to the strip that OWNS the
state — a linked follower's canonical name is its primary, so the pair has one instance
on the wire exactly as it has one in a patch.
What may be read and written on THIS instance. Drives OPTIONS and gates patch.
Omitted fields are treated as neither readable nor writable.
The strips the console holds, each under the id that OWNS its mute — a linked follower folds onto its primary, so a snapshot carries one frame per instance exactly as the wire carries one id per instance.
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 onto the audio. The value sent is computed fresh from the one state and the two hold owners, so only the composition of what the console currently holds can reach a backend.
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.
Channel mute as a ConsoleResource:
/channel/{kind}/{index}/mute.{kind}/{index}is TWO path segments (issue #438) —/channel/main/1/mute,/channel/input/3/mute— resolved by channelIdOf, the one parser every channel-addressed entity uses. The kind is always explicit: this entity reaches beyond the input tier because amains-scoped panic targets a BUS (spec §4.3), and a grammar where only inputs get a short spelling is two grammars. Anything unparseable — a float, an unknown kind — is a not-found, never a defaulted channel.