architecture-refactor
Illegal states, unrepresentable
An architecture review found both duel pages still carrying the same ninety-line derivation chain by hand. The fix collapses sixteen flat props into one discriminated model.
One parser for every mode
Three near-identical physical-keyboard parsers, one bug that only showed up in duel modes, and a wayfinder map that carried its own execution instead of stopping at a spec.
One recap, two modes
A blocking modal in PvE and an inline overlay in PvP get replaced by one shared recap component, ported wholesale from the Daily Challenge pattern.
the pvp duel system: server-authoritative state
Building the biggest single system in the game: dueling a friend asynchronously, backed by a server-authoritative engine and a compare-and-set turn model.
Nine seams in two days
A test-first architecture pass turns duplicated rules and wide interfaces into nine small, reviewed seams without changing the game players see.
Teach what the player has not found
A pure hint engine turns missing player actions into timely guidance, combo rewards and hints share one notice system, and the abandoned native-client backend comes out.
A contract before the client
The planned native client gets an offline submission path, a bundled dictionary, and an API compatibility rule before its first install exists.
Giving the logic a name
Two days pulling shared logic out of stores and routes into small, named, independently tested modules, one of which immediately surfaced a real duel bug and got its own same-day fix.
Not like this
The engine gets pulled apart into deep, single-purpose modules, and a day later the entire day-two Norwegian layer, carried for three weeks without a dictionary worth playing against, comes out for good.
The week the game started watching itself
A three-PR refactor trio makes the word-submission pipeline immutable and side-effect-free, then the newly-launched game gets its first stats page, a same-week AI tuning pass informed by it, docs finally caught up to the Postgres stack, and a WCAG 2.2 audit closes the week.