The Game Became a Submodule
The game moved to src/games/default with build-time selection via a GAME env var, and the console got a colour scheme.
One Engine, Many Games, Chosen At Build Time
src/game/ -> src/games/default/
public/game/ -> public/games/default/Selection is a build-time GAME environment variable — GAME=demo npm run build on Linux and macOS, $env:GAME="demo" in PowerShell — read from defaultGame in engine.json. A @game/* TypeScript path alias and a dynamic Vite alias follow. Asset paths take the /games/[gamename]/ prefix.
The ?game= URL parameter is gone, and so is allowGameOverride. The engine no longer lets a URL choose what code runs in the page.
Colourising the Console
Teal primary accent #2EC4B6, yellow warnings, magenta numbers, green strings, exposed as CSS variables and through a UIStyles.setConsoleColors() API.
This is the release where the debug console stopped being a white monospace dump and became the thing it still is. Those four colours are load-bearing: the teal primary is why the console header reads as part of the same product as everything else.
Also Here
The PK3 index now auto-validates at startup, during the loading screen, with progress messages for both paths: "Validating PK3 index..." and "Building PK3 index...". A five-step migration guide from v0.8.15, including the ../engine/ → ../../engine/ import fix.
Known Issues: none stated.