Part of #199.
Goal
Prove the new Room/RaceSession model through a small user-visible competition-room flow without changing the simple normal-room experience.
Vertical slice
- Create or seed one competition room associated with a competition.
- Give it at least two event RaceSessions.
- Allow an eligible user to enter the room, choose an event session, and race.
- Keep attempts, waiting state, and results independent between sessions.
- Allow switching sessions without leaving the room.
- Preserve completed results when a session ends or another session becomes active.
- Hide the feature behind a disabled-by-default configuration flag.
UX requirements
- The ordinary home-page Create room action and copy-link flow remain unchanged.
- Normal rooms do not show competition/session-selection UI.
- Competition participants enter one room, then choose an event.
- The active session and event must always be obvious.
- Mobile layouts must not become a dashboard or require navigating a complex competition schedule.
- Unsupported or unavailable sessions show a clear, recoverable state.
Acceptance criteria
Deferred
- Automatic creation three days before every WCA competition.
- Complete competition discovery and registration syncing.
- Friends, invitations, notifications, rankings, and Discord integration.
Part of #199.
Goal
Prove the new Room/RaceSession model through a small user-visible competition-room flow without changing the simple normal-room experience.
Vertical slice
UX requirements
Acceptance criteria
Deferred