Every response carries actions ({id, label, method, route}), and every route resolves, failures included. Payloads map one to one onto the Unity C# DTOs.

Cases

:id takes a FinchNode subject (patient-demo-polypharmacy) or a scenario id (polypharmacy-senior).

Scalpal tools

ElevenLabs webhook tools, all POST with a JSON body. Each returns 200 with a say field, even on failure, so Scalpal always has something true to say.

Coach

/coach/sessions creates a coach session and takes events, hints, explanations, command acks and an SSE stream. /coach/current is what the headset polls, /scalpal is the browser voice page and /scalpal/connection returns a signed ElevenLabs URL.