const SIGNALS: [&str; 3];Expand description
The block directories, which are also the signal names on the wire.
The two functions that walk all three take their open blocks as a slice
parallel to this, because an Open does not record which signal produced it
and sequence numbers are per-signal — hand the logs snapshot to the traces
directory and a (node, seq) collision silently swaps one block for
another. A short or empty slice means “no open blocks for the rest”, which
is what a test and a cold process both want.