TLDR
Added joinOrder to the player model and automatically assigned game colors (red, blue, white, orange) based on it. Created an eventLog on the game model that keeps track of each action or “free transition” the game goes through (e.g., all players are in the game, so can free transition to PLACE_SETTLEMENT for first user). Added SKIP functionality for the lobby (i.e., you can skip to playing once you have the minimum 3 players).

Main work
- Updating player model in frontend + backend.
- Updating start and join logic to set
joinOrder. - Deciding how to enforce that logs are created by every action and every free transition (answer: fsm coordinates this).
Challenges
- How do we coordinate / align enums between the frontend and backend?
- Should we generate the logs before or after an action/transition occurs? How do we keep the original state of the game that’s required for a meaningful log later?
Learnings
- Java string manipulation is much more verbose than Python. It is not fun to use
String.format(...)versus Python f-strings.