using SVSim.BattleNode.Bridge; using SVSim.Database.Enums; namespace SVSim.EmulatedEntrypoint.Services; /// /// Per-mode assembler for the battle-node MatchContext. Each multiplayer mode that /// fronts a do_matching endpoint adds one method here that reads its mode-specific /// state (TK2 run, current-deck pointer, open-room set_deck, ...) and produces a /// MatchContext for the bridge. /// public interface IMatchContextBuilder { /// /// Build a context from the viewer's active TK2 run + viewer cosmetics + config. /// Throws on missing run / incomplete draft. /// Task BuildForTwoPickAsync(long viewerId); /// /// Build a context for a rank-battle viewer + format (rotation / unlimited) + the /// caller-selected deck number (from do_matching's deck_no). Pulls the /// viewer's deck for that format/number + viewer cosmetics. Throws if the viewer has /// no deck at that slot. /// Task BuildForRankBattleAsync(long viewerId, Format format, int deckNo); }