Introduction: The Boring (But Necessary) Stuff
After a month of rapid feature development, every project needs a cleanup week. This week was about Consolidation—making sure our foundation was solid enough for the "Living City" milestone.
Terminology Matters: "Firm" vs "Company"
We had a confusing mix of terms: "Firms," "Companies," "Businesses." We standardized on Company across the entire stack (Simulation, Web API, Client UI).
CompanyIdis now the universal identifier.- Code became cleaner and easier to reason about.
Stabilizing the Core
We spent the week fixing subtle bugs in the simulation loop:
- Tick Ordering: Ensuring that wages are paid before rent is due (crucial for NPC survival!).
- Determinism Checks: Adding rigorous tests to ensure saving/loading produced identical states.
Web Runtime Maturity
Our web API matured significantly. We fleshed out the endpoints needed for a full game client:
GET /api/session/status(Current tick, speed)GET /api/companies/sites(Where are the buildings?)POST /api/commands(Player actions)
What's Next?
With a stable core and a clear API, we were ready for the biggest visual upgrade yet. Next week, the city comes alive with Modular Buildings and a Live Dashboard.