namespace NeonSprawl.Server.Game.Rewards;
///
/// Idempotent reward delivery record (NEO-126).
/// Persisted via after router apply succeeds (NEO-127).
/// E9.M1 reward_delivery hook site: (NEO-130).
///
public readonly record struct RewardDeliveryEvent(
string PlayerId,
string QuestId,
DateTimeOffset DeliveredAt,
IReadOnlyList GrantedItems,
IReadOnlyList GrantedSkillXp,
IReadOnlyList GrantedReputation,
string IdempotencyKey,
string SourceKind = RewardDeliverySourceKinds.QuestCompletion,
string ContractInstanceId = "");