neon-sprawl/server/NeonSprawl.Server/Game/Gathering/GatherResult.cs

17 lines
858 B
C#

namespace NeonSprawl.Server.Game.Gathering;
/// <summary>
/// Server-internal gather resolution envelope (NEO-62). May promote to wire JSON when the client needs explicit
/// gather payloads; until then prototype verification uses inventory GET + interact response (NEO-63).
/// NEO-64 telemetry hook sites live in <see cref="GatherOperations.TryGather"/>.
/// <see cref="GrantsApplied"/> is item grants on success; empty when denied.
/// <see cref="RemainingGathers"/> is authoritative capacity after success, or current capacity on depletion deny.
/// <see cref="XpGrantSummary"/> is skill XP applied on success; null when denied.
/// </summary>
public readonly record struct GatherResult(
bool Success,
string? ReasonCode,
IReadOnlyList<GatherGrantApplied> GrantsApplied,
int? RemainingGathers,
GatherXpGrantSummary? XpGrantSummary);