namespace NeonSprawl.Server.Game.Crafting; /// /// Server-internal craft resolution envelope (NEO-69); promoted to wire JSON via (NEO-70). /// NEO-71 telemetry hook sites live in (success path + centralized Deny helper). /// /// Scaled inputs removed on success; empty when denied. /// Scaled outputs added on success; empty when denied. /// Refine skill XP applied on success; null when denied. public readonly record struct CraftResult( bool Success, string? ReasonCode, IReadOnlyList InputsConsumed, IReadOnlyList OutputsGranted, CraftXpGrantSummary? XpGrantSummary);