jonnify·codemojex /codemojex/road-to-gameisland

Codemojex · chapter C9 · the forward capstone

The road to GameIsland.

Eight chapters taught the shipped Elixir engine — branded ids, modes as policy, fair lanes, linear scoring, settlement, the wallet, the live surface, the node. That is where we are. This chapter turns to where we go: the player-facing game as a self-contained React island whose state layer is an Effector graph, plugged onto the same engine by a single branded thread.

Grounding — mercury/codemojex/apps/game (the island, the model, the two transports) · mercury/docs/liveview_boot/ · the engine seam echo/apps/codemojex. The island ships today; the road ahead is the seams.

The crossing — one branded thread from the consistent core to the available edge
the consistent core Elixir engine · Postgres + Valkey GAM · PLR secret · stays sealed the thread GAM the id crosses unchanged the available edge React island · Effector $props store renders GameEdge
the core → the Elixir engine mints the branded GAM and PLR at the consistent core (C1). The secret stays sealed here — no player-facing view selects it.
§1

Where we are → where we go

the 5W

The engine chapters ended at the live surface (C7): verified initData mints one SES, and a LiveView pushes results with no per-game process. C9 follows the surface outward — to a React island delivered on its own cadence, its state an Effector graph. The move is not a rewrite of the engine; it is a change of runtime for the front end, joined to the core by the same branded id.

Five questions about the crossing — select one
WHY a game change is an edge deploy, not a fly deploy WHAT the branded ids + full-state props cross; the secret does not WHO one writer per fact; the client holds nothing authoritative WHEN guess → JOB lane → scorer → fan-out → push → model WHERE the boundary is mount(el, props, bridge) + one shared Socket
why → the island is an independent edge deploy (game-[hash].js), decoupled from the server release; state lives outside React, so a hot swap keeps the game; and the derived stores give a fine-grained subscription surface no server render can.

The through-line, in one line: the identity travels, the payload doesn’t. The branded id is the thread that survives the crossing — the secret and other players’ guesses stay behind the View gate.

§2

The three dives

hub + 3 dives

Grounding — the LiveView-boot developer docs (architecture · effector-pipeline · channels · events · interactions) read against the real client tree mercury/codemojex/apps/{game,liveview-boot} and the engine seam echo/apps/codemojex.

§3

References

sources · related

Sources

Related