Detect the REAC stageboxes among the patchbay's live sources + sinks, grouping each
box's capture node (inputs) and playback node (outputs) into one StageboxDevice. Pure over the current node lists, so it is also the hot-plug
reducer: a box that just appeared shows up here, one that vanished drops out — the
caller re-runs it on every graph change.
A device is emitted when at least one side is present (reac-pw always publishes the
capture node; the playback node needs a valid TX interface, so a capture-only box is
valid). Each side's count is the box's real advertised width, clamped from the 40-slot
fabric (groupOf) — nothing is hardcoded.
Detect the REAC stageboxes among the patchbay's live sources + sinks, grouping each box's capture node (inputs) and playback node (outputs) into one StageboxDevice. Pure over the current node lists, so it is also the hot-plug reducer: a box that just appeared shows up here, one that vanished drops out — the caller re-runs it on every graph change.
A device is emitted when at least one side is present (reac-pw always publishes the capture node; the playback node needs a valid TX interface, so a capture-only box is valid). Each side's count is the box's real advertised width, clamped from the 40-slot fabric (groupOf) — nothing is hardcoded.