{
  "intrepidVersion": "0.4.0",
  "nodes": [
    {
      "id": "da091b42-31a2-4683-9c17-c6c0bd739c7d",
      "spec": {
        "type": "geom/vec3/distance",
        "category": "Math/Vectors/3D",
        "theme": "green",
        "traits": [],
        "label": "Distance",
        "helpText": "Computes the distance between two vectors.",
        "inputs": [
          {
            "label": "A",
            "helpText": "",
            "type": {
              "data": "vec3"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "B",
            "helpText": "",
            "type": {
              "data": "vec3"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "Result = sqrt((A.x-B.x)^2 + (A.y-B.y)^2 + (A.z-B.z)^2)",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 541.0,
        "positionY": 1762.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "A",
          "valueType": "vec3"
        },
        {
          "id": "in-1",
          "label": "B",
          "valueType": "vec3"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "float"
        }
      ]
    },
    {
      "id": "47df31a6-0542-4d2b-a1c3-244b1e89bee9",
      "spec": {
        "type": "robotics/sensors/gps_local",
        "category": "Robotics/Sensors",
        "theme": "blue",
        "traits": [],
        "label": "GPS Local",
        "helpText": "Retrieves current GPS LTP (local tangent plane) position from the simulator.",
        "inputs": [],
        "outputs": [
          {
            "label": "Coords",
            "helpText": "GPS LTP position vector in global East-North-Up frame.",
            "type": {
              "data": "vec3"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "drone"
        ]
      },
      "metadata": {
        "positionX": 318.0,
        "positionY": 1910.0
      },
      "inputs": [],
      "outputs": [
        {
          "id": "out-0",
          "label": "Coords",
          "valueType": "vec3"
        }
      ]
    },
    {
      "id": "5aa6c809-d9fb-4871-9bf1-ee612d87a989",
      "spec": {
        "type": "struct/vec3/break",
        "category": "Utilities/Struct",
        "theme": "green",
        "traits": [],
        "label": "Break Vec3",
        "helpText": "Breaks Vec3 into its components.",
        "inputs": [
          {
            "label": "Value",
            "helpText": "",
            "type": {
              "data": "vec3"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "x",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "y",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "z",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 1171.0,
        "positionY": 1064.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Value",
          "valueType": "vec3"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "x",
          "valueType": "float"
        },
        {
          "id": "out-1",
          "label": "y",
          "valueType": "float"
        },
        {
          "id": "out-2",
          "label": "z",
          "valueType": "float"
        }
      ]
    },
    {
      "id": "3b9f36a8-bb0c-4e8a-97c4-b277221a8f3f",
      "spec": {
        "type": "compare/greater",
        "category": "Utilities/Operators",
        "theme": "green",
        "traits": [
          "Ord"
        ],
        "label": ">",
        "helpText": "Returns true if A is greater than B (A > B).",
        "inputs": [
          {
            "label": "A",
            "helpText": "",
            "type": "wildcard",
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "B",
            "helpText": "",
            "type": "wildcard",
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "",
            "type": {
              "data": "boolean"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 221.0,
        "positionY": 1152.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "A",
          "valueType": "float"
        },
        {
          "id": "in-1",
          "label": "B",
          "valueType": "float",
          "value": "0.5"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "boolean"
        }
      ]
    },
    {
      "id": "e10774e5-11a2-492c-a556-3d42229246b3",
      "spec": {
        "type": "struct/vec3/break",
        "category": "Utilities/Struct",
        "theme": "green",
        "traits": [],
        "label": "Break Vec3",
        "helpText": "Breaks Vec3 into its components.",
        "inputs": [
          {
            "label": "Value",
            "helpText": "",
            "type": {
              "data": "vec3"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "x",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "y",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "z",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 46.0,
        "positionY": 1143.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Value",
          "valueType": "vec3"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "x",
          "valueType": "float"
        },
        {
          "id": "out-1",
          "label": "y",
          "valueType": "float"
        },
        {
          "id": "out-2",
          "label": "z",
          "valueType": "float"
        }
      ]
    },
    {
      "id": "a3f35204-9381-4a27-b718-da9407dca86c",
      "spec": {
        "type": "robotics/sensors/gps_local",
        "category": "Robotics/Sensors",
        "theme": "blue",
        "traits": [],
        "label": "GPS Local",
        "helpText": "Retrieves current GPS LTP (local tangent plane) position from the simulator.",
        "inputs": [],
        "outputs": [
          {
            "label": "Coords",
            "helpText": "GPS LTP position vector in global East-North-Up frame.",
            "type": {
              "data": "vec3"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "drone"
        ]
      },
      "metadata": {
        "positionX": -109.0,
        "positionY": 1143.0
      },
      "inputs": [],
      "outputs": [
        {
          "id": "out-0",
          "label": "Coords",
          "valueType": "vec3"
        }
      ]
    },
    {
      "id": "75a81bcc-f36e-4815-918f-5a4dfbe067dd",
      "spec": {
        "type": "struct/vec3/make",
        "category": "Utilities/Struct",
        "theme": "green",
        "traits": [],
        "label": "Make Vec3",
        "helpText": "Creates Vec3 from its components.",
        "inputs": [
          {
            "label": "x",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "y",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "z",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "",
            "type": {
              "data": "vec3"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 1229.0,
        "positionY": 550.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "x",
          "valueType": "float"
        },
        {
          "id": "in-1",
          "label": "y",
          "valueType": "float"
        },
        {
          "id": "in-2",
          "label": "z",
          "valueType": "float",
          "value": "1"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "vec3"
        }
      ]
    },
    {
      "id": "2d85adfa-1207-4b5d-a3fb-c95874637bef",
      "spec": {
        "type": "struct/vec2/break",
        "category": "Utilities/Struct",
        "theme": "green",
        "traits": [],
        "label": "Break Vec2",
        "helpText": "Breaks Vec2 into its components.",
        "inputs": [
          {
            "label": "Value",
            "helpText": "",
            "type": {
              "data": "vec2"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "x",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "y",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 1078.0,
        "positionY": 549.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Value",
          "valueType": "vec2"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "x",
          "valueType": "float"
        },
        {
          "id": "out-1",
          "label": "y",
          "valueType": "float"
        }
      ]
    },
    {
      "id": "d63220a2-ec6a-47cb-a115-8667ad883ae7",
      "spec": {
        "type": "struct/vec2/make",
        "category": "Utilities/Struct",
        "theme": "green",
        "traits": [],
        "label": "Make Vec2",
        "helpText": "Creates Vec2 from its components.",
        "inputs": [
          {
            "label": "x",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "y",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "",
            "type": {
              "data": "vec2"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 703.0,
        "positionY": 616.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "x",
          "valueType": "float",
          "value": "8"
        },
        {
          "id": "in-1",
          "label": "y",
          "valueType": "float"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "vec2"
        }
      ]
    },
    {
      "id": "0d00a24d-a737-480c-8f7f-2828697576ae",
      "spec": {
        "type": "variable/set",
        "category": "Variables",
        "theme": "purple",
        "traits": [],
        "label": "Set",
        "helpText": "Sets the value of a global variable (accessible from anywhere).",
        "inputs": [
          {
            "label": "flow",
            "helpText": "",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Name",
            "helpText": "Variable name.",
            "type": {
              "data": "string"
            },
            "container": "single",
            "count": "one",
            "isConst": true
          },
          {
            "label": "Value",
            "helpText": "New value of the variable.",
            "type": "wildcard",
            "container": "any",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "flow",
            "helpText": "",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 1858.0,
        "positionY": 1616.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "flow",
          "valueType": "flow"
        },
        {
          "id": "in-1",
          "label": "Name",
          "valueType": "string",
          "value": "index"
        },
        {
          "id": "in-2",
          "label": "Value",
          "valueType": "integer"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "flow",
          "valueType": "flow"
        }
      ]
    },
    {
      "id": "8ed7d1e2-85db-4267-b859-0d23c6c372dc",
      "spec": {
        "type": "flow/branch",
        "category": "Utilities/Flow Control",
        "theme": "white",
        "traits": [],
        "label": "Branch",
        "helpText": "If Condition is true, executes True branch, otherwise executes False branch.",
        "inputs": [
          {
            "label": "flow",
            "helpText": "",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Condition",
            "helpText": "",
            "type": {
              "data": "boolean"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "True",
            "helpText": "Triggered if the condition is true.",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "False",
            "helpText": "Triggered if the condition is false.",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 1627.0,
        "positionY": 1672.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "flow",
          "valueType": "flow"
        },
        {
          "id": "in-1",
          "label": "Condition",
          "valueType": "boolean"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "True",
          "valueType": "flow"
        },
        {
          "id": "out-1",
          "label": "False",
          "valueType": "flow"
        }
      ]
    },
    {
      "id": "0d0f7a04-0f75-49ad-a6dd-d0f9aab0387a",
      "spec": {
        "type": "variable/get",
        "category": "Variables",
        "theme": "purple",
        "traits": [],
        "label": "Get",
        "helpText": "Retrieves the value of a global variable (accessible from anywhere).",
        "inputs": [
          {
            "label": "Name",
            "helpText": "Variable name.",
            "type": {
              "data": "string"
            },
            "container": "single",
            "count": "one",
            "isConst": true
          }
        ],
        "outputs": [
          {
            "label": "Value",
            "helpText": "Value of the variable.",
            "type": "wildcard",
            "container": "any",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 1213.0,
        "positionY": 1915.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Name",
          "valueType": "string",
          "value": "waypoints"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Value",
          "valueType": "array<vec3>"
        }
      ]
    },
    {
      "id": "cc9c4a3f-4803-4456-b0a3-53f298ff7119",
      "spec": {
        "type": "array/is_valid_index",
        "category": "Utilities/Array",
        "theme": "green",
        "traits": [],
        "label": "Is Valid Index",
        "helpText": "Checks if the given index is valid for the array.",
        "inputs": [
          {
            "label": "Array",
            "helpText": "The array to check.",
            "type": "wildcard",
            "container": "array",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Index",
            "helpText": "The index to check.",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "True if the index is valid.",
            "type": {
              "data": "boolean"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 1434.0,
        "positionY": 1751.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Array",
          "valueType": "array<vec3>"
        },
        {
          "id": "in-1",
          "label": "Index",
          "valueType": "integer"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "boolean"
        }
      ]
    },
    {
      "id": "08757f32-2023-4e07-812d-d0845b309a12",
      "spec": {
        "type": "convert/to_string",
        "category": "Utilities/Operators",
        "theme": "green",
        "traits": [
          "ToString"
        ],
        "label": "ToString",
        "helpText": "Converts any value to a string.",
        "inputs": [
          {
            "label": "Value",
            "helpText": "",
            "type": "wildcard",
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "",
            "type": {
              "data": "string"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 1023.0,
        "positionY": 1742.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Value",
          "valueType": "integer"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "string"
        }
      ]
    },
    {
      "id": "ddbac185-e0db-4e44-b84b-89d2eec3a292",
      "spec": {
        "type": "string/concat",
        "category": "Utilities/String",
        "theme": "green",
        "traits": [],
        "label": "Concat",
        "helpText": "Concatenates all strings together.",
        "inputs": [
          {
            "label": "A",
            "helpText": "",
            "type": {
              "data": "string"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "B",
            "helpText": "",
            "type": {
              "data": "string"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "C, D, ...",
            "helpText": "",
            "type": {
              "data": "string"
            },
            "container": "single",
            "count": "zero_or_more",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "",
            "type": {
              "data": "string"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 1201.0,
        "positionY": 1636.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "A",
          "valueType": "string",
          "value": "waypoint "
        },
        {
          "id": "in-1",
          "label": "B",
          "valueType": "string"
        },
        {
          "id": "in-2",
          "label": "C",
          "valueType": "string",
          "value": " reached"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "string"
        }
      ]
    },
    {
      "id": "cc39925f-5d6b-4a51-b755-abebd7afc8b6",
      "spec": {
        "type": "debug/log",
        "category": "Utilities/Development",
        "theme": "purple",
        "traits": [],
        "label": "Debug Log",
        "helpText": "Prints the input to the debug log, and visualizes it on the dashboard.",
        "inputs": [
          {
            "label": "flow",
            "helpText": "",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "User Defined",
            "helpText": "",
            "type": "user_defined",
            "container": "any",
            "count": "one",
            "isConst": false
          },
          {
            "label": "User Defined..",
            "helpText": "",
            "type": "user_defined",
            "container": "any",
            "count": "zero_or_more",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "flow",
            "helpText": "",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 1442.0,
        "positionY": 1600.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "flow",
          "valueType": "flow"
        },
        {
          "id": "in-1",
          "label": "message",
          "valueType": "string"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "flow",
          "valueType": "flow"
        }
      ]
    },
    {
      "id": "cd14fd20-a29a-47b8-afaa-000f333ccaa8",
      "spec": {
        "type": "math/integer/add",
        "category": "Math/Integer",
        "theme": "green",
        "traits": [],
        "label": "+ (Int)",
        "helpText": "Add all arguments together, returns an error if the result overflows.",
        "inputs": [
          {
            "label": "A",
            "helpText": "",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "B",
            "helpText": "",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "C, D, ...",
            "helpText": "",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "zero_or_more",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "Result of the addition, A + B + C + ...",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 1031.0,
        "positionY": 1853.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "A",
          "valueType": "integer"
        },
        {
          "id": "in-1",
          "label": "B",
          "valueType": "integer",
          "value": "1"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "integer"
        }
      ]
    },
    {
      "id": "f258c410-73e6-4295-8996-4a5a8e2e04e2",
      "spec": {
        "type": "variable/get",
        "category": "Variables",
        "theme": "purple",
        "traits": [],
        "label": "Get",
        "helpText": "Retrieves the value of a global variable (accessible from anywhere).",
        "inputs": [
          {
            "label": "Name",
            "helpText": "Variable name.",
            "type": {
              "data": "string"
            },
            "container": "single",
            "count": "one",
            "isConst": true
          }
        ],
        "outputs": [
          {
            "label": "Value",
            "helpText": "Value of the variable.",
            "type": "wildcard",
            "container": "any",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 760.0,
        "positionY": 1887.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Name",
          "valueType": "string",
          "value": "index"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Value",
          "valueType": "integer"
        }
      ]
    },
    {
      "id": "013fde52-3873-4c8e-8952-ee87b9ad2436",
      "spec": {
        "type": "variable/set",
        "category": "Variables",
        "theme": "purple",
        "traits": [],
        "label": "Set",
        "helpText": "Sets the value of a global variable (accessible from anywhere).",
        "inputs": [
          {
            "label": "flow",
            "helpText": "",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Name",
            "helpText": "Variable name.",
            "type": {
              "data": "string"
            },
            "container": "single",
            "count": "one",
            "isConst": true
          },
          {
            "label": "Value",
            "helpText": "New value of the variable.",
            "type": "wildcard",
            "container": "any",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "flow",
            "helpText": "",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 1864.0,
        "positionY": 1790.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "flow",
          "valueType": "flow"
        },
        {
          "id": "in-1",
          "label": "Name",
          "valueType": "string",
          "value": "index"
        },
        {
          "id": "in-2",
          "label": "Value",
          "valueType": "integer"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "flow",
          "valueType": "flow"
        }
      ]
    },
    {
      "id": "751da4fa-5c6d-43e7-a6cb-8a73d4c8b2c7",
      "spec": {
        "type": "flow/branch",
        "category": "Utilities/Flow Control",
        "theme": "white",
        "traits": [],
        "label": "Branch",
        "helpText": "If Condition is true, executes True branch, otherwise executes False branch.",
        "inputs": [
          {
            "label": "flow",
            "helpText": "",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Condition",
            "helpText": "",
            "type": {
              "data": "boolean"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "True",
            "helpText": "Triggered if the condition is true.",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "False",
            "helpText": "Triggered if the condition is false.",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 864.0,
        "positionY": 1598.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "flow",
          "valueType": "flow"
        },
        {
          "id": "in-1",
          "label": "Condition",
          "valueType": "boolean"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "True",
          "valueType": "flow"
        },
        {
          "id": "out-1",
          "label": "False",
          "valueType": "flow"
        }
      ]
    },
    {
      "id": "cdd19b41-6339-4021-ad2f-5998169df08a",
      "spec": {
        "type": "compare/less",
        "category": "Utilities/Operators",
        "theme": "green",
        "traits": [
          "Ord"
        ],
        "label": "<",
        "helpText": "Returns true if A is less than B (A < B).",
        "inputs": [
          {
            "label": "A",
            "helpText": "",
            "type": "wildcard",
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "B",
            "helpText": "",
            "type": "wildcard",
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "",
            "type": {
              "data": "boolean"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 710.0,
        "positionY": 1761.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "A",
          "valueType": "float"
        },
        {
          "id": "in-1",
          "label": "B",
          "valueType": "float",
          "value": "0.5"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "boolean"
        }
      ]
    },
    {
      "id": "8ea6a63b-bf66-4dc8-9b0f-64d3c416c061",
      "spec": {
        "type": "array/get",
        "category": "Utilities/Array",
        "theme": "green",
        "traits": [],
        "label": "Get",
        "helpText": "Gets the element at the given index.",
        "inputs": [
          {
            "label": "Array",
            "helpText": "The array to get the element from.",
            "type": "wildcard",
            "container": "array",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Index",
            "helpText": "The index of the element to get.",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "The element at the given index.",
            "type": "wildcard",
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 302.0,
        "positionY": 1753.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Array",
          "valueType": "array<vec3>"
        },
        {
          "id": "in-1",
          "label": "Index",
          "valueType": "integer"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "vec3"
        }
      ]
    },
    {
      "id": "ea02b1b0-b85b-4d62-9356-3a43a6c75a1d",
      "spec": {
        "type": "flow/branch",
        "category": "Utilities/Flow Control",
        "theme": "white",
        "traits": [],
        "label": "Branch",
        "helpText": "If Condition is true, executes True branch, otherwise executes False branch.",
        "inputs": [
          {
            "label": "flow",
            "helpText": "",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Condition",
            "helpText": "",
            "type": {
              "data": "boolean"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "True",
            "helpText": "Triggered if the condition is true.",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "False",
            "helpText": "Triggered if the condition is false.",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 491.0,
        "positionY": 1546.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "flow",
          "valueType": "flow"
        },
        {
          "id": "in-1",
          "label": "Condition",
          "valueType": "boolean"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "True",
          "valueType": "flow"
        },
        {
          "id": "out-1",
          "label": "False",
          "valueType": "flow"
        }
      ]
    },
    {
      "id": "e6816042-38a3-4fd9-aa0f-87e44110de78",
      "spec": {
        "type": "array/is_valid_index",
        "category": "Utilities/Array",
        "theme": "green",
        "traits": [],
        "label": "Is Valid Index",
        "helpText": "Checks if the given index is valid for the array.",
        "inputs": [
          {
            "label": "Array",
            "helpText": "The array to check.",
            "type": "wildcard",
            "container": "array",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Index",
            "helpText": "The index to check.",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "True if the index is valid.",
            "type": {
              "data": "boolean"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 271.0,
        "positionY": 1610.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Array",
          "valueType": "array<vec3>"
        },
        {
          "id": "in-1",
          "label": "Index",
          "valueType": "integer"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "boolean"
        }
      ]
    },
    {
      "id": "021a2519-7a38-4fca-9a25-0c1e75d45594",
      "spec": {
        "type": "variable/get",
        "category": "Variables",
        "theme": "purple",
        "traits": [],
        "label": "Get",
        "helpText": "Retrieves the value of a global variable (accessible from anywhere).",
        "inputs": [
          {
            "label": "Name",
            "helpText": "Variable name.",
            "type": {
              "data": "string"
            },
            "container": "single",
            "count": "one",
            "isConst": true
          }
        ],
        "outputs": [
          {
            "label": "Value",
            "helpText": "Value of the variable.",
            "type": "wildcard",
            "container": "any",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 91.0,
        "positionY": 1720.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Name",
          "valueType": "string",
          "value": "index"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Value",
          "valueType": "integer"
        }
      ]
    },
    {
      "id": "ab9f36cd-7d39-412d-893a-8d6b5bf5a3d1",
      "spec": {
        "type": "variable/get",
        "category": "Variables",
        "theme": "purple",
        "traits": [],
        "label": "Get",
        "helpText": "Retrieves the value of a global variable (accessible from anywhere).",
        "inputs": [
          {
            "label": "Name",
            "helpText": "Variable name.",
            "type": {
              "data": "string"
            },
            "container": "single",
            "count": "one",
            "isConst": true
          }
        ],
        "outputs": [
          {
            "label": "Value",
            "helpText": "Value of the variable.",
            "type": "wildcard",
            "container": "any",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 97.0,
        "positionY": 1619.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Name",
          "valueType": "string",
          "value": "waypoints"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Value",
          "valueType": "array<vec3>"
        }
      ]
    },
    {
      "id": "a3ea57e8-9365-489f-87ed-2dd3d96762b6",
      "spec": {
        "type": "event/on_timer",
        "category": "Graph/Events",
        "theme": "red",
        "traits": [],
        "label": "On Timer",
        "helpText": "Event is triggered on timer.",
        "inputs": [
          {
            "label": "Hz",
            "helpText": "Timer frequency (in Hz).",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "flow",
            "helpText": "",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": -88.0,
        "positionY": 1549.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Hz",
          "valueType": "float",
          "value": "2"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "flow",
          "valueType": "flow"
        }
      ]
    },
    {
      "id": "8893436a-a1e6-405e-9344-3c3b44badb2c",
      "spec": {
        "type": "math/integer/sub",
        "category": "Math/Integer",
        "theme": "green",
        "traits": [],
        "label": "- (Int)",
        "helpText": "Subtract all arguments from the first, returns an error if the result overflows.",
        "inputs": [
          {
            "label": "A",
            "helpText": "",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "B",
            "helpText": "",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "C, D, ...",
            "helpText": "",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "zero_or_more",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "Result of the subtraction, A - B - C - ...",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 196.0,
        "positionY": 317.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "A",
          "valueType": "integer"
        },
        {
          "id": "in-1",
          "label": "B",
          "valueType": "integer",
          "value": "1"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "integer"
        }
      ]
    },
    {
      "id": "659c0846-5dcd-4ded-967c-56792151a4e0",
      "spec": {
        "type": "array/get",
        "category": "Utilities/Array",
        "theme": "green",
        "traits": [],
        "label": "Get",
        "helpText": "Gets the element at the given index.",
        "inputs": [
          {
            "label": "Array",
            "helpText": "The array to get the element from.",
            "type": "wildcard",
            "container": "array",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Index",
            "helpText": "The index of the element to get.",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "The element at the given index.",
            "type": "wildcard",
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 738.0,
        "positionY": 1039.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Array",
          "valueType": "array<vec3>"
        },
        {
          "id": "in-1",
          "label": "Index",
          "valueType": "integer"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "vec3"
        }
      ]
    },
    {
      "id": "5d218c47-d7ba-41fa-9755-ce6599e546e5",
      "spec": {
        "type": "variable/get",
        "category": "Variables",
        "theme": "purple",
        "traits": [],
        "label": "Get",
        "helpText": "Retrieves the value of a global variable (accessible from anywhere).",
        "inputs": [
          {
            "label": "Name",
            "helpText": "Variable name.",
            "type": {
              "data": "string"
            },
            "container": "single",
            "count": "one",
            "isConst": true
          }
        ],
        "outputs": [
          {
            "label": "Value",
            "helpText": "Value of the variable.",
            "type": "wildcard",
            "container": "any",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 559.0,
        "positionY": 921.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Name",
          "valueType": "string",
          "value": "index"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Value",
          "valueType": "integer"
        }
      ]
    },
    {
      "id": "e0e8a3b0-dd5a-4490-b8b4-8334e19aba9f",
      "spec": {
        "type": "variable/get",
        "category": "Variables",
        "theme": "purple",
        "traits": [],
        "label": "Get",
        "helpText": "Retrieves the value of a global variable (accessible from anywhere).",
        "inputs": [
          {
            "label": "Name",
            "helpText": "Variable name.",
            "type": {
              "data": "string"
            },
            "container": "single",
            "count": "one",
            "isConst": true
          }
        ],
        "outputs": [
          {
            "label": "Value",
            "helpText": "Value of the variable.",
            "type": "wildcard",
            "container": "any",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 490.0,
        "positionY": 813.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Name",
          "valueType": "string",
          "value": "waypoints"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Value",
          "valueType": "array<vec3>"
        }
      ]
    },
    {
      "id": "230c7048-cee4-477b-8735-62d7c5f281a4",
      "spec": {
        "type": "array/is_valid_index",
        "category": "Utilities/Array",
        "theme": "green",
        "traits": [],
        "label": "Is Valid Index",
        "helpText": "Checks if the given index is valid for the array.",
        "inputs": [
          {
            "label": "Array",
            "helpText": "The array to check.",
            "type": "wildcard",
            "container": "array",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Index",
            "helpText": "The index to check.",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "True if the index is valid.",
            "type": {
              "data": "boolean"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 756.0,
        "positionY": 896.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Array",
          "valueType": "array<vec3>"
        },
        {
          "id": "in-1",
          "label": "Index",
          "valueType": "integer"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "boolean"
        }
      ]
    },
    {
      "id": "e3b27f8e-c921-4983-9b22-49183c7e1802",
      "spec": {
        "type": "flow/branch",
        "category": "Utilities/Flow Control",
        "theme": "white",
        "traits": [],
        "label": "Branch",
        "helpText": "If Condition is true, executes True branch, otherwise executes False branch.",
        "inputs": [
          {
            "label": "flow",
            "helpText": "",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Condition",
            "helpText": "",
            "type": {
              "data": "boolean"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "True",
            "helpText": "Triggered if the condition is true.",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "False",
            "helpText": "Triggered if the condition is false.",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 943.0,
        "positionY": 971.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "flow",
          "valueType": "flow"
        },
        {
          "id": "in-1",
          "label": "Condition",
          "valueType": "boolean"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "True",
          "valueType": "flow"
        },
        {
          "id": "out-1",
          "label": "False",
          "valueType": "flow"
        }
      ]
    },
    {
      "id": "1f1b3022-918b-4431-b51c-20d2606e9410",
      "spec": {
        "type": "flow/branch",
        "category": "Utilities/Flow Control",
        "theme": "white",
        "traits": [],
        "label": "Branch",
        "helpText": "If Condition is true, executes True branch, otherwise executes False branch.",
        "inputs": [
          {
            "label": "flow",
            "helpText": "",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Condition",
            "helpText": "",
            "type": {
              "data": "boolean"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "True",
            "helpText": "Triggered if the condition is true.",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "False",
            "helpText": "Triggered if the condition is false.",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 349.0,
        "positionY": 971.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "flow",
          "valueType": "flow"
        },
        {
          "id": "in-1",
          "label": "Condition",
          "valueType": "boolean"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "True",
          "valueType": "flow"
        },
        {
          "id": "out-1",
          "label": "False",
          "valueType": "flow"
        }
      ]
    },
    {
      "id": "5a7bdbdb-16c3-4bbd-afbd-624c822ba825",
      "spec": {
        "type": "robotics/controls/attitude",
        "category": "Robotics/Controls",
        "theme": "blue",
        "traits": [],
        "label": "Attitude Controller",
        "helpText": "Control the drone by setting its attitude, while maintaining fixed altitude.",
        "inputs": [
          {
            "label": "flow",
            "helpText": "",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Altitude",
            "helpText": "Target altitude in meters, positive = higher.",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "YawRate",
            "helpText": "Target yaw rate (angular velocity around Z axis) in rad/s, positive = clockwise.",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Pitch",
            "helpText": "Target pitch in radians, positive = nose up.",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Roll",
            "helpText": "Target roll in radians, positive = roll right.",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "flow",
            "helpText": "",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "drone"
        ]
      },
      "metadata": {
        "positionX": 588.0,
        "positionY": 1161.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "flow",
          "valueType": "flow"
        },
        {
          "id": "in-1",
          "label": "Altitude",
          "valueType": "float",
          "value": "1"
        },
        {
          "id": "in-2",
          "label": "YawRate",
          "valueType": "float"
        },
        {
          "id": "in-3",
          "label": "Pitch",
          "valueType": "float"
        },
        {
          "id": "in-4",
          "label": "Roll",
          "valueType": "float"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "flow",
          "valueType": "flow"
        }
      ]
    },
    {
      "id": "99df1b39-262b-4292-b3e2-cb4ea919a52c",
      "spec": {
        "type": "event/on_timer",
        "category": "Graph/Events",
        "theme": "red",
        "traits": [],
        "label": "On Timer",
        "helpText": "Event is triggered on timer.",
        "inputs": [
          {
            "label": "Hz",
            "helpText": "Timer frequency (in Hz).",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "flow",
            "helpText": "",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 146.0,
        "positionY": 1011.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Hz",
          "valueType": "float",
          "value": "10"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "flow",
          "valueType": "flow"
        }
      ]
    },
    {
      "id": "f10f4c9a-7982-4e38-a1fe-a0028ae49a91",
      "spec": {
        "type": "robotics/controls/position",
        "category": "Robotics/Controls",
        "theme": "blue",
        "traits": [],
        "label": "Position Controller",
        "helpText": "Control the drone by setting its position, while maintaining fixed altitude.",
        "inputs": [
          {
            "label": "flow",
            "helpText": "",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Altitude",
            "helpText": "Target altitude in meters, positive = higher.",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Yaw",
            "helpText": "Target yaw in radians, positive = clockwise.",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "East",
            "helpText": "Target position along X axis in meters, positive = east.",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "North",
            "helpText": "Target position along Y axis in meters, positive = north.",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "flow",
            "helpText": "",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "drone"
        ]
      },
      "metadata": {
        "positionX": 1409.0,
        "positionY": 971.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "flow",
          "valueType": "flow"
        },
        {
          "id": "in-1",
          "label": "Altitude",
          "valueType": "float"
        },
        {
          "id": "in-2",
          "label": "Yaw",
          "valueType": "float"
        },
        {
          "id": "in-3",
          "label": "East",
          "valueType": "float"
        },
        {
          "id": "in-4",
          "label": "North",
          "valueType": "float"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "flow",
          "valueType": "flow"
        }
      ]
    },
    {
      "id": "d7f0e85d-5cf5-4b6c-bb93-5337d183cee8",
      "spec": {
        "type": "variable/set",
        "category": "Variables",
        "theme": "purple",
        "traits": [],
        "label": "Set",
        "helpText": "Sets the value of a global variable (accessible from anywhere).",
        "inputs": [
          {
            "label": "flow",
            "helpText": "",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Name",
            "helpText": "Variable name.",
            "type": {
              "data": "string"
            },
            "container": "single",
            "count": "one",
            "isConst": true
          },
          {
            "label": "Value",
            "helpText": "New value of the variable.",
            "type": "wildcard",
            "container": "any",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "flow",
            "helpText": "",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 1282.0,
        "positionY": 209.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "flow",
          "valueType": "flow"
        },
        {
          "id": "in-1",
          "label": "Name",
          "valueType": "string",
          "value": "waypoints"
        },
        {
          "id": "in-2",
          "label": "Value",
          "valueType": "array<vec3>"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "flow",
          "valueType": "flow"
        }
      ]
    },
    {
      "id": "5b3c5d96-b9eb-4722-8149-322db63180bc",
      "spec": {
        "type": "variable/get",
        "category": "Variables",
        "theme": "purple",
        "traits": [],
        "label": "Get",
        "helpText": "Retrieves the value of a global variable (accessible from anywhere).",
        "inputs": [
          {
            "label": "Name",
            "helpText": "Variable name.",
            "type": {
              "data": "string"
            },
            "container": "single",
            "count": "one",
            "isConst": true
          }
        ],
        "outputs": [
          {
            "label": "Value",
            "helpText": "Value of the variable.",
            "type": "wildcard",
            "container": "any",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 830.0,
        "positionY": 401.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Name",
          "valueType": "string",
          "value": "waypoints"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Value",
          "valueType": "array<vec3>"
        }
      ]
    },
    {
      "id": "21ad5db2-7318-4504-852c-6cae39937563",
      "spec": {
        "type": "array/add",
        "category": "Utilities/Array",
        "theme": "green",
        "traits": [],
        "label": "Add",
        "helpText": "Adds an element to the end of the array.",
        "inputs": [
          {
            "label": "Array",
            "helpText": "The array to add element to.",
            "type": "wildcard",
            "container": "array",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Element",
            "helpText": "The element to add to the array.",
            "type": "wildcard",
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "The array with the element added.",
            "type": "wildcard",
            "container": "array",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Index",
            "helpText": "The index of the added element.",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 1100.0,
        "positionY": 382.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Array",
          "valueType": "array<vec3>"
        },
        {
          "id": "in-1",
          "label": "Element",
          "valueType": "vec3"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "array<vec3>"
        },
        {
          "id": "out-1",
          "label": "Index",
          "valueType": "integer"
        }
      ]
    },
    {
      "id": "ebbff426-4931-4e05-9100-09549f80c023",
      "spec": {
        "type": "convert/integer/float",
        "category": "Math/Conversions",
        "theme": "green",
        "traits": [],
        "label": "Int to Float",
        "helpText": "Converts an integer to a float.",
        "inputs": [
          {
            "label": "Value",
            "helpText": "",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 523.0,
        "positionY": 397.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Value",
          "valueType": "integer"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "float"
        }
      ]
    },
    {
      "id": "2eb6f73d-f3a6-4889-940f-bc3520f34321",
      "spec": {
        "type": "math/float/mul",
        "category": "Math/Float",
        "theme": "green",
        "traits": [],
        "label": "* (Float)",
        "helpText": "Multiply all arguments together.",
        "inputs": [
          {
            "label": "A",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "B",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "C, D, ...",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "zero_or_more",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "Result of the multiplication, A * B * C * ...",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 533.0,
        "positionY": 500.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "A",
          "valueType": "float"
        },
        {
          "id": "in-1",
          "label": "B",
          "valueType": "float"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "float"
        }
      ]
    },
    {
      "id": "b7df2ef5-5a5a-496b-bfad-a528ea307baa",
      "spec": {
        "type": "geom/vec2/rotate",
        "category": "Math/Vectors/2D",
        "theme": "green",
        "traits": [],
        "label": "Rotate",
        "helpText": "Rotates a vector by a specified rotor.",
        "inputs": [
          {
            "label": "Vector",
            "helpText": "",
            "type": {
              "data": "vec2"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Rotor",
            "helpText": "",
            "type": {
              "data": "rotor2"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "",
            "type": {
              "data": "vec2"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 891.0,
        "positionY": 542.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Vector",
          "valueType": "vec2"
        },
        {
          "id": "in-1",
          "label": "Rotor",
          "valueType": "rotor2"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "vec2"
        }
      ]
    },
    {
      "id": "269010ae-21b2-4aa1-a8a0-41bb79a044a8",
      "spec": {
        "type": "geom/rotor2/from_angle",
        "category": "Math/Rotors/2D",
        "theme": "green",
        "traits": [],
        "label": "from Angle",
        "helpText": "Creates a 2D rotor from an angle.",
        "inputs": [
          {
            "label": "Angle",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "",
            "type": {
              "data": "rotor2"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 704.0,
        "positionY": 497.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Angle",
          "valueType": "float"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "rotor2"
        }
      ]
    },
    {
      "id": "35e6bb93-a5af-4905-9ca7-687599b3777b",
      "spec": {
        "type": "math/float/div",
        "category": "Math/Float",
        "theme": "green",
        "traits": [],
        "label": "/ (Float)",
        "helpText": "Divide the first argument by all others.",
        "inputs": [
          {
            "label": "A",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "B",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "C, D, ...",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "zero_or_more",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "Result of the division, A / B / C / ...",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 365.0,
        "positionY": 505.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "A",
          "valueType": "float"
        },
        {
          "id": "in-1",
          "label": "B",
          "valueType": "float"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "float"
        }
      ]
    },
    {
      "id": "f9c53621-c9df-4ace-a4b8-c9d756c3734f",
      "spec": {
        "type": "convert/integer/float",
        "category": "Math/Conversions",
        "theme": "green",
        "traits": [],
        "label": "Int to Float",
        "helpText": "Converts an integer to a float.",
        "inputs": [
          {
            "label": "Value",
            "helpText": "",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 180.0,
        "positionY": 587.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Value",
          "valueType": "integer"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "float"
        }
      ]
    },
    {
      "id": "9adec951-1262-4293-ae0f-6bb8383d2c83",
      "spec": {
        "type": "math/float/consts/tau",
        "category": "Math/Float/Constants",
        "theme": "green",
        "traits": [],
        "label": "Get TAU",
        "helpText": "Returns the value of TAU (τ, ~6.28318).",
        "inputs": [],
        "outputs": [
          {
            "label": "Result",
            "helpText": "",
            "type": {
              "data": "float"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 184.0,
        "positionY": 490.0
      },
      "inputs": [],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "float"
        }
      ]
    },
    {
      "id": "60ffa25c-df95-4bcf-9533-d06065666f42",
      "spec": {
        "type": "math/integer/add",
        "category": "Math/Integer",
        "theme": "green",
        "traits": [],
        "label": "+ (Int)",
        "helpText": "Add all arguments together, returns an error if the result overflows.",
        "inputs": [
          {
            "label": "A",
            "helpText": "",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "B",
            "helpText": "",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "C, D, ...",
            "helpText": "",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "zero_or_more",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "Result of the addition, A + B + C + ...",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 769.0,
        "positionY": 277.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "A",
          "valueType": "integer"
        },
        {
          "id": "in-1",
          "label": "B",
          "valueType": "integer",
          "value": "2"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "integer"
        }
      ]
    },
    {
      "id": "2d2696db-f601-4c4e-9797-836fd8711aa1",
      "spec": {
        "type": "literal/integer",
        "category": "Math/Integer",
        "theme": "green",
        "traits": [],
        "label": "Make Int",
        "helpText": "Creates a literal integer.",
        "inputs": [
          {
            "label": "Value",
            "helpText": "",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Result",
            "helpText": "",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": -46.0,
        "positionY": 448.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "Value",
          "valueType": "integer",
          "value": "4"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Result",
          "valueType": "integer"
        }
      ]
    },
    {
      "id": "d3038609-46c2-4c77-9ead-92fa0b47d690",
      "spec": {
        "type": "flow/for_loop",
        "category": "Utilities/Flow Control",
        "theme": "white",
        "traits": [],
        "label": "For Loop",
        "helpText": "Executes Loop Body for each index from First to Last (inclusive).",
        "inputs": [
          {
            "label": "flow",
            "helpText": "",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "First Index",
            "helpText": "",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Last Index",
            "helpText": "",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "outputs": [
          {
            "label": "Loop Body",
            "helpText": "Triggered for each iteration.",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Completed",
            "helpText": "Triggered when the loop is finished.",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          },
          {
            "label": "Index",
            "helpText": "Current index.",
            "type": {
              "data": "integer"
            },
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 435.0,
        "positionY": 208.0
      },
      "inputs": [
        {
          "id": "in-0",
          "label": "flow",
          "valueType": "flow"
        },
        {
          "id": "in-1",
          "label": "First Index",
          "valueType": "integer",
          "value": "0"
        },
        {
          "id": "in-2",
          "label": "Last Index",
          "valueType": "integer"
        }
      ],
      "outputs": [
        {
          "id": "out-0",
          "label": "Loop Body",
          "valueType": "flow"
        },
        {
          "id": "out-1",
          "label": "Completed",
          "valueType": "flow"
        },
        {
          "id": "out-2",
          "label": "Index",
          "valueType": "integer"
        }
      ]
    },
    {
      "id": "bf944ead-9854-40cd-b5b9-2eaa1b471330",
      "spec": {
        "type": "event/on_start",
        "category": "Graph/Events",
        "theme": "red",
        "traits": [],
        "label": "On Start",
        "helpText": "Event is triggered when graph execution starts.",
        "inputs": [],
        "outputs": [
          {
            "label": "flow",
            "helpText": "",
            "type": "flow",
            "container": "single",
            "count": "one",
            "isConst": false
          }
        ],
        "agentTypes": [
          "core",
          "drone",
          "simulator"
        ]
      },
      "metadata": {
        "positionX": 260.0,
        "positionY": 209.0
      },
      "inputs": [],
      "outputs": [
        {
          "id": "out-0",
          "label": "flow",
          "valueType": "flow"
        }
      ]
    }
  ],
  "edges": [
    {
      "source": "cd14fd20-a29a-47b8-afaa-000f333ccaa8",
      "sourceHandle": "out-0",
      "target": "013fde52-3873-4c8e-8952-ee87b9ad2436",
      "targetHandle": "in-2"
    },
    {
      "source": "21ad5db2-7318-4504-852c-6cae39937563",
      "sourceHandle": "out-0",
      "target": "d7f0e85d-5cf5-4b6c-bb93-5337d183cee8",
      "targetHandle": "in-2"
    },
    {
      "source": "47df31a6-0542-4d2b-a1c3-244b1e89bee9",
      "sourceHandle": "out-0",
      "target": "da091b42-31a2-4683-9c17-c6c0bd739c7d",
      "targetHandle": "in-1"
    },
    {
      "source": "8ea6a63b-bf66-4dc8-9b0f-64d3c416c061",
      "sourceHandle": "out-0",
      "target": "da091b42-31a2-4683-9c17-c6c0bd739c7d",
      "targetHandle": "in-0"
    },
    {
      "source": "659c0846-5dcd-4ded-967c-56792151a4e0",
      "sourceHandle": "out-0",
      "target": "5aa6c809-d9fb-4871-9bf1-ee612d87a989",
      "targetHandle": "in-0"
    },
    {
      "source": "e10774e5-11a2-492c-a556-3d42229246b3",
      "sourceHandle": "out-2",
      "target": "3b9f36a8-bb0c-4e8a-97c4-b277221a8f3f",
      "targetHandle": "in-0"
    },
    {
      "source": "a3f35204-9381-4a27-b718-da9407dca86c",
      "sourceHandle": "out-0",
      "target": "e10774e5-11a2-492c-a556-3d42229246b3",
      "targetHandle": "in-0"
    },
    {
      "source": "2d85adfa-1207-4b5d-a3fb-c95874637bef",
      "sourceHandle": "out-1",
      "target": "75a81bcc-f36e-4815-918f-5a4dfbe067dd",
      "targetHandle": "in-1"
    },
    {
      "source": "2d85adfa-1207-4b5d-a3fb-c95874637bef",
      "sourceHandle": "out-0",
      "target": "75a81bcc-f36e-4815-918f-5a4dfbe067dd",
      "targetHandle": "in-0"
    },
    {
      "source": "b7df2ef5-5a5a-496b-bfad-a528ea307baa",
      "sourceHandle": "out-0",
      "target": "2d85adfa-1207-4b5d-a3fb-c95874637bef",
      "targetHandle": "in-0"
    },
    {
      "source": "cc9c4a3f-4803-4456-b0a3-53f298ff7119",
      "sourceHandle": "out-0",
      "target": "8ed7d1e2-85db-4267-b859-0d23c6c372dc",
      "targetHandle": "in-1"
    },
    {
      "source": "0d0f7a04-0f75-49ad-a6dd-d0f9aab0387a",
      "sourceHandle": "out-0",
      "target": "cc9c4a3f-4803-4456-b0a3-53f298ff7119",
      "targetHandle": "in-0"
    },
    {
      "source": "cd14fd20-a29a-47b8-afaa-000f333ccaa8",
      "sourceHandle": "out-0",
      "target": "cc9c4a3f-4803-4456-b0a3-53f298ff7119",
      "targetHandle": "in-1"
    },
    {
      "source": "cd14fd20-a29a-47b8-afaa-000f333ccaa8",
      "sourceHandle": "out-0",
      "target": "08757f32-2023-4e07-812d-d0845b309a12",
      "targetHandle": "in-0"
    },
    {
      "source": "08757f32-2023-4e07-812d-d0845b309a12",
      "sourceHandle": "out-0",
      "target": "ddbac185-e0db-4e44-b84b-89d2eec3a292",
      "targetHandle": "in-1"
    },
    {
      "source": "ddbac185-e0db-4e44-b84b-89d2eec3a292",
      "sourceHandle": "out-0",
      "target": "cc39925f-5d6b-4a51-b755-abebd7afc8b6",
      "targetHandle": "in-1"
    },
    {
      "source": "f258c410-73e6-4295-8996-4a5a8e2e04e2",
      "sourceHandle": "out-0",
      "target": "cd14fd20-a29a-47b8-afaa-000f333ccaa8",
      "targetHandle": "in-0"
    },
    {
      "source": "cdd19b41-6339-4021-ad2f-5998169df08a",
      "sourceHandle": "out-0",
      "target": "751da4fa-5c6d-43e7-a6cb-8a73d4c8b2c7",
      "targetHandle": "in-1"
    },
    {
      "source": "da091b42-31a2-4683-9c17-c6c0bd739c7d",
      "sourceHandle": "out-0",
      "target": "cdd19b41-6339-4021-ad2f-5998169df08a",
      "targetHandle": "in-0"
    },
    {
      "source": "021a2519-7a38-4fca-9a25-0c1e75d45594",
      "sourceHandle": "out-0",
      "target": "8ea6a63b-bf66-4dc8-9b0f-64d3c416c061",
      "targetHandle": "in-1"
    },
    {
      "source": "ab9f36cd-7d39-412d-893a-8d6b5bf5a3d1",
      "sourceHandle": "out-0",
      "target": "8ea6a63b-bf66-4dc8-9b0f-64d3c416c061",
      "targetHandle": "in-0"
    },
    {
      "source": "e6816042-38a3-4fd9-aa0f-87e44110de78",
      "sourceHandle": "out-0",
      "target": "ea02b1b0-b85b-4d62-9356-3a43a6c75a1d",
      "targetHandle": "in-1"
    },
    {
      "source": "021a2519-7a38-4fca-9a25-0c1e75d45594",
      "sourceHandle": "out-0",
      "target": "e6816042-38a3-4fd9-aa0f-87e44110de78",
      "targetHandle": "in-1"
    },
    {
      "source": "ab9f36cd-7d39-412d-893a-8d6b5bf5a3d1",
      "sourceHandle": "out-0",
      "target": "e6816042-38a3-4fd9-aa0f-87e44110de78",
      "targetHandle": "in-0"
    },
    {
      "source": "2d2696db-f601-4c4e-9797-836fd8711aa1",
      "sourceHandle": "out-0",
      "target": "8893436a-a1e6-405e-9344-3c3b44badb2c",
      "targetHandle": "in-0"
    },
    {
      "source": "5d218c47-d7ba-41fa-9755-ce6599e546e5",
      "sourceHandle": "out-0",
      "target": "659c0846-5dcd-4ded-967c-56792151a4e0",
      "targetHandle": "in-1"
    },
    {
      "source": "e0e8a3b0-dd5a-4490-b8b4-8334e19aba9f",
      "sourceHandle": "out-0",
      "target": "659c0846-5dcd-4ded-967c-56792151a4e0",
      "targetHandle": "in-0"
    },
    {
      "source": "e0e8a3b0-dd5a-4490-b8b4-8334e19aba9f",
      "sourceHandle": "out-0",
      "target": "230c7048-cee4-477b-8735-62d7c5f281a4",
      "targetHandle": "in-0"
    },
    {
      "source": "5d218c47-d7ba-41fa-9755-ce6599e546e5",
      "sourceHandle": "out-0",
      "target": "230c7048-cee4-477b-8735-62d7c5f281a4",
      "targetHandle": "in-1"
    },
    {
      "source": "230c7048-cee4-477b-8735-62d7c5f281a4",
      "sourceHandle": "out-0",
      "target": "e3b27f8e-c921-4983-9b22-49183c7e1802",
      "targetHandle": "in-1"
    },
    {
      "source": "3b9f36a8-bb0c-4e8a-97c4-b277221a8f3f",
      "sourceHandle": "out-0",
      "target": "1f1b3022-918b-4431-b51c-20d2606e9410",
      "targetHandle": "in-1"
    },
    {
      "source": "5aa6c809-d9fb-4871-9bf1-ee612d87a989",
      "sourceHandle": "out-1",
      "target": "f10f4c9a-7982-4e38-a1fe-a0028ae49a91",
      "targetHandle": "in-4"
    },
    {
      "source": "5aa6c809-d9fb-4871-9bf1-ee612d87a989",
      "sourceHandle": "out-2",
      "target": "f10f4c9a-7982-4e38-a1fe-a0028ae49a91",
      "targetHandle": "in-1"
    },
    {
      "source": "5aa6c809-d9fb-4871-9bf1-ee612d87a989",
      "sourceHandle": "out-0",
      "target": "f10f4c9a-7982-4e38-a1fe-a0028ae49a91",
      "targetHandle": "in-3"
    },
    {
      "source": "5b3c5d96-b9eb-4722-8149-322db63180bc",
      "sourceHandle": "out-0",
      "target": "21ad5db2-7318-4504-852c-6cae39937563",
      "targetHandle": "in-0"
    },
    {
      "source": "75a81bcc-f36e-4815-918f-5a4dfbe067dd",
      "sourceHandle": "out-0",
      "target": "21ad5db2-7318-4504-852c-6cae39937563",
      "targetHandle": "in-1"
    },
    {
      "source": "d3038609-46c2-4c77-9ead-92fa0b47d690",
      "sourceHandle": "out-2",
      "target": "ebbff426-4931-4e05-9100-09549f80c023",
      "targetHandle": "in-0"
    },
    {
      "source": "ebbff426-4931-4e05-9100-09549f80c023",
      "sourceHandle": "out-0",
      "target": "2eb6f73d-f3a6-4889-940f-bc3520f34321",
      "targetHandle": "in-0"
    },
    {
      "source": "35e6bb93-a5af-4905-9ca7-687599b3777b",
      "sourceHandle": "out-0",
      "target": "2eb6f73d-f3a6-4889-940f-bc3520f34321",
      "targetHandle": "in-1"
    },
    {
      "source": "d63220a2-ec6a-47cb-a115-8667ad883ae7",
      "sourceHandle": "out-0",
      "target": "b7df2ef5-5a5a-496b-bfad-a528ea307baa",
      "targetHandle": "in-0"
    },
    {
      "source": "269010ae-21b2-4aa1-a8a0-41bb79a044a8",
      "sourceHandle": "out-0",
      "target": "b7df2ef5-5a5a-496b-bfad-a528ea307baa",
      "targetHandle": "in-1"
    },
    {
      "source": "2eb6f73d-f3a6-4889-940f-bc3520f34321",
      "sourceHandle": "out-0",
      "target": "269010ae-21b2-4aa1-a8a0-41bb79a044a8",
      "targetHandle": "in-0"
    },
    {
      "source": "9adec951-1262-4293-ae0f-6bb8383d2c83",
      "sourceHandle": "out-0",
      "target": "35e6bb93-a5af-4905-9ca7-687599b3777b",
      "targetHandle": "in-0"
    },
    {
      "source": "f9c53621-c9df-4ace-a4b8-c9d756c3734f",
      "sourceHandle": "out-0",
      "target": "35e6bb93-a5af-4905-9ca7-687599b3777b",
      "targetHandle": "in-1"
    },
    {
      "source": "2d2696db-f601-4c4e-9797-836fd8711aa1",
      "sourceHandle": "out-0",
      "target": "f9c53621-c9df-4ace-a4b8-c9d756c3734f",
      "targetHandle": "in-0"
    },
    {
      "source": "d3038609-46c2-4c77-9ead-92fa0b47d690",
      "sourceHandle": "out-2",
      "target": "60ffa25c-df95-4bcf-9533-d06065666f42",
      "targetHandle": "in-0"
    },
    {
      "source": "8893436a-a1e6-405e-9344-3c3b44badb2c",
      "sourceHandle": "out-0",
      "target": "d3038609-46c2-4c77-9ead-92fa0b47d690",
      "targetHandle": "in-2"
    },
    {
      "source": "8ed7d1e2-85db-4267-b859-0d23c6c372dc",
      "sourceHandle": "out-0",
      "target": "013fde52-3873-4c8e-8952-ee87b9ad2436",
      "targetHandle": "in-0"
    },
    {
      "source": "8ed7d1e2-85db-4267-b859-0d23c6c372dc",
      "sourceHandle": "out-1",
      "target": "0d00a24d-a737-480c-8f7f-2828697576ae",
      "targetHandle": "in-0"
    },
    {
      "source": "cc39925f-5d6b-4a51-b755-abebd7afc8b6",
      "sourceHandle": "out-0",
      "target": "8ed7d1e2-85db-4267-b859-0d23c6c372dc",
      "targetHandle": "in-0"
    },
    {
      "source": "751da4fa-5c6d-43e7-a6cb-8a73d4c8b2c7",
      "sourceHandle": "out-0",
      "target": "cc39925f-5d6b-4a51-b755-abebd7afc8b6",
      "targetHandle": "in-0"
    },
    {
      "source": "ea02b1b0-b85b-4d62-9356-3a43a6c75a1d",
      "sourceHandle": "out-0",
      "target": "751da4fa-5c6d-43e7-a6cb-8a73d4c8b2c7",
      "targetHandle": "in-0"
    },
    {
      "source": "a3ea57e8-9365-489f-87ed-2dd3d96762b6",
      "sourceHandle": "out-0",
      "target": "ea02b1b0-b85b-4d62-9356-3a43a6c75a1d",
      "targetHandle": "in-0"
    },
    {
      "source": "e3b27f8e-c921-4983-9b22-49183c7e1802",
      "sourceHandle": "out-0",
      "target": "f10f4c9a-7982-4e38-a1fe-a0028ae49a91",
      "targetHandle": "in-0"
    },
    {
      "source": "1f1b3022-918b-4431-b51c-20d2606e9410",
      "sourceHandle": "out-1",
      "target": "5a7bdbdb-16c3-4bbd-afbd-624c822ba825",
      "targetHandle": "in-0"
    },
    {
      "source": "1f1b3022-918b-4431-b51c-20d2606e9410",
      "sourceHandle": "out-0",
      "target": "e3b27f8e-c921-4983-9b22-49183c7e1802",
      "targetHandle": "in-0"
    },
    {
      "source": "99df1b39-262b-4292-b3e2-cb4ea919a52c",
      "sourceHandle": "out-0",
      "target": "1f1b3022-918b-4431-b51c-20d2606e9410",
      "targetHandle": "in-0"
    },
    {
      "source": "d3038609-46c2-4c77-9ead-92fa0b47d690",
      "sourceHandle": "out-0",
      "target": "d7f0e85d-5cf5-4b6c-bb93-5337d183cee8",
      "targetHandle": "in-0"
    },
    {
      "source": "bf944ead-9854-40cd-b5b9-2eaa1b471330",
      "sourceHandle": "out-0",
      "target": "d3038609-46c2-4c77-9ead-92fa0b47d690",
      "targetHandle": "in-0"
    }
  ]
}
