namespace NeonSprawl.Server.Game.Combat;
///
/// Session in-memory player combat HP for incoming NPC damage (NEO-95).
/// No Postgres persistence in Epic 5 Slice 2.
///
public interface IPlayerCombatHealthStore
{
///
/// Reads the current snapshot for a player. Lazy-initializes HP to
/// on first access.
///
bool TryGet(string? playerId, out PlayerCombatHealthSnapshot snapshot);
///
/// Applies non-negative NPC attack damage. Lazy-initializes on first access.
/// Floors at zero.
///
bool TryApplyDamage(string? playerId, int damage, out PlayerCombatHealthSnapshot snapshot);
///
/// Restores a player to full HP. Creates the row when absent (dev fixture + tests).
///
bool TryResetToFull(string? playerId, out PlayerCombatHealthSnapshot snapshot);
}