# Room entry template implementation Spec: ../specs/2026-09-07-room-entry-template-design.md (approved). Constraints: server zero changes; opaque subgame-owned roomtype; no serialized asset text edits; preserve working tree; main checkout branch; no automatic commits. ## Task 1: platform create-room lifecycle Implement exact create_room request and independent response parsing, state construction traced to Desk.create_room, runtime command/session routing and room scene handoff. Test precise fields, denial, duplicate outcomes and module lifecycle. Own framework protocol/platform files and corresponding tests. Do not edit Startup or UI. Expose runtime.createRoom({roomtype,location,ip}). Existing self_join_room remains compatible. Report source evidence and API changes. ## Task 2: template entry and room UI Implement pre-room page contract and template rules adapter; JoinRoom input and template create page components with source behavior. Wire LobbyAssets, lobby panel, Startup and usable template room shell through existing GameHost. Use Cocos editor for prefab references/components. No invented gameplay. Test source keypad and exact template array, roomtype validation and host disposal. ## Task 3: integration verification Run framework tests, strict Cocos typecheck, import boundaries, local fixture preview for keypad/create options/wait/close and successful room handoff/exit. Review combined feature against spec. Document actual server test limitations. ## Progress / rulings - Initial: no implementation yet. Existing working tree snapshot stored in YouleNexus/temp/room-entry-baseline. - Task 1 produces createRoom consumed by Task 2; no shared edits beyond read-only imports. Task 3 consumes both. Each task matches the approved spec. - Ruling: use the main checkout branch and preserve dirty state, as required by repository/user preference; no worktree or automatic commit. - Task 1: complete. Separate create parser/store/session/command paths and numeric join; 223 combined targeted tests pass after review correction for immutable resolver input. - Task 2: complete. Serialized page controls, subgame CreateRoomPage contract, template entry/room shell, Startup and lobby wiring. Source template capacity is 10 via Desk.Create and Game_Config.Max.PlayerCnt; no roomtype index inference. - Task 3: complete. Cocos 30 checks pass, both strict typechecks and import boundaries pass. Full suite 770/775; five existing login path/channel fixture failures documented in integration report. Reviewed protocol and integration fixes; no remaining scoped findings. - Ruling: closed pages cancel callbacks and loading but cannot cancel a server request already sent. The platform continues to accept authoritative success replies; no invented correlation IDs or cancellation RPCs.