Six new endpoints under /api/narrative/*:
- GET /world/<sim_id> — full world state
- POST /world/<sim_id>/rules — replace rules list
- POST /world/<sim_id>/locations — upsert location
- POST /godmode/<sim_id>/inject-event — inject world event
- POST /godmode/<sim_id>/modify-emotion — overwrite emotions
- POST /godmode/<sim_id>/kill — kill character
Validation:
- 400 on missing required fields (description, character_id, rules)
- 400 on invalid round (must be non-negative int or null)
- 404 on character not found (from ValueError in handlers)
Smoke-tested via Flask test client — all 11 response codes correct.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Five endpoints under /api/narrative/*:
- GET /story/<sim_id> — full story so far
- GET /story/<sim_id>/round/<num> — single round
- POST /translate — translate a round on demand
- GET /characters/<sim_id> — roster with emotional state
- POST /characters/<sim_id>/init — bootstrap from OASIS profiles
Blueprint registered alongside existing graph/simulation/report
blueprints following the established pattern. Smoke-tested via Flask
test client.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>