Optional ReadonlydescriptionLonger/raw description. On the engine path this is the raw node.name; on other paths the PipeWire description.
ReadonlyidStable id — the PipeWire node.name (reac-capture.drums, reac-capture).
ReadonlykindWhich side of the patchbay: source (take from) or sink (route to).
Optional ReadonlynameThe node's human label — where the box's operator name + real channel width live.
reac-pw sets PW_KEY_NODE_DESCRIPTION to "<Name> — <N> ch (REAC box inputs)" (e.g.
"Drums — 16 ch (REAC box inputs)"). NOTE: the engine's pw-dump reader lands the
PipeWire node.description in name (the friendly label) and repurposes
description for the raw node.name — so the detector reads BOTH fields and
takes whichever carries the "— <N> ch" box descriptor (see advertisedChannelWidth
/ operatorNameOf).
ReadonlyportsThe node's full pw-link port names (<node>:<port>), e.g. reac-capture.drums:capture_01.
Optional ReadonlyreacThe box's system firmware, D.DDD (reac.box-firmware, DT1 identity addr 0x0500), e.g.
'2.200'. Absent on a bridge older than the identity-page decode, or a box that has not
answered that page — a RECORDING of what the box last announced, never a claim.
Optional ReadonlyreacThe box's Ethernet MAC — its stable identity across sessions, reboots and reconnects
(the persistent-registry key, Build A). Not a scalar reac-pw prop: the graph reader lifts
it out of the reac.discovery.devices JSON snapshot (the owned:true peer — the box this
master joined) and surfaces it here lower-cased. Absent on an older reac-pw, a bridge that
has not yet joined a box, or when the snapshot is ambiguous (more than one owned peer).
Optional Readonlyreacreac-pw's reac.box-model prop (e.g. S-4000S), if published.
Optional ReadonlyreacThe box's REAC PROTOCOL version, D.DDD (reac.box.reac_version, DT1 identity addr
0x0600), e.g. '2.302' — a DIFFERENT number from reacBoxFirmware: the M-200i
shows both (S-1608: REAC 2.302, Firmware 2.200). Absent under the same conditions.
Optional Readonlyreacreac-pw's reac.box-width prop (the box's channel count), if published.
Optional Readonlyreacreac-pw's reac.link-state prop (probing / connected / no-box), if published.
Optional ReadonlyreacThe segment this node speaks for — reac-pw's own reac.segment prop
(2026-08-20-reac-auto-spine.md). A VLAN sub-interface (enp131s0.11) is a segment name
like any other; this is never derived from id/name — the discriminator a
multi-box node name carries is a DIFFERENT fact (which box on a shared fabric), and a
segment can rename (a trunk reconfigured) while the box's discriminator stays put. Absent
on an older reac-pw or a non-REAC node.
The minimal I/O-node shape the detector reads. A structural subset of the engine's
IoNodeand the wireWireIoNode, so either is passed directly — no adapter.