36dd25826bc631c13e823aa28211f2d1491bfdc7
Client's LitJson serializer emits the C# property name verbatim — the SetParameter param classes in Wizard/GenerateDeckCodeTask.cs use cardID / phantomCardID, and the matching Parse() reads jsonData["cardID"]. Snake-case keys bound to empty in msgpack deserialize, the controller saw 0 cards, and returned INVALID_DECK — surfaced as a blank deck code in the in-game UI. Repro lived in data_dumps/traffic.ndjson #19-20. Existing tests pass through the same JsonPropertyName on both serialize and deserialize, so they happily round-tripped any consistent key — adding a wire-shape regression test that posts the literal client JSON would be the right way to catch this class of bug in the future (out of scope here). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Description
The SV Simulator server code, including the DCG Engine, SVSim content, and an entrypoint for the official game client.
Languages
C#
100%