BuildForRankBattleAsync projected deck.Cards.Select(c => c.Card.Id), discarding Count. DeckCard is count-based (one row per unique card + a Count), so a 3-copy card shipped to the node as a single in-battle card -- matched decks showed 1 of each card instead of the real count. Expand each row by its Count so SelfDeckCardIds carries one entry per physical card. TwoPick path is unaffected (flat per-pick list). Add a regression test seeding 3+2+1 copies (failed Expected 6/was 3). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
11 KiB
11 KiB