using SVSim.BattleNode.Sessions; namespace SVSim.BattleNode.Bridge; public interface IMatchingBridge { /// /// Mint a battle id, register a pending session, return the URL the client should /// open a socket to. /// /// /// Contract rules (enforced; throws ): /// /// Pvp: required. Both viewers expected to /// connect WS within 60s. /// Bot: must be null. One viewer expected; /// opponent runs in client. /// /// PendingMatch RegisterBattle(BattlePlayer p1, BattlePlayer? p2, BattleType type); } public sealed record PendingMatch(string BattleId, string NodeServerUrl);