The Catan Board Game Assistant
Among the professional tools — the septic system designer, the desert locust expert system, the kiln controller — there’s a Catan board game tracker. It’s called Natac (that’s Catan backwards), and it’s built with the same stack as everything else: TMS Web Core, Object Pascal compiled to JavaScript, date-based version numbers.
The version bumping system tells the story. There’s a bump-version.sh that increments YYYY.MM.DD.N in the .dproj file and generates an AppVersion.pas with Pascal constants. Then a version-output.sh renames the compiled JavaScript from Natac.js to Natac_2026_03_14_1.js and updates the HTML to reference the new filename.
The build chain is: IncrementVersion, Compile, VersionOutput. Three VS Code tasks chained together. The same pattern as the septic system designer, adapted with a post-build step for cache-busting JS filenames.
It’s the smallest project in the portfolio and the one that most clearly demonstrates the developer’s philosophy: if you have a tool that works, use it for everything. Pascal for engineering software? Pascal. Pascal for expert systems? Pascal. Pascal for board game tracking? Pascal.
The compiler doesn’t care what the domain is. The build scripts don’t care. The version numbering doesn’t care. It’s all just .dproj files and .pas units and asm blocks with fetch() calls, whether you’re calculating sewage flows or tracking who has the longest road.