> ## Documentation Index
> Fetch the complete documentation index at: https://docs.medera.info/llms.txt
> Use this file to discover all available pages before exploring further.

# Canvas Node Types

> 16 core node types + 8 BH-OS rail node types.

The canvas ships **16 core node types** and **8 BH-OS rail** node types. Each runner extends and is registered with the.

## Core nodes (3)

| Type    | Runner          | Purpose                                                     |
| :------ | :-------------- | :---------------------------------------------------------- |
| `start` | `Start runtime` | Workflow entry. Defines input variables.                    |
| `end`   | `End runtime`   | Workflow exit. Marks execution complete with output values. |
| `note`  | annotation only | Documentation node — no runtime effect.                     |

## Logic & control (5)

| Type            | Runner              | Outputs                                                                       |
| :-------------- | :------------------ | :---------------------------------------------------------------------------- |
| `condition`     | `Condition runtime` | `true` / `false` (field + operator + value)                                   |
| `transform`     | `Transform runtime` | `default` (Handlebars / Liquid template)                                      |
| `classify`      | `Classify runtime`  | Dynamic — one per declared category                                           |
| `wait`          | `Wait runtime`      | `default` (after delay or cron)                                               |
| `user-approval` | `Approval runtime`  | `approved` / `rejected` — pauses execution and writes to `workflow_approvals` |

## Healthcare agents (4)

| Type            | Runner            | Outputs                            |
| :-------------- | :---------------- | :--------------------------------- |
| `intake-agent`  | `Intake runtime`  | `success` / `escalate` / `error`   |
| `scribe-agent`  | `Scribe runtime`  | `success` / `error`                |
| `therapy-agent` | `Therapy runtime` | `success` / `concern` / `error`    |
| `triage-agent`  | `Triage runtime`  | `urgent` / `routine` / `self_care` |

## Integration & data (4)

| Type         | Runner               | Outputs                         |
| :----------- | :------------------- | :------------------------------ |
| `guardrails` |                      | `pass` / `fail`                 |
| `ehr-sync`   | `EHR sync runtime`   | `success` / `error`             |
| `fhir-query` | `FHIR query runtime` | `success` / `error`             |
| `escalate`   | `Escalation runtime` | (terminal — sends notification) |

## BH-OS rails (8)

The BH-OS rails are typed runners backed by. Each rail wires the workflow into a corresponding backend service.

