# US-03 — Ready up and start from the lobby **As a** host, **I want to** pick the level and start once everyone is ready, **so that** the group begins together on the same kitchen. ## Acceptance criteria 1. The lobby lists every seat: name, ready state, host crown, connection state. 2. Any player can toggle *Ready*; the host can pick any **unlocked** level from a list showing name, target score, time limit, and difficulty pips. 3. *Start* is enabled for the host when ≥ 1 non-host player is ready (or the host is alone — solo play is allowed). 4. Starting begins a 3-2-1 `countdown` shown identically on all clients, then the first `snap` arrives. 5. Non-host players cannot start or change level; the attempt shows a disabled control (no console errors, no silent failure). 6. If the host leaves in `LOBBY`, host status transfers to the lowest occupied seat; in `PLAYING` the round continues. 7. Someone leaving during `COUNTDOWN` cancels the countdown back to `LOBBY`. 8. Starting creates a round record in the in-memory session store. ## E2E suite `tests/e2e/test_us03_ready_and_start.py` — two contexts: ready toggles visible to both, non-host start rejected, countdown then both screens show the kitchen. ## Phases `05_anonymous_lobbies_and_room_lifecycle`, `06_realtime_websocket_protocol`, `07_canvas_client_and_hud`