Phase 2 — BLOCKED on adapter-multiplayer-firebase publishing. Largest single piece of missing work in the audit.
Two participants must find each other. What exists today is a two-tab-on-one-machine pilot rig, not a waiting room.
Important: a rolling waiting room is not something the Firebase adapter gives us. plugin-multiplayer-sync and plugin-multiplayer-role are per-session barriers, not a matcher. Room assignment has to be written on top.
What has to be built
Related unblocked work: the lobby timeout and payment paths can be done now, independently.
See READINESS.md section 1.
Phase 2 — BLOCKED on
adapter-multiplayer-firebasepublishing. Largest single piece of missing work in the audit.Two participants must find each other. What exists today is a two-tab-on-one-machine pilot rig, not a waiting room.
Important: a rolling waiting room is not something the Firebase adapter gives us.
plugin-multiplayer-syncandplugin-multiplayer-roleare per-session barriers, not a matcher. Room assignment has to be written on top.What has to be built
wait_forcounts any group entry carrying aname, and the adapter only removes an entry on an explicitdisconnect()— there is no heartbeat and nobeforeunloadanywhere in the four bundles. A tab closed in the lobby leaves its entry behind. With persistent Firebase room state a live participant will be "matched" with a ghost, assigned a role, and then time out on every single round. Silent, and frequent.spectatorpath is a dead end with no completion code.Related unblocked work: the lobby timeout and payment paths can be done now, independently.
See
READINESS.mdsection 1.