using System.Diagnostics.CodeAnalysis; namespace NeonSprawl.Server.Game.Npc; /// /// Session in-memory aggro holder store keyed by prototype NPC instance id (NEO-92). /// HTTP projection lands in NEO-94; NEO-93 reads holder for behavior state transitions. /// public interface IThreatStateStore { /// Reads threat for a known prototype NPC instance. Lazy-initializes an empty holder row. bool TryGet(string? npcInstanceId, [NotNullWhen(true)] out ThreatStateSnapshot snapshot); /// Sets or clears the aggro holder for a known prototype NPC instance. bool TrySetHolder(string? npcInstanceId, string? playerIdLowercaseOrNull); /// Clears the aggro holder for a known prototype NPC instance. bool TryClearHolder(string? npcInstanceId); }