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