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);
}