Item Upgrade
Cost Record
```csharp
public record Cost(
[property: JsonPropertyName("WalletCosts")] IReadOnlyList
public record Definition(
[property: JsonPropertyName("ID")] string ID,
[property: JsonPropertyName("Item")] Item Item,
[property: JsonPropertyName("RequiredEntitlement")] RequiredEntitlement RequiredEntitlement,
[property: JsonPropertyName("ProgressionSchedule")] ProgressionSchedule ProgressionSchedule,
[property: JsonPropertyName("RewardSchedule")] RewardSchedule RewardSchedule,
[property: JsonPropertyName("Sidegrades")] IReadOnlyList
public record EntitlementReward( [property: JsonPropertyName("ItemTypeID")] string ItemTypeID, [property: JsonPropertyName("ItemID")] string ItemID, [property: JsonPropertyName("Amount")] int Amount );
public record Item( [property: JsonPropertyName("ItemTypeID")] string ItemTypeID, [property: JsonPropertyName("ItemID")] string ItemID );
public record Option(
[property: JsonPropertyName("OptionID")] string OptionID,
[property: JsonPropertyName("Cost")] Cost Cost,
[property: JsonPropertyName("Rewards")] IReadOnlyList
public record Prerequisites(
[property: JsonPropertyName("RequiredEntitlements")] IReadOnlyList
public record ProgressionSchedule(
[property: JsonPropertyName("Name")] string Name,
[property: JsonPropertyName("ProgressionCurrencyID")] string ProgressionCurrencyID,
[property: JsonPropertyName("ProgressionDeltaPerLevel")] IReadOnlyList
public record RequiredEntitlement( [property: JsonPropertyName("ItemTypeID")] string ItemTypeID, [property: JsonPropertyName("ItemID")] string ItemID );
public record RequiredEntitlement2( [property: JsonPropertyName("ItemTypeID")] string ItemTypeID, [property: JsonPropertyName("ItemID")] string ItemID );
public record Reward( [property: JsonPropertyName("ItemTypeID")] string ItemTypeID, [property: JsonPropertyName("ItemID")] string ItemID, [property: JsonPropertyName("Amount")] long Amount );
public record RewardSchedule(
[property: JsonPropertyName("ID")] string ID,
[property: JsonPropertyName("Name")] string Name,
[property: JsonPropertyName("Prerequisites")] object Prerequisites,
[property: JsonPropertyName("RewardsPerLevel")] IReadOnlyList
public record RewardsPerLevel(
[property: JsonPropertyName("EntitlementRewards")] IReadOnlyList
public record ItemUpgrade(
[property: JsonPropertyName("Definitions")] IReadOnlyList
public record Sidegrade( [property: JsonPropertyName("SidegradeID")] string SidegradeID, [property: JsonPropertyName("Options")] IReadOnlyList
public record WalletCost( [property: JsonPropertyName("CurrencyID")] string CurrencyID, [property: JsonPropertyName("AmountToDeduct")] int AmountToDeduct );```