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(); }