<CardGroup cols={2}>
  <Card title="rails/assessment" icon="https://mintcdn.com/medera-357fd587/iC-6rAuwl-0aQSw_/icons/ui/clipboard-check.svg?fit=max&auto=format&n=iC-6rAuwl-0aQSw_&q=85&s=9cf869d685b45a2ec31be2b3d675a841" width="40" height="40" data-path="icons/ui/clipboard-check.svg">
    Clinical assessment runner
  </Card>

  <Card title="rails/triage" icon="https://mintcdn.com/medera-357fd587/n1mgcc3nR2sq_PoL/icons/ui/triangle-alert.svg?fit=max&auto=format&n=n1mgcc3nR2sq_PoL&q=85&s=5a9278268a7473f7172b7472f916753c" width="40" height="40" data-path="icons/ui/triangle-alert.svg">
    Triage routing
  </Card>

  <Card title="rails/referral" icon="https://mintcdn.com/medera-357fd587/iC-6rAuwl-0aQSw_/icons/ui/link.svg?fit=max&auto=format&n=iC-6rAuwl-0aQSw_&q=85&s=44f5f1ae1b0122daa0138e9f47b49449" width="40" height="40" data-path="icons/ui/link.svg">
    Referral generator + closed-loop
  </Card>

  <Card title="rails/pa" icon="https://mintcdn.com/medera-357fd587/iC-6rAuwl-0aQSw_/icons/ui/file-check-2.svg?fit=max&auto=format&n=iC-6rAuwl-0aQSw_&q=85&s=49f0f21ae1056274346b6a6236075644" width="40" height="40" data-path="icons/ui/file-check-2.svg">
    Prior authorization workflow
  </Card>

  <Card title="rails/mbc" icon="https://mintcdn.com/medera-357fd587/iC-6rAuwl-0aQSw_/icons/ui/chart-line.svg?fit=max&auto=format&n=iC-6rAuwl-0aQSw_&q=85&s=c4831c9d7d3dd913eed06ca94e3b99bd" width="40" height="40" data-path="icons/ui/chart-line.svg">
    Measurement-Based Care
  </Card>

  <Card title="rails/quality" icon="https://mintcdn.com/medera-357fd587/iC-6rAuwl-0aQSw_/icons/ui/award.svg?fit=max&auto=format&n=iC-6rAuwl-0aQSw_&q=85&s=d2e8e94a74347bb2b14c0dadeaab8edd" width="40" height="40" data-path="icons/ui/award.svg">
    HEDIS / MIPS capture
  </Card>

  <Card title="rails/network" icon="https://mintcdn.com/medera-357fd587/iC-6rAuwl-0aQSw_/icons/ui/network.svg?fit=max&auto=format&n=iC-6rAuwl-0aQSw_&q=85&s=31ec0edd8f871633af0c026a8006d545" width="40" height="40" data-path="icons/ui/network.svg">
    Provider network logic
  </Card>

  <Card title="rails/pharmacy" icon="https://mintcdn.com/medera-357fd587/iC-6rAuwl-0aQSw_/icons/ui/pill.svg?fit=max&auto=format&n=iC-6rAuwl-0aQSw_&q=85&s=5afc6b31c982283e8b8c2d10483fa0a8" width="40" height="40" data-path="icons/ui/pill.svg">
    e-Rx network e-Rx + DDI
  </Card>
</CardGroup>

## Sample composition

