Reference·Updated Aug 3, 2026
Game SDK protocol v1
| Direction | Message | Purpose |
| Game → Launcher | client.hello | authenticate with the session token |
| Game → Launcher | game.ready | report that the game is loaded |
| Launcher → Game | session.start | start the round |
| Launcher → Game | target.hit | deliver hit coordinates |
| Launcher → Game | session.pause/resume/stop | control the session |
| Game → Launcher | score.update | send a live result |
| Game → Launcher | session.complete | send the final result |
Message envelope
{
"msg": "target.hit",
"seq": 18,
"session_id": "session-123",
"ts_monotonic_ms": 42114,
"body": {
"shot_id": "shot-0004",
"x_mm": 1432,
"y_mm": 817
}
}
Control reasons
| Message | Allowed values |
|---|
| session.pause | operator_requested, controller_unavailable, license_state_changed, focus_lost |
| session.stop | normal_end, operator_abort, host_shutdown, device_fault |
| device.state | ready, degraded, controller_lost, busy |
Envelope schema: game-sdk-envelope.v1.schema.json.