namespace NeonSprawl.Server.Game.Encounters;
/// Per-player encounter activation and defeat-target progress (NEO-104).
public interface IEncounterProgressStore
{
/// Returns false when no row exists for the player+encounter pair.
bool TryGetProgress(string playerId, string encounterId, out EncounterProgressSnapshot snapshot);
///
/// Creates a started row with an empty defeated set.
/// Returns true on first activation; false when already started.
/// Does not consult — callers that must block activation after completion
/// (e.g. ) must gate before calling this method.
///
bool TryActivate(string playerId, string encounterId);
///
/// Adds one defeated NPC id to an existing started row.
/// Returns true when newly added; false when duplicate, not started, or invalid ids.
///
bool TryAddDefeatedTarget(string playerId, string encounterId, string npcInstanceId);
}