neon-sprawl/server/NeonSprawl.Server/Game/Crafting/CraftResult.cs

16 lines
788 B
C#

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