neon-sprawl/server/NeonSprawl.Server/Game/Rewards/RewardDeliveryResult.cs

19 lines
895 B
C#

namespace NeonSprawl.Server.Game.Rewards;
/// <summary>
/// Server-internal quest completion reward delivery envelope (NEO-127).
/// Quest-state wiring promotes via NEO-128; HTTP DTOs via NEO-129.
/// <see cref="GrantedItems"/> is item grants on success; empty when denied.
/// <see cref="GrantedSkillXp"/> is skill XP grants on success; empty when denied.
/// <see cref="GrantedReputation"/> is reputation grants on success; empty when denied.
/// <see cref="DeliveryEvent"/> is delivery payload on success; null when denied.
/// </summary>
public readonly record struct RewardDeliveryResult(
bool Success,
string? ReasonCode,
IReadOnlyList<RewardItemGrantApplied> GrantedItems,
IReadOnlyList<RewardSkillXpGrantApplied> GrantedSkillXp,
IReadOnlyList<RewardReputationGrantApplied> GrantedReputation,
RewardDeliveryEvent? DeliveryEvent,
DateTimeOffset? DeliveredAt);