{
  "schemaVersion": 1,
  "id": "example_industrial",
  "title": "Manufacturing flow and quality rework",
  "diagram": {
    "adapter": "flowchart",
    "direction": "LR",
    "nodes": [
      {
        "id": "supplier",
        "kind": "supplier_customer",
        "label": "Raw-material supplier",
        "ports": [
          {
            "name": "in",
            "side": "left",
            "position": {
              "x": 0,
              "y": 0.35
            },
            "id": "supplier:in"
          },
          {
            "name": "out",
            "side": "right",
            "position": {
              "x": 1,
              "y": 0.35
            },
            "id": "supplier:out"
          }
        ],
        "fields": {
          "tag": "SUP-01",
          "partner": "Supplier A",
          "description": ""
        }
      },
      {
        "id": "buffer",
        "kind": "inventory",
        "label": "Incoming inventory",
        "ports": [
          {
            "name": "in",
            "side": "left",
            "position": {
              "x": 0,
              "y": 0.35
            },
            "id": "buffer:in"
          },
          {
            "name": "out",
            "side": "right",
            "position": {
              "x": 1,
              "y": 0.35
            },
            "id": "buffer:out"
          }
        ],
        "fields": {
          "tag": "INV-01",
          "quantity": "100 pcs",
          "description": ""
        }
      },
      {
        "id": "conveyor",
        "kind": "conveyor",
        "label": "Line feed",
        "ports": [
          {
            "name": "in",
            "side": "left",
            "position": {
              "x": 0,
              "y": 0.35
            },
            "id": "conveyor:in"
          },
          {
            "name": "out",
            "side": "right",
            "position": {
              "x": 1,
              "y": 0.35
            },
            "id": "conveyor:out"
          }
        ],
        "fields": {
          "tag": "CV-01",
          "speed": "0.5 m/s",
          "description": ""
        }
      },
      {
        "id": "machine",
        "kind": "machine",
        "label": "Machining cell",
        "ports": [
          {
            "name": "in",
            "side": "left",
            "position": {
              "x": 0,
              "y": 0.35
            },
            "id": "machine:in"
          },
          {
            "name": "out",
            "side": "right",
            "position": {
              "x": 1,
              "y": 0.35
            },
            "id": "machine:out"
          }
        ],
        "fields": {
          "tag": "MC-01",
          "cycleTime": "30 s",
          "availability": "95%",
          "description": ""
        }
      },
      {
        "id": "robot",
        "kind": "robot",
        "label": "Assembly robot",
        "ports": [
          {
            "name": "in",
            "side": "left",
            "position": {
              "x": 0,
              "y": 0.35
            },
            "id": "robot:in"
          },
          {
            "name": "out",
            "side": "right",
            "position": {
              "x": 1,
              "y": 0.35
            },
            "id": "robot:out"
          },
          {
            "name": "control",
            "side": "top",
            "position": {
              "x": 0.5,
              "y": 0
            },
            "id": "robot:control"
          }
        ],
        "fields": {
          "tag": "RB-01",
          "payload": "10 kg",
          "description": ""
        }
      },
      {
        "id": "inspection",
        "kind": "inspection",
        "label": "Quality gate",
        "ports": [
          {
            "name": "in",
            "side": "left",
            "position": {
              "x": 0,
              "y": 0.35
            },
            "id": "inspection:in"
          },
          {
            "name": "pass",
            "side": "right",
            "position": {
              "x": 1,
              "y": 0.2
            },
            "id": "inspection:pass"
          },
          {
            "name": "reject",
            "side": "right",
            "position": {
              "x": 1,
              "y": 0.55
            },
            "id": "inspection:reject"
          }
        ],
        "fields": {
          "tag": "QC-01",
          "criterion": "Visual + gauge",
          "description": ""
        }
      },
      {
        "id": "stock",
        "kind": "warehouse",
        "label": "Finished goods",
        "ports": [
          {
            "name": "in",
            "side": "left",
            "position": {
              "x": 0,
              "y": 0.35
            },
            "id": "stock:in"
          },
          {
            "name": "out",
            "side": "right",
            "position": {
              "x": 1,
              "y": 0.35
            },
            "id": "stock:out"
          }
        ],
        "fields": {
          "tag": "WH-01",
          "capacity": "500 pallets",
          "description": ""
        }
      },
      {
        "id": "shipping",
        "kind": "shipping",
        "label": "Dispatch",
        "ports": [
          {
            "name": "in",
            "side": "left",
            "position": {
              "x": 0,
              "y": 0.35
            },
            "id": "shipping:in"
          },
          {
            "name": "out",
            "side": "right",
            "position": {
              "x": 1,
              "y": 0.35
            },
            "id": "shipping:out"
          }
        ],
        "fields": {
          "tag": "DOCK-01",
          "frequency": "Daily",
          "description": ""
        }
      },
      {
        "id": "rework",
        "kind": "workstation",
        "label": "Rework station",
        "ports": [
          {
            "name": "in",
            "side": "left",
            "position": {
              "x": 0,
              "y": 0.35
            },
            "id": "rework:in"
          },
          {
            "name": "out",
            "side": "right",
            "position": {
              "x": 1,
              "y": 0.35
            },
            "id": "rework:out"
          }
        ],
        "fields": {
          "tag": "RW-01",
          "cycleTime": "90 s",
          "operators": "1",
          "description": ""
        }
      },
      {
        "id": "kanban",
        "kind": "kanban",
        "label": "Replenishment signal",
        "ports": [
          {
            "name": "in",
            "side": "left",
            "position": {
              "x": 0,
              "y": 0.35
            },
            "id": "kanban:in"
          },
          {
            "name": "out",
            "side": "right",
            "position": {
              "x": 1,
              "y": 0.35
            },
            "id": "kanban:out"
          }
        ],
        "fields": {
          "tag": "KB-01",
          "lotSize": "20 pcs",
          "description": ""
        }
      }
    ],
    "connectors": [
      {
        "id": "example_industrial_edge_0",
        "from": {
          "nodeId": "supplier",
          "portId": "supplier:out"
        },
        "to": {
          "nodeId": "buffer",
          "portId": "buffer:in"
        },
        "label": "Material"
      },
      {
        "id": "example_industrial_edge_1",
        "from": {
          "nodeId": "buffer",
          "portId": "buffer:out"
        },
        "to": {
          "nodeId": "conveyor",
          "portId": "conveyor:in"
        },
        "label": ""
      },
      {
        "id": "example_industrial_edge_2",
        "from": {
          "nodeId": "conveyor",
          "portId": "conveyor:out"
        },
        "to": {
          "nodeId": "machine",
          "portId": "machine:in"
        },
        "label": ""
      },
      {
        "id": "example_industrial_edge_3",
        "from": {
          "nodeId": "machine",
          "portId": "machine:out"
        },
        "to": {
          "nodeId": "robot",
          "portId": "robot:in"
        },
        "label": ""
      },
      {
        "id": "example_industrial_edge_4",
        "from": {
          "nodeId": "robot",
          "portId": "robot:out"
        },
        "to": {
          "nodeId": "inspection",
          "portId": "inspection:in"
        },
        "label": ""
      },
      {
        "id": "example_industrial_edge_5",
        "from": {
          "nodeId": "inspection",
          "portId": "inspection:pass"
        },
        "to": {
          "nodeId": "stock",
          "portId": "stock:in"
        },
        "label": "Pass"
      },
      {
        "id": "example_industrial_edge_6",
        "from": {
          "nodeId": "stock",
          "portId": "stock:out"
        },
        "to": {
          "nodeId": "shipping",
          "portId": "shipping:in"
        },
        "label": "Dispatch"
      },
      {
        "id": "example_industrial_edge_7",
        "from": {
          "nodeId": "inspection",
          "portId": "inspection:reject"
        },
        "to": {
          "nodeId": "rework",
          "portId": "rework:in"
        },
        "label": "Reject"
      },
      {
        "id": "example_industrial_edge_8",
        "from": {
          "nodeId": "rework",
          "portId": "rework:out"
        },
        "to": {
          "nodeId": "inspection",
          "portId": "inspection:in"
        },
        "label": "Re-inspect"
      },
      {
        "id": "example_industrial_edge_9",
        "from": {
          "nodeId": "stock",
          "portId": "stock:out"
        },
        "to": {
          "nodeId": "kanban",
          "portId": "kanban:in"
        },
        "label": "Replenish"
      },
      {
        "id": "example_industrial_edge_10",
        "from": {
          "nodeId": "kanban",
          "portId": "kanban:out"
        },
        "to": {
          "nodeId": "machine",
          "portId": "machine:in"
        },
        "label": "Pull signal"
      }
    ],
    "groups": []
  },
  "layout": {
    "supplier": {
      "x": 40,
      "y": 180,
      "width": 220,
      "height": 150,
      "color": "#f7eedf"
    },
    "buffer": {
      "x": 300,
      "y": 180,
      "width": 220,
      "height": 150,
      "color": "#f7eedf"
    },
    "conveyor": {
      "x": 560,
      "y": 180,
      "width": 220,
      "height": 150,
      "color": "#f7eedf"
    },
    "machine": {
      "x": 820,
      "y": 180,
      "width": 220,
      "height": 150,
      "color": "#f7eedf"
    },
    "robot": {
      "x": 1080,
      "y": 180,
      "width": 220,
      "height": 150,
      "color": "#f7eedf"
    },
    "inspection": {
      "x": 1340,
      "y": 180,
      "width": 220,
      "height": 150,
      "color": "#f7eedf"
    },
    "stock": {
      "x": 1600,
      "y": 40,
      "width": 220,
      "height": 150,
      "color": "#f7eedf"
    },
    "shipping": {
      "x": 1860,
      "y": 40,
      "width": 220,
      "height": 150,
      "color": "#f7eedf"
    },
    "rework": {
      "x": 1350,
      "y": 470,
      "width": 220,
      "height": 150,
      "color": "#f7eedf"
    },
    "kanban": {
      "x": 840,
      "y": -100,
      "width": 220,
      "height": 150,
      "color": "#f7eedf"
    }
  },
  "presentation": {
    "steps": [
      {
        "id": "example_industrial_focus",
        "type": "focus",
        "targetId": "supplier",
        "duration": 3,
        "caption": "Raw material enters a connected production flow."
      },
      {
        "id": "example_industrial_trace_0",
        "type": "connection",
        "targetId": "example_industrial_edge_0",
        "duration": 2,
        "caption": "Follow the movement of material into the line."
      },
      {
        "id": "example_industrial_trace_1",
        "type": "connection",
        "targetId": "example_industrial_edge_1",
        "duration": 2,
        "caption": "Follow the connection → Line feed"
      },
      {
        "id": "example_industrial_trace_2",
        "type": "connection",
        "targetId": "example_industrial_edge_2",
        "duration": 2,
        "caption": "Follow the connection → Machining cell"
      },
      {
        "id": "example_industrial_trace_3",
        "type": "connection",
        "targetId": "example_industrial_edge_3",
        "duration": 2,
        "caption": "Follow the connection → Assembly robot"
      },
      {
        "id": "example_industrial_trace_4",
        "type": "connection",
        "targetId": "example_industrial_edge_4",
        "duration": 2,
        "caption": "Follow the connection → Quality gate"
      },
      {
        "id": "example_industrial_trace_5",
        "type": "connection",
        "targetId": "example_industrial_edge_5",
        "duration": 2,
        "caption": "Pass → Finished goods"
      },
      {
        "id": "example_industrial_trace_6",
        "type": "connection",
        "targetId": "example_industrial_edge_6",
        "duration": 2,
        "caption": "Dispatch → Dispatch"
      },
      {
        "id": "example_industrial_trace_7",
        "type": "connection",
        "targetId": "example_industrial_edge_7",
        "duration": 2,
        "caption": "Reject → Rework station"
      },
      {
        "id": "example_industrial_trace_8",
        "type": "connection",
        "targetId": "example_industrial_edge_8",
        "duration": 2,
        "caption": "Re-inspect → Quality gate"
      },
      {
        "id": "example_industrial_trace_9",
        "type": "connection",
        "targetId": "example_industrial_edge_9",
        "duration": 2,
        "caption": "Replenish → Replenishment signal"
      },
      {
        "id": "example_industrial_trace_10",
        "type": "connection",
        "targetId": "example_industrial_edge_10",
        "duration": 2,
        "caption": "Pull signal → Machining cell"
      },
      {
        "id": "example_industrial_note",
        "type": "note",
        "text": "The quality gate branches into finished stock or rework. Edit cycle times, quantities and roles to document the actual process.",
        "duration": 4
      }
    ]
  },
  "connectorStyles": {
    "example_industrial_edge_0": {
      "routing": "curved",
      "pattern": "solid",
      "width": 1.8,
      "color": "#647888",
      "startArrow": "none",
      "endArrow": "arrow",
      "flow": {
        "enabled": false,
        "direction": "forward",
        "speed": 48
      }
    },
    "example_industrial_edge_1": {
      "routing": "curved",
      "pattern": "solid",
      "width": 1.8,
      "color": "#647888",
      "startArrow": "none",
      "endArrow": "arrow",
      "flow": {
        "enabled": false,
        "direction": "forward",
        "speed": 48
      }
    },
    "example_industrial_edge_2": {
      "routing": "curved",
      "pattern": "solid",
      "width": 1.8,
      "color": "#647888",
      "startArrow": "none",
      "endArrow": "arrow",
      "flow": {
        "enabled": false,
        "direction": "forward",
        "speed": 48
      }
    },
    "example_industrial_edge_3": {
      "routing": "curved",
      "pattern": "solid",
      "width": 1.8,
      "color": "#647888",
      "startArrow": "none",
      "endArrow": "arrow",
      "flow": {
        "enabled": false,
        "direction": "forward",
        "speed": 48
      }
    },
    "example_industrial_edge_4": {
      "routing": "curved",
      "pattern": "solid",
      "width": 1.8,
      "color": "#647888",
      "startArrow": "none",
      "endArrow": "arrow",
      "flow": {
        "enabled": false,
        "direction": "forward",
        "speed": 48
      }
    },
    "example_industrial_edge_5": {
      "routing": "curved",
      "pattern": "solid",
      "width": 1.8,
      "color": "#647888",
      "startArrow": "none",
      "endArrow": "arrow",
      "flow": {
        "enabled": false,
        "direction": "forward",
        "speed": 48
      }
    },
    "example_industrial_edge_6": {
      "routing": "curved",
      "pattern": "solid",
      "width": 1.8,
      "color": "#647888",
      "startArrow": "none",
      "endArrow": "arrow",
      "flow": {
        "enabled": false,
        "direction": "forward",
        "speed": 48
      }
    },
    "example_industrial_edge_7": {
      "routing": "curved",
      "pattern": "solid",
      "width": 1.8,
      "color": "#647888",
      "startArrow": "none",
      "endArrow": "arrow",
      "flow": {
        "enabled": false,
        "direction": "forward",
        "speed": 48
      }
    },
    "example_industrial_edge_8": {
      "routing": "curved",
      "pattern": "solid",
      "width": 1.8,
      "color": "#647888",
      "startArrow": "none",
      "endArrow": "arrow",
      "flow": {
        "enabled": false,
        "direction": "forward",
        "speed": 48
      }
    },
    "example_industrial_edge_9": {
      "routing": "elbow",
      "pattern": "dashed",
      "width": 1.8,
      "color": "#8b6bb2",
      "startArrow": "none",
      "endArrow": "arrow",
      "flow": {
        "enabled": false,
        "direction": "forward",
        "speed": 48
      }
    },
    "example_industrial_edge_10": {
      "routing": "elbow",
      "pattern": "dashed",
      "width": 1.8,
      "color": "#8b6bb2",
      "startArrow": "none",
      "endArrow": "arrow",
      "flow": {
        "enabled": false,
        "direction": "forward",
        "speed": 48
      }
    }
  }
}
