namespace NeonSprawl.Server.Game.Gathering;
///
/// 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 .
/// is item grants on success; empty when denied.
/// is authoritative capacity after success, or current capacity on depletion deny.
/// is skill XP applied on success; null when denied.
///
public readonly record struct GatherResult(
bool Success,
string? ReasonCode,
IReadOnlyList GrantsApplied,
int? RemainingGathers,
GatherXpGrantSummary? XpGrantSummary);