namespace NeonSprawl.Server.Game.Combat;
///
/// Server-owned HP store for prototype combat dummies keyed by
/// target id (NEO-80).
///
///
/// NEO-81+: combat resolution should depend on this interface rather than reaching into store internals.
/// Re-hit deny on defeated targets belongs in CombatOperations (NEO-81), not this store.
///
public interface ICombatEntityHealthStore
{
///
/// Reads the current snapshot for a known prototype target. Lazy-initializes HP to
/// on first access.
///
bool TryGet(string? targetId, out CombatEntityHealthSnapshot snapshot);
///
/// Applies non-negative damage to a known prototype target. Lazy-initializes on first access.
/// Floors at zero.
///
bool TryApplyDamage(string? targetId, int damage, out CombatEntityHealthSnapshot snapshot);
///
/// Restores a known prototype target to full HP and clears .
/// Creates the row when absent. Intended for tests and future dev fixtures — not HTTP in Slice 1.
///
bool TryResetToFull(string? targetId, out CombatEntityHealthSnapshot snapshot);
}