Protocol.Start Assignment
protocol.start_assignmentEnroll a subject and prepare their neurofeedback deploy session (confirm-gated — a session runs on a human). Creates the assignment (yoked sham arms REQUIRE yoked_donor_upload_id: a recorded simulated session's upload — mint one by running an active-arm session and data.upload-ing its recording), then persists the protocol graph as a deployable execution. Requires a Pro plan for LIVE hardware sessions; simulated-source sessions (the default template) are free.
Graph source: execution_id reuses THAT run's stored graph (it must contain a protocol_session node; no device is pre-connected — the deploy session's data source stays yours). Without execution_id the built-in template graph is cloned — simulated source → bandpass → bandpower_indicator → protocol_session stamped with the protocol refs — and a simulated device is connected to the returned session id.
The session starts when a client opens {statusUrl} (the deploy WS), sends init_deployment with modelExecutionId={executionId}, then start; the Studio app shows the feedback panel automatically. Poll protocol.session_status; stop with protocol.stop (the recording's block annotations + assignment progression are written on stop).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| arm | Yes | active | sham. | |
| confirm | No | MUST be true — explicit go-ahead for a session on a human. | |
| protocol_id | Yes | Saved protocol id (protocol.save). | |
| execution_id | No | Optional completed execution whose stored graph carries a protocol_session node; default clones the template. | |
| subject_label | Yes | Subject identifier (e.g. "S01"). | |
| protocol_version | Yes | Immutable version the assignment pins. | |
| yoked_donor_upload_id | No | Donor recording upload (required when the arm's blocks resolve to yoked — the backend validates coverage). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||