fix(multiplayer): validate ranked season expiry

This commit is contained in:
Josh Creek
2026-09-01 22:33:00 +01:00
parent d819658ace
commit ec0bc362cd
3 changed files with 18 additions and 2 deletions
+2
View File
@@ -1577,6 +1577,8 @@ Assignment expiry validation now fails closed on malformed non-empty timestamps
MatchNet join-authorisation admission now applies the same expiry format guard before parsing signed roster claims, closing the malformed-expiry gap at the transport handshake boundary.
Ranked profile season metadata now validates optional expiry type and RFC3339 format before deriving the UI countdown, rejecting malformed server projections instead of silently displaying a profile without season context.
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.