3875141f46
Three changes: 1. GameTable shows a spinner instead of an empty table when mode=online and seatPlayers is empty (waiting for first state broadcast). 2. enterServerMatch schedules a 3s interval that calls service.resync() until seatPlayers is populated, guaranteeing the state always lands. 3. resync() added to OnlineService interface + both implementations so the game store can call it without casting. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>