The Last Spike Online / 19 July 2026
USA and Canada should not become two separate games in the codebase
While refining tracks, rounds and the Canadian edition, the goal was to model edition differences as data instead of cloning rule branches for each country.
Situation
Supporting multiple editions can quickly spread `if country === ...` checks throughout the application. That feels cheap at first, but later every fix must be repeated across branches and each new edition touches more components. The Last Spike's different boards and track rules could easily have created exactly that kind of divergence.
Approach
I separated shared game rules from edition-specific data. Rounds, track data and map characteristics came from configuration, while the engine continued to operate through a consistent set of actions. Separate behaviour remained only where the official edition genuinely defined a different rule.
Outcome
The Canadian refinement became another dataset for the same engine rather than a second application. That separation also prepared the later move to unified board geometry and artwork.