namespace NeonSprawl.Server.Game.Encounters; /// Idempotent per-player encounter completion flag (NEO-104; rewards applied in NEO-105). public interface IEncounterCompletionStore { bool IsCompleted(string playerId, string encounterId); /// First mark returns true; replays return false. bool TryMarkCompleted(string playerId, string encounterId, DateTimeOffset completedAt); bool TryGetCompletedAt(string playerId, string encounterId, out DateTimeOffset completedAt); }