namespace NeonSprawl.Server.Game.Combat;
///
/// Server-internal combat resolution envelope (NEO-81); promoted to wire JSON via cast response extension (NEO-82).
///
/// Catalog damage applied on success; zero on deny.
/// Authoritative HP after success; optional on deny (e.g. zero on target_defeated).
/// true when post-resolve HP is zero on success; false on deny.
public readonly record struct CombatResult(
bool Success,
string? ReasonCode,
int DamageDealt,
int? TargetRemainingHp,
bool TargetDefeated);