Second wind: core gameplay as a playable foundation

milestone origins, gameplay, platform, match-day

The commit graph between October’s dust-off and early April 2026 is almost empty. That silence is part of the story: the same pattern as the summer pause, stretched longer. When work returns, it returns with a different texture. The first merged PR drops Spartan for PrimeNG — an explicit rejection of an early UI bet that no longer served. Agent-assisted delivery tooling appears in the tree. And PR #2 lands the question the 2025 scaffolding had been asking all along: can match day, money, training, and the inbox share one coherent world?

What shipped was a broad foundation across backend, client, and match engine — deliberately wide rather than surgically split. Nest gained match, transfer, training, finance, and notification surfaces, with entities and migrations for events, stats, listings, offers, and the inbox. The Angular client added match detail, transfers, training, finances, and inbox pages with NgRx slices behind them. The Go engine tightened tempo and width effects, injury and event handling, and the CLI output metadata that the rest of the stack would consume. In simple terms, managers could finally walk a path from squad preparation through a simulated match and into the consequences waiting in their inbox — the v1 engine from spring 2025 finally wrapped in a season-capable product.

The tradeoff was footprint, and ruthlessness about sunk cost. Packaging a large landing is excellent for preserving causal order and terrible for bisecting later; reviewers inherit a cathedral rather than a sequence of chapels. Some of the 2025 investment (gRPC-first client paths, Clerk as identity centre, Spartan chrome) was already on the chopping block or would be within days. In spite of that, restarting required keeping the engine’s spirit and replacing scaffolding that had not aged well. The strength of returning with a written task list and clearer product hunger — still aimed at a game that could pull me away from Trophy Manager — is focus. The drawback is calendar honesty: a year of wall-clock time for a foundation that, on paper, a full-time team might have shipped sooner — and yet this diary’s job is not to apologise for building beside a life, only to mark how the work actually happened.

Paths not taken include pretending the winter silence was full of private masterpieces, delaying transfer and training until match day was perfect, or freezing the 2025 stack forever because rewriting UI and auth felt like betrayal of past commits. Either cleaner pull requests or nostalgia would have produced a tidier graph; neither would have answered whether the managerial loop actually closed.

What it unlocked was the denser 2026 story that follows — Firebase and deploy paths, the FA console, transfer v2, playoffs, media, cups, workers, youth — standing on a foundation that finally claimed to be a season loop, not only a promising sketch.

← All entries