fix(multiplayer): align proposal participant contract

This commit is contained in:
Josh Creek
2026-09-01 22:52:52 +01:00
parent 807aaa4478
commit ffc7856993
5 changed files with 47 additions and 6 deletions
+2
View File
@@ -1607,6 +1607,8 @@ Session establishment now also requires a present, syntactically valid, future `
MatchNet admission configuration now requires exact string opaque match/server IDs and a finite integral protocol version, preventing malformed server context from being coerced into a valid roster binding.
The proposal wire contract now matches the real API participant-object shape (`player_id`, response, team, slot), with JSON tags on the Go model and client validation for count, uniqueness, identities, enums, and integer team/slot assignments.
Signed MatchNet claims now also require exact JSON string/integer types for every identity, protocol, expiry, slot, team, and generation field; string-number coercion is rejected before canonical signature verification.
Presentation progress: a shared `Game/themes/cosmic_clash_theme.tres` now gives the menu, lobby, matchmaking, and settings surfaces consistent button, input, option, and label styling. The custom-font portion of `TODO.md` remains open until a distributable font asset is selected.