{
  "schema_version": 1,
  "diagram_type": "lifecycle",
  "meta": {
    "title": "Bambu Print Monitor — Supervisor Control Rail",
    "animation": "trace",
    "quality_profile": "showcase",
    "viewBox": [1040, 660],
    "views": [
      {
        "id": "start-gate",
        "label": "Start gate",
        "focus": ["quiescent", "start_pending", "active"],
        "note": "A fresh same-job active observation must pass the two-sample gate before capture starts."
      },
      {
        "id": "terminal-rail",
        "label": "Terminal rail",
        "focus": ["active", "stop_pending", "sealing"],
        "note": "Terminal states are debounced; an active IDLE waits before conservative sealing."
      },
      {
        "id": "health-vocabulary",
        "label": "Health vocabulary",
        "focus": ["active", "stop_pending"],
        "note": "PAUSED_ACTIVE and DEGRADED_ACTIVE are documented in the cards and workflow companion index."
      }
    ]
  },
  "lanes": [
    { "id": "main", "label": "Supervisor lifecycle" }
  ],
  "states": [
    { "id": "quiescent", "type": "start", "label": "QUIESCENT", "sublabel": "no engaged job", "lane": "main", "col": 0, "step": "01", "tag": "idle" },
    { "id": "start_pending", "type": "waiting", "label": "START_PENDING", "sublabel": "fresh same-job sample", "lane": "main", "col": 1, "step": "02", "tag": "2 / 15s" },
    { "id": "active", "type": "active", "label": "ACTIVE", "sublabel": "RUNNING • capture every 5s", "lane": "main", "col": 2, "step": "03", "tag": "engaged" },
    { "id": "stop_pending", "type": "decision", "label": "STOP_PENDING", "sublabel": "terminal / IDLE debounce", "lane": "main", "col": 3, "step": "04", "tag": "guarded" },
    { "id": "sealing", "type": "success", "label": "SEALING", "lane": "main", "col": 4, "step": "05", "tag": "hashes + COMPLETE" }
  ],
  "transitions": [
    { "id": "quiescent-start", "from": "quiescent", "to": "start_pending", "variant": "emphasis" },
    { "id": "start-active", "from": "start_pending", "to": "active", "variant": "emphasis" },
    { "id": "active-stop", "from": "active", "to": "stop_pending", "variant": "emphasis" },
    { "id": "stop-sealing", "from": "stop_pending", "to": "sealing", "variant": "emphasis" }
  ]
}