<Frame>
  <svg viewBox="0 0 720 580" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="medera/canvas-node-graph.svg" style={{ width: '100%', height: 'auto', display: 'block', maxWidth: '780px', margin: '24px auto' }}><defs><pattern id="mdr-dots" x="0" y="0" width="10" height="10" patternUnits="userSpaceOnUse"><circle cx="1" cy="1" r="1" fill="rgba(0,0,0,0.08)" /></pattern></defs><rect x="0" y="0" width="720" height="580" fill="#ffffff" /><rect x="0" y="0" width="720" height="32" fill="#141413" /><circle cx="14" cy="16" r="3" fill="#ff5f57" /><circle cx="26" cy="16" r="3" fill="#febc2e" /><circle cx="38" cy="16" r="3" fill="#28c840" /><text x="54" y="20" fill="#9a9893" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="11" fontWeight="500">medera/canvas-node-graph.svg</text><text x="706" y="20" textAnchor="end" fill="#9a9893" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10">16 node types + 8 BH-OS rails</text><rect x="0" y="32" width="720" height="548" fill="#fafaf6" /><rect x="0" y="32" width="720" height="548" fill="url(#mdr-dots)" /><rect x="0.5" y="0.5" width="719" height="579" fill="none" stroke="#141413" strokeOpacity="0.18" /><text x="360.0" y="56" textAnchor="middle" fill="#141413" fontFamily="Inter, sans-serif" fontSize="15" fontWeight="600">16 canvas node types</text><text x="360.0" y="76" textAnchor="middle" fill="#5c5c5a" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="11">+ 8 BH-OS rails layered on top</text><rect x="40.0" y="100" width="148.0" height="100" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><rect x="110.40" y="117.60" width="7.20" height="1.80" fill="#141413" /><rect x="108.60" y="119.40" width="1.80" height="9.00" fill="#141413" /><rect x="117.60" y="119.40" width="1.80" height="9.00" fill="#141413" /><rect x="110.40" y="128.40" width="7.20" height="1.80" fill="#141413" /><rect x="112.20" y="121.20" width="3.60" height="5.40" fill="#76a1fc" /><rect x="106.80" y="124.80" width="1.80" height="3.60" fill="#141413" /><rect x="119.40" y="124.80" width="1.80" height="3.60" fill="#141413" /><rect x="108.60" y="130.20" width="10.80" height="1.80" fill="#141413" /><rect x="112.20" y="132.00" width="3.60" height="3.60" fill="#141413" /><rect x="108.60" y="135.60" width="10.80" height="1.80" fill="#141413" /><rect x="123.00" y="123.00" width="1.80" height="1.80" fill="#76a1fc" /><rect x="124.80" y="121.20" width="1.80" height="5.40" fill="#76a1fc" /><text x="114.0" y="182" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="600">start</text><rect x="200.0" y="100" width="148.0" height="100" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><rect x="263.20" y="117.60" width="21.60" height="1.80" fill="#141413" /><rect x="263.20" y="117.60" width="1.80" height="21.60" fill="#141413" /><rect x="263.20" y="137.40" width="21.60" height="1.80" fill="#141413" /><rect x="283.00" y="117.60" width="1.80" height="21.60" fill="#141413" /><rect x="266.80" y="123.00" width="5.40" height="1.80" fill="#141413" /><rect x="266.80" y="128.40" width="5.40" height="1.80" fill="#141413" /><rect x="266.80" y="133.80" width="5.40" height="1.80" fill="#141413" /><rect x="274.00" y="123.00" width="7.20" height="1.80" fill="#76a1fc" /><rect x="274.00" y="128.40" width="7.20" height="1.80" fill="#76a1fc" /><rect x="274.00" y="133.80" width="7.20" height="1.80" fill="#76a1fc" /><text x="274.0" y="182" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="600">end</text><rect x="360.0" y="100" width="148.0" height="100" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><rect x="423.20" y="119.40" width="5.40" height="1.80" fill="#141413" /><rect x="421.40" y="121.20" width="9.00" height="1.80" fill="#141413" /><rect x="421.40" y="123.00" width="1.80" height="3.60" fill="#141413" /><rect x="428.60" y="123.00" width="1.80" height="3.60" fill="#141413" /><rect x="423.20" y="126.60" width="5.40" height="1.80" fill="#141413" /><rect x="426.80" y="128.40" width="1.80" height="1.80" fill="#141413" /><rect x="428.60" y="130.20" width="1.80" height="1.80" fill="#141413" /><rect x="430.40" y="132.00" width="1.80" height="1.80" fill="#141413" /><rect x="432.20" y="133.80" width="1.80" height="1.80" fill="#141413" /><rect x="434.00" y="135.60" width="1.80" height="1.80" fill="#141413" /><rect x="435.80" y="135.60" width="1.80" height="1.80" fill="#141413" /><rect x="437.60" y="133.80" width="1.80" height="1.80" fill="#141413" /><rect x="439.40" y="133.80" width="5.40" height="1.80" fill="#141413" /><rect x="439.40" y="135.60" width="1.80" height="3.60" fill="#141413" /><rect x="446.60" y="133.80" width="1.80" height="3.60" fill="#141413" /><rect x="441.20" y="137.40" width="5.40" height="1.80" fill="#141413" /><rect x="432.20" y="117.60" width="1.80" height="1.80" fill="#76a1fc" /><rect x="435.80" y="115.80" width="1.80" height="1.80" fill="#76a1fc" /><rect x="439.40" y="117.60" width="1.80" height="1.80" fill="#76a1fc" /><text x="434.0" y="182" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="600">intake-agent</text><rect x="520.0" y="100" width="148.0" height="100" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><rect x="585.00" y="117.60" width="14.40" height="1.80" fill="#141413" /><rect x="585.00" y="117.60" width="1.80" height="19.80" fill="#141413" /><rect x="585.00" y="137.40" width="16.20" height="1.80" fill="#141413" /><rect x="599.40" y="121.20" width="1.80" height="16.20" fill="#141413" /><rect x="597.60" y="117.60" width="1.80" height="1.80" fill="#141413" /><rect x="599.40" y="119.40" width="1.80" height="3.60" fill="#141413" /><rect x="588.60" y="124.80" width="9.00" height="1.80" fill="#76a1fc" /><rect x="588.60" y="128.40" width="9.00" height="1.80" fill="#76a1fc" /><rect x="588.60" y="132.00" width="5.40" height="1.80" fill="#76a1fc" /><text x="594.0" y="182" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="600">scribe-agent</text><rect x="40.0" y="212" width="148.0" height="100" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><rect x="108.60" y="231.40" width="3.60" height="1.80" fill="#141413" /><rect x="115.80" y="231.40" width="3.60" height="1.80" fill="#141413" /><rect x="105.00" y="233.20" width="3.60" height="1.80" fill="#141413" /><rect x="119.40" y="233.20" width="3.60" height="1.80" fill="#141413" /><rect x="103.20" y="235.00" width="1.80" height="9.00" fill="#141413" /><rect x="123.00" y="235.00" width="1.80" height="9.00" fill="#141413" /><rect x="112.20" y="229.60" width="3.60" height="1.80" fill="#141413" /><rect x="112.20" y="233.20" width="3.60" height="1.80" fill="#76a1fc" /><rect x="112.20" y="235.00" width="3.60" height="1.80" fill="#76a1fc" /><rect x="112.20" y="236.80" width="3.60" height="1.80" fill="#76a1fc" /><rect x="112.20" y="238.60" width="3.60" height="1.80" fill="#76a1fc" /><rect x="112.20" y="240.40" width="3.60" height="1.80" fill="#76a1fc" /><rect x="112.20" y="242.20" width="3.60" height="1.80" fill="#76a1fc" /><rect x="105.00" y="244.00" width="1.80" height="1.80" fill="#141413" /><rect x="121.20" y="244.00" width="1.80" height="1.80" fill="#141413" /><rect x="106.80" y="245.80" width="3.60" height="1.80" fill="#141413" /><rect x="117.60" y="245.80" width="3.60" height="1.80" fill="#141413" /><rect x="110.40" y="247.60" width="7.20" height="1.80" fill="#141413" /><rect x="112.20" y="249.40" width="3.60" height="1.80" fill="#141413" /><text x="114.0" y="294" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="600">therapy-agent</text><rect x="200.0" y="212" width="148.0" height="100" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><rect x="272.20" y="227.80" width="3.60" height="1.80" fill="#141413" /><rect x="270.40" y="229.60" width="7.20" height="1.80" fill="#141413" /><rect x="268.60" y="231.40" width="1.80" height="1.80" fill="#141413" /><rect x="277.60" y="231.40" width="1.80" height="1.80" fill="#141413" /><rect x="268.60" y="233.20" width="1.80" height="1.80" fill="#141413" /><rect x="277.60" y="233.20" width="1.80" height="1.80" fill="#141413" /><rect x="266.80" y="235.00" width="1.80" height="1.80" fill="#141413" /><rect x="279.40" y="235.00" width="1.80" height="1.80" fill="#141413" /><rect x="266.80" y="236.80" width="1.80" height="1.80" fill="#141413" /><rect x="279.40" y="236.80" width="1.80" height="1.80" fill="#141413" /><rect x="265.00" y="238.60" width="1.80" height="1.80" fill="#141413" /><rect x="281.20" y="238.60" width="1.80" height="1.80" fill="#141413" /><rect x="265.00" y="240.40" width="1.80" height="1.80" fill="#141413" /><rect x="281.20" y="240.40" width="1.80" height="1.80" fill="#141413" /><rect x="263.20" y="242.20" width="1.80" height="1.80" fill="#141413" /><rect x="283.00" y="242.20" width="1.80" height="1.80" fill="#141413" /><rect x="263.20" y="244.00" width="1.80" height="1.80" fill="#141413" /><rect x="283.00" y="244.00" width="1.80" height="1.80" fill="#141413" /><rect x="261.40" y="245.80" width="1.80" height="1.80" fill="#141413" /><rect x="284.80" y="245.80" width="1.80" height="1.80" fill="#141413" /><rect x="261.40" y="247.60" width="1.80" height="1.80" fill="#141413" /><rect x="284.80" y="247.60" width="1.80" height="1.80" fill="#141413" /><rect x="261.40" y="249.40" width="25.20" height="1.80" fill="#141413" /><rect x="272.20" y="235.00" width="3.60" height="7.20" fill="#76a1fc" /><rect x="272.20" y="244.00" width="3.60" height="3.60" fill="#76a1fc" /><text x="274.0" y="294" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="600">triage-agent</text><rect x="360.0" y="212" width="148.0" height="100" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><rect x="426.80" y="229.60" width="14.40" height="1.80" fill="#141413" /><rect x="425.00" y="231.40" width="1.80" height="12.60" fill="#141413" /><rect x="441.20" y="231.40" width="1.80" height="12.60" fill="#141413" /><rect x="426.80" y="244.00" width="1.80" height="1.80" fill="#141413" /><rect x="439.40" y="244.00" width="1.80" height="1.80" fill="#141413" /><rect x="428.60" y="245.80" width="1.80" height="1.80" fill="#141413" /><rect x="437.60" y="245.80" width="1.80" height="1.80" fill="#141413" /><rect x="430.40" y="247.60" width="7.20" height="1.80" fill="#141413" /><rect x="432.20" y="249.40" width="3.60" height="1.80" fill="#141413" /><rect x="428.60" y="238.60" width="1.80" height="1.80" fill="#76a1fc" /><rect x="430.40" y="240.40" width="1.80" height="1.80" fill="#76a1fc" /><rect x="432.20" y="238.60" width="1.80" height="1.80" fill="#76a1fc" /><rect x="434.00" y="236.80" width="1.80" height="1.80" fill="#76a1fc" /><rect x="435.80" y="235.00" width="1.80" height="1.80" fill="#76a1fc" /><rect x="437.60" y="233.20" width="1.80" height="1.80" fill="#76a1fc" /><text x="434.0" y="294" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="600">guardrails</text><rect x="520.0" y="212" width="148.0" height="100" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><rect x="581.40" y="233.20" width="9.00" height="1.80" fill="#141413" /><rect x="581.40" y="233.20" width="1.80" height="16.20" fill="#141413" /><rect x="590.40" y="233.20" width="1.80" height="1.80" fill="#141413" /><rect x="592.20" y="235.00" width="14.40" height="1.80" fill="#141413" /><rect x="606.60" y="235.00" width="1.80" height="14.40" fill="#141413" /><rect x="581.40" y="249.40" width="25.20" height="1.80" fill="#141413" /><rect x="586.80" y="240.40" width="14.40" height="1.80" fill="#76a1fc" /><rect x="586.80" y="244.00" width="10.80" height="1.80" fill="#76a1fc" /><text x="594.0" y="294" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="600">fhir-query</text><rect x="40.0" y="324" width="148.0" height="100" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><rect x="101.40" y="350.60" width="9.00" height="3.60" fill="#141413" /><rect x="110.40" y="350.60" width="1.80" height="3.60" fill="#141413" /><rect x="112.20" y="341.60" width="1.80" height="1.80" fill="#76a1fc" /><rect x="112.20" y="343.40" width="1.80" height="1.80" fill="#76a1fc" /><rect x="112.20" y="350.60" width="1.80" height="3.60" fill="#76a1fc" /><rect x="112.20" y="359.60" width="1.80" height="1.80" fill="#76a1fc" /><rect x="112.20" y="361.40" width="1.80" height="1.80" fill="#76a1fc" /><rect x="114.00" y="341.60" width="9.00" height="3.60" fill="#141413" /><rect x="114.00" y="350.60" width="9.00" height="3.60" fill="#141413" /><rect x="114.00" y="359.60" width="9.00" height="3.60" fill="#141413" /><text x="114.0" y="406" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="600">transform</text><rect x="200.0" y="324" width="148.0" height="100" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><rect x="263.20" y="343.40" width="21.60" height="1.80" fill="#141413" /><rect x="263.20" y="343.40" width="1.80" height="19.80" fill="#141413" /><rect x="283.00" y="343.40" width="1.80" height="19.80" fill="#141413" /><rect x="263.20" y="361.40" width="21.60" height="1.80" fill="#141413" /><rect x="266.80" y="341.60" width="1.80" height="3.60" fill="#141413" /><rect x="279.40" y="341.60" width="1.80" height="3.60" fill="#141413" /><rect x="266.80" y="350.60" width="1.80" height="1.80" fill="#76a1fc" /><rect x="270.40" y="350.60" width="1.80" height="1.80" fill="#76a1fc" /><rect x="274.00" y="350.60" width="1.80" height="1.80" fill="#76a1fc" /><rect x="277.60" y="350.60" width="1.80" height="1.80" fill="#76a1fc" /><rect x="281.20" y="350.60" width="1.80" height="1.80" fill="#76a1fc" /><rect x="266.80" y="354.20" width="1.80" height="1.80" fill="#76a1fc" /><rect x="270.40" y="354.20" width="1.80" height="1.80" fill="#76a1fc" /><rect x="274.00" y="354.20" width="1.80" height="1.80" fill="#76a1fc" /><rect x="277.60" y="354.20" width="1.80" height="1.80" fill="#76a1fc" /><rect x="266.80" y="357.80" width="1.80" height="1.80" fill="#76a1fc" /><rect x="270.40" y="357.80" width="1.80" height="1.80" fill="#76a1fc" /><rect x="274.00" y="357.80" width="1.80" height="1.80" fill="#76a1fc" /><text x="274.0" y="406" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="600">user-approval</text><rect x="360.0" y="324" width="148.0" height="100" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><rect x="423.20" y="350.60" width="1.80" height="3.60" fill="#141413" /><rect x="425.00" y="348.80" width="5.40" height="1.80" fill="#141413" /><rect x="425.00" y="354.20" width="5.40" height="1.80" fill="#141413" /><rect x="430.40" y="350.60" width="1.80" height="3.60" fill="#141413" /><rect x="437.60" y="350.60" width="1.80" height="3.60" fill="#141413" /><rect x="439.40" y="348.80" width="5.40" height="1.80" fill="#141413" /><rect x="439.40" y="354.20" width="5.40" height="1.80" fill="#141413" /><rect x="444.80" y="350.60" width="1.80" height="3.60" fill="#141413" /><rect x="430.40" y="350.60" width="7.20" height="3.60" fill="#76a1fc" /><text x="434.0" y="406" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="600">condition</text><rect x="520.0" y="324" width="148.0" height="100" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><rect x="581.40" y="339.80" width="1.80" height="23.40" fill="#141413" /><rect x="581.40" y="361.40" width="25.20" height="1.80" fill="#141413" /><rect x="585.00" y="354.20" width="3.60" height="7.20" fill="#76a1fc" /><rect x="590.40" y="348.80" width="3.60" height="12.60" fill="#76a1fc" /><rect x="595.80" y="343.40" width="3.60" height="18.00" fill="#76a1fc" /><rect x="601.20" y="350.60" width="3.60" height="10.80" fill="#76a1fc" /><text x="594.0" y="406" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="600">classify</text><rect x="40.0" y="436" width="148.0" height="100" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><rect x="103.20" y="455.40" width="21.60" height="1.80" fill="#141413" /><rect x="103.20" y="455.40" width="1.80" height="19.80" fill="#141413" /><rect x="123.00" y="455.40" width="1.80" height="19.80" fill="#141413" /><rect x="103.20" y="473.40" width="21.60" height="1.80" fill="#141413" /><rect x="106.80" y="453.60" width="1.80" height="3.60" fill="#141413" /><rect x="119.40" y="453.60" width="1.80" height="3.60" fill="#141413" /><rect x="106.80" y="462.60" width="1.80" height="1.80" fill="#76a1fc" /><rect x="110.40" y="462.60" width="1.80" height="1.80" fill="#76a1fc" /><rect x="114.00" y="462.60" width="1.80" height="1.80" fill="#76a1fc" /><rect x="117.60" y="462.60" width="1.80" height="1.80" fill="#76a1fc" /><rect x="121.20" y="462.60" width="1.80" height="1.80" fill="#76a1fc" /><rect x="106.80" y="466.20" width="1.80" height="1.80" fill="#76a1fc" /><rect x="110.40" y="466.20" width="1.80" height="1.80" fill="#76a1fc" /><rect x="114.00" y="466.20" width="1.80" height="1.80" fill="#76a1fc" /><rect x="117.60" y="466.20" width="1.80" height="1.80" fill="#76a1fc" /><rect x="106.80" y="469.80" width="1.80" height="1.80" fill="#76a1fc" /><rect x="110.40" y="469.80" width="1.80" height="1.80" fill="#76a1fc" /><rect x="114.00" y="469.80" width="1.80" height="1.80" fill="#76a1fc" /><text x="114.0" y="518" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="600">wait</text><rect x="200.0" y="436" width="148.0" height="100" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><rect x="272.20" y="451.80" width="3.60" height="1.80" fill="#141413" /><rect x="270.40" y="453.60" width="7.20" height="1.80" fill="#141413" /><rect x="268.60" y="455.40" width="1.80" height="1.80" fill="#141413" /><rect x="277.60" y="455.40" width="1.80" height="1.80" fill="#141413" /><rect x="268.60" y="457.20" width="1.80" height="1.80" fill="#141413" /><rect x="277.60" y="457.20" width="1.80" height="1.80" fill="#141413" /><rect x="266.80" y="459.00" width="1.80" height="1.80" fill="#141413" /><rect x="279.40" y="459.00" width="1.80" height="1.80" fill="#141413" /><rect x="266.80" y="460.80" width="1.80" height="1.80" fill="#141413" /><rect x="279.40" y="460.80" width="1.80" height="1.80" fill="#141413" /><rect x="265.00" y="462.60" width="1.80" height="1.80" fill="#141413" /><rect x="281.20" y="462.60" width="1.80" height="1.80" fill="#141413" /><rect x="265.00" y="464.40" width="1.80" height="1.80" fill="#141413" /><rect x="281.20" y="464.40" width="1.80" height="1.80" fill="#141413" /><rect x="263.20" y="466.20" width="1.80" height="1.80" fill="#141413" /><rect x="283.00" y="466.20" width="1.80" height="1.80" fill="#141413" /><rect x="263.20" y="468.00" width="1.80" height="1.80" fill="#141413" /><rect x="283.00" y="468.00" width="1.80" height="1.80" fill="#141413" /><rect x="261.40" y="469.80" width="1.80" height="1.80" fill="#141413" /><rect x="284.80" y="469.80" width="1.80" height="1.80" fill="#141413" /><rect x="261.40" y="471.60" width="1.80" height="1.80" fill="#141413" /><rect x="284.80" y="471.60" width="1.80" height="1.80" fill="#141413" /><rect x="261.40" y="473.40" width="25.20" height="1.80" fill="#141413" /><rect x="272.20" y="459.00" width="3.60" height="7.20" fill="#76a1fc" /><rect x="272.20" y="468.00" width="3.60" height="3.60" fill="#76a1fc" /><text x="274.0" y="518" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="600">escalate</text><rect x="360.0" y="436" width="148.0" height="100" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><rect x="423.20" y="453.60" width="21.60" height="1.80" fill="#141413" /><rect x="423.20" y="453.60" width="1.80" height="21.60" fill="#141413" /><rect x="423.20" y="473.40" width="21.60" height="1.80" fill="#141413" /><rect x="443.00" y="453.60" width="1.80" height="21.60" fill="#141413" /><rect x="439.40" y="455.40" width="3.60" height="1.80" fill="#141413" /><rect x="441.20" y="457.20" width="1.80" height="1.80" fill="#141413" /><rect x="426.80" y="462.60" width="1.80" height="3.60" fill="#76a1fc" /><rect x="428.60" y="460.80" width="1.80" height="7.20" fill="#76a1fc" /><rect x="430.40" y="459.00" width="1.80" height="10.80" fill="#76a1fc" /><rect x="432.20" y="462.60" width="1.80" height="3.60" fill="#76a1fc" /><rect x="434.00" y="457.20" width="1.80" height="14.40" fill="#76a1fc" /><rect x="435.80" y="460.80" width="1.80" height="7.20" fill="#76a1fc" /><rect x="437.60" y="459.00" width="1.80" height="10.80" fill="#76a1fc" /><rect x="439.40" y="462.60" width="1.80" height="3.60" fill="#76a1fc" /><text x="434.0" y="518" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="600">compose</text><rect x="520.0" y="436" width="148.0" height="100" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><rect x="583.20" y="453.60" width="21.60" height="1.80" fill="#141413" /><rect x="583.20" y="453.60" width="1.80" height="21.60" fill="#141413" /><rect x="583.20" y="473.40" width="21.60" height="1.80" fill="#141413" /><rect x="603.00" y="453.60" width="1.80" height="21.60" fill="#141413" /><rect x="586.80" y="459.00" width="5.40" height="1.80" fill="#141413" /><rect x="586.80" y="464.40" width="5.40" height="1.80" fill="#141413" /><rect x="586.80" y="469.80" width="5.40" height="1.80" fill="#141413" /><rect x="594.00" y="459.00" width="7.20" height="1.80" fill="#76a1fc" /><rect x="594.00" y="464.40" width="7.20" height="1.80" fill="#76a1fc" /><rect x="594.00" y="469.80" width="7.20" height="1.80" fill="#76a1fc" /><text x="594.0" y="518" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="600">emit</text></svg>
