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