- Problem
- The Unity client is offline today, but its first call will read the player's roster and gate character selection, so the contract had to be right now.
- Approach
- I shaped the API around that future caller. GET /characters/{id} accepts an int id or a slug, player auth issues a JWT with a player role, and I recorded each shape decision as a numbered ADR. The admin panel hits the same endpoints every day.
- Result
- When the game connects, the API won't need to change, because the admin workflow has been testing that same contract all along.