</Frame>

## Validation

`Node runtime.validate(node)` enforces required fields per node type at design time. Connections are type-checked — a `condition` node's `true` port can only connect to a node that accepts the condition's state output shape.

***

## What's next

<CardGroup cols={2}>
  <Card title="Variables & Scopes" icon="https://mintcdn.com/medera-357fd587/iC-6rAuwl-0aQSw_/icons/ui/code.svg?fit=max&auto=format&n=iC-6rAuwl-0aQSw_&q=85&s=55229463dbd5bbb579cce6192dbc5ffc" href="/agentic/canvas/variables-scopes" width="40" height="40" data-path="icons/ui/code.svg">
    Template resolution and template syntax.
  </Card>

  <Card title="Versioning & Deployment" icon="https://mintcdn.com/medera-357fd587/iC-6rAuwl-0aQSw_/icons/ui/rocket.svg?fit=max&auto=format&n=iC-6rAuwl-0aQSw_&q=85&s=3589c7c988f4bcd5e2811bac87becdb9" href="/agentic/canvas/versioning-deployment" width="40" height="40" data-path="icons/ui/rocket.svg">
    Snapshots, sandbox-first deploys, WORM audit.
  </Card>

  <Card title="Guardrails" icon="https://mintcdn.com/medera-357fd587/n1mgcc3nR2sq_PoL/icons/ui/shield-check.svg?fit=max&auto=format&n=n1mgcc3nR2sq_PoL&q=85&s=6909d120dcab3cdfef838294f042d00c" href="/agentic/canvas/guardrails" width="40" height="40" data-path="icons/ui/shield-check.svg">
    HIPAA + 42 CFR Part 2 rules.
  </Card>

  <Card title="Transforms" icon="https://mintcdn.com/medera-357fd587/n1mgcc3nR2sq_PoL/icons/ui/wand.svg?fit=max&auto=format&n=n1mgcc3nR2sq_PoL&q=85&s=a22c0da9e3a5d39a75c28e1983f90a2b" href="/agentic/canvas/transforms-cel" width="40" height="40" data-path="icons/ui/wand.svg">
    Template-driven data shaping.
  </Card>
</CardGroup>
