TLDR
Now that my general understanding / design of the game flow, finite state machine, and API are complete, I pseudo-code the action object-oriented programming relationships I’ll need. E.g., what will the OOP relationships be between FSM States and FSM Actions. How do they relate to the GameService class, or the GameController.

Main work
- Brainstorming OOP class relationships.
- Going through small examples to test assumptions and feasibility of design.
Challenges
- How do we start making concrete implementations knowing there some services I have not yet built out? (e.g., I’m not considering user auth or data persistence quite yet)
Learnings
- We solve the above challenge by designing for modularity and mocking services we do not yet have.
- In my case for a personal project, I can continue developing the business logic for a single-game case. This allows me to completely ignore problems of auth or persistence until the game logic is functional.