using MessagePack;
using System.Text.Json.Serialization;
namespace SVSim.EmulatedEntrypoint.Models.Dtos.Responses.Deck;
///
/// Shape consumed by DeckGroupListData(jsonData, format). Spec at
/// docs/api-spec/endpoints/post-login/deck-info.md only enumerates maintenance_card_list
/// and user_deck_list explicitly (with [k: string]: unknown for the rest); the 2026-05-23
/// prod capture filled in the gap — default_deck_list, user_leader_skin_setting_list,
/// and trial_deck_list are all present and sourced from globals.
///
[MessagePackObject]
public class DeckListResponse
{
[JsonPropertyName("maintenance_card_list")]
[Key("maintenance_card_list")] public List MaintenanceCardList { get; set; } = new();
[JsonPropertyName("user_deck_list")]
[Key("user_deck_list")] public List? UserDeckList { get; set; }
///
/// Global starter decks, keyed by deck_no as string (prod ids 91-98 — one per class).
///
[JsonPropertyName("default_deck_list")]
[Key("default_deck_list")] public Dictionary DefaultDeckList { get; set; } = new();
///
/// Default leader skin per class, keyed by class_id as string.
///
[JsonPropertyName("user_leader_skin_setting_list")]
[Key("user_leader_skin_setting_list")] public Dictionary UserLeaderSkinSettingList { get; set; } = new();
///
/// Trial / tutorial-specific decks. Empty in the 2026-05-23 prod capture; entry shape TBD.
///
[JsonPropertyName("trial_deck_list")]
[Key("trial_deck_list")] public List TrialDeckList { get; set; } = new();
}