Per-leg channel states, ordered OLDEST → NEWEST (the chain order).
One entry per channel name (case-insensitive), each from the newest leg that saved a non-empty state; channels no leg ever saved keep a null-state entry so the review still knows the channel existed.
MULTI-LEG channel-state merge: folds every leg's channel rows into one state set, NEWEST leg wins per channel name — but only a leg that actually SAVED state counts. A resumed session whose final leg never touched the whiteboard therefore still reviews with the board an EARLIER leg drew (previously only the primary/newest leg's rows were consulted, so that board silently vanished from review).