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

16 lines
780 B
C#

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