Test a game with MCP
1. Validate and start
Run validate_code until it reports no errors. Then call start_game with a seat count the game allows, and keep the stateRef it returns. Playing a session says what each play tool does.
2. Play legal steps
Pass one offer's action from activePlayers to apply_action. Repeat until decision.status is "committed", then check the log lines and the next offers. Play to the end, until isGameOver is true. Try a refusal the rules allow, and check its reason.
3. Prepare focused positions
Call set_state to write the position a case needs. Call inspect_state to check the result. To keep a position for the user, follow Checkpoints.
4. Inspect each viewer
Call inspect_state with viewer set to each seat and to "spectator", and check that each view lacks what it may not see. Call render_game for each seat, and check the controls and the text in each locale. After you change the source, start a new session with start_game.