using System.Collections.Concurrent; namespace SVSim.BattleNode.Sessions; public sealed class InMemoryBattleSessionStore : IBattleSessionStore { private readonly ConcurrentDictionary _pending = new(); public void RegisterPending(PendingBattle battle) => _pending[battle.BattleId] = battle; public PendingBattle? TryGetPending(string battleId) => _pending.TryGetValue(battleId, out var b) ? b : null; public bool RemovePending(string battleId) => _pending.TryRemove(battleId, out _); }