using SVSim.BattleNode.Protocol; namespace SVSim.BattleNode.Sessions.Dispatch; /// One routing decision: deliver to . /// Named form of the tuple ComputeFrames historically returned. /// is for control frames (BattleFinish, ack) — bypasses /// playSeq assignment + archive — and for gameplay frames. internal readonly record struct DispatchRoute(IBattleParticipant Target, MsgEnvelope Frame, Stock Stock);