ReadonlychainThe plugin chain captured from the source channel.
Optional ReadonlycompOptional ReadonlyeqThe built-in EQ/gate/comp, when this config carries them — same typed states a whole
session snapshot carries per channel (ChannelSnapshotJson.eq /
ChannelSnapshotJson.gate / ChannelSnapshotJson.comp), applied through
the SAME doors (ChannelEqStore.setEq / GateController.set / CompController.set).
Populated on the READ-ONLY factory instrument templates
(FACTORY_INSTRUMENT_TEMPLATES), which carry no chain/processing at all and exist only
to seed these three — and, SPARSELY, on an operator's own save: captureChannel reads
each stage from the store that owns it and writes the field only where that store holds
something for the channel, so an untouched stage is absent rather than stamped with a
default. Absence is a fact here: a config silent about a stage leaves the target's own
where it was.
Optional ReadonlyfamilyThe InstrumentFamily this config is filed under — what lets a picker GROUP the factory chains instead of showing a flat wall of them.
Every factory template carries one. An operator's own save carries one when the operator ASKED for it at save time (RULED 2026-09-01: "we must be able to keep our own copies"), so their kick files beside the factory kicks; absent, the config stays an ungrouped entry, and that absence is a choice the operator made rather than a defect.
A family is a FILING key, never an identity claim: what a channel IS lives on the
/channel/{kind}/{index}/instrument row, whose vocabulary is the factory ids alone. A
config filed under drums is not a drum; it is one the operator wants to find among them.
Optional ReadonlygateReadonlyidReadonlynameOptional Readonlynamei18n key for name, present only on a READ-ONLY factory template — an operator's
own saved name is free text with no key to resolve. A locale-aware client prefers
t(nameKey) over name; a plain client (or today's REST-only landing) shows name.
Optional ReadonlyprocessingThe strip's OWN facts — the head stage (gain, trim, the head-amp trio, polarity,
alignment) and pan — as one BLOCK whose presence is the statement (channel-contract spec
revision 4). An operator's save always carries it, because a capture is a whole statement
about the strip it read: a fact absent from a present block is fresh. A factory instrument
template carries NO block: a template describes an instrument, never the strip it lands on,
and an absent block is "not stated" — the apply neither lands nor clears a fact riding it.
An empty {} is not the same thing as absence; it says the whole head stage is fresh.
Optional ReadonlyprocessorsThe PROCESSING ARRANGEMENT captured from the source channel — its ordered Processor chain, the same field a session snapshot carries (ChannelSnapshotJson.processors) and applied through the same engine door.
A config that carries the insert rack and the EQ/gate/comp values but not the ORDER they run in describes a different desk: order is load-bearing (ADR-0006) and reaches audio through the native step walk. Absent on the factory instrument templates, which carry no chain at all, and on any config whose channel has no chain to read.
ReadonlysavedISO-8601 timestamp.
Optional ReadonlysavedThe BOX LEG this config was read from — {box, input}, the patch-identity vocabulary
(2026-08-21-virtual-stageboxes-and-patch-identity.md), stamped at save time from the
routing graph's leg for the channel captured.
It is a PROVENANCE, never an address: applying a config does not patch anything, and a
config carrying a leg may be applied to any channel the operator chooses. What it buys is
the one question a setup assistant cannot otherwise answer — which of these stored configs
belong to the box that just arrived (2026-09-16-show-setup-assistant.md §7). Matching on
family instead would be a guess wearing the word "identity": a family is a filing
key, as family's own note says.
Absent when the channel carried a PORT rather than a box input (an app stream, a loopback, a sound-card input — nothing owns those, so there is no identity to name), when it carried nothing at all, and on every factory template, which describes an instrument and was never on a box. The absence is a fact, not a gap to fill with a guess.
Readonlyschema
A named, reusable per-channel config as stored on disk.