{
  "xod/patch-nodes/abstract": {
    "attachments": [],
    "description": "Makes a patch containing this node abstract. That is, a patch node which only defines a generic interface in terms of generic-type inputs and outputs without an actual implementation. To be useful there should be one or more sibling specialization patches which implement the abstraction for particular input types.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/abstract",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/deprecated": {
    "attachments": [],
    "description": "Deprecates a patch which contains this node. Use it to archive outdated patch nodes. The projects which already uses the deprecated node will not break. Only a warning message will be shown. Use the marker node description to provide a deprecation reason and migration hint, it will be shown along the warning to end-users. For new projects, deprecated nodes are unlisted by default, so usage of such nodes by library users is discouraged.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/deprecated",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/record": {
    "attachments": [],
    "description": "Transforms the patch to a record type constructor.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/record",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/unpack-record": {
    "attachments": [],
    "description": "Node that marks a generated unpack patch for the record for further code generation and processing.",
    "links": {},
    "nodes": {
      "utilityMarker": {
        "boundLiterals": {},
        "description": "",
        "label": "",
        "arityLevel": 1,
        "size": {
          "width": 0,
          "height": 0
        },
        "id": "utilityMarker",
        "position": {
          "x": 0,
          "y": 0
        },
        "type": "xod/patch-nodes/utility",
        "@@type": "xod-project/Node"
      }
    },
    "comments": {},
    "path": "xod/patch-nodes/unpack-record",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/from-bus": {
    "attachments": [],
    "description": "Defines an attachment point to a patch-level data bus with the name defined by this node label.",
    "links": {},
    "nodes": {
      "__out__": {
        "boundLiterals": {},
        "description": "",
        "label": "",
        "arityLevel": 1,
        "size": {
          "width": 0,
          "height": 0
        },
        "id": "__out__",
        "position": {
          "x": 1,
          "y": 2
        },
        "type": "xod/patch-nodes/output-t1",
        "@@type": "xod-project/Node"
      }
    },
    "comments": {},
    "path": "xod/patch-nodes/from-bus",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/input-boolean": {
    "attachments": [],
    "description": "Input terminal node. Adds a new boolean input pin to the patch node which contains this node. Terminal label and description are propagated to the pin. Horizontal position relative to other terminals defines the pin order. A value bound to the terminal node pin becomes the default for the created input pin.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/input-boolean",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/input-byte": {
    "attachments": [],
    "description": "Input terminal node. Adds a new byte input pin to the patch node which contains this node. Terminal label and description are propagated to the pin. Horizontal position relative to other terminals defines the pin order. A value bound to the terminal node pin becomes the default for the created input pin.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/input-byte",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/input-dead": {
    "attachments": [],
    "description": "This terminal should not be visible to an end-user.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/input-dead",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/input-number": {
    "attachments": [],
    "description": "Input terminal node. Adds a new number input pin to the patch node which contains this node. Terminal label and description are propagated to the pin. Horizontal position relative to other terminals defines the pin order. A value bound to the terminal node pin becomes the default for the created input pin.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/input-number",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/input-port": {
    "attachments": [],
    "description": "Input terminal node. Adds a new port input pin to the patch node which contains this node. Terminal label and description are propagated to the pin. Horizontal position relative to other terminals defines the pin order. A value bound to the terminal node pin becomes the default for the created input pin.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/input-port",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/input-pulse": {
    "attachments": [],
    "description": "Input terminal node. Adds a new pulse input pin to the patch node which contains this node. Terminal label and description are propagated to the pin. Horizontal position relative to other terminals defines the pin order. A value bound to the terminal node pin becomes the default for the created input pin.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/input-pulse",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/input-string": {
    "attachments": [],
    "description": "Input terminal node. Adds a new string input pin to the patch node which contains this node. Terminal label and description are propagated to the pin. Horizontal position relative to other terminals defines the pin order. A value bound to the terminal node pin becomes the default for the created input pin.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/input-string",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/input-t1": {
    "attachments": [],
    "description": "Generic input terminal node. Adds a new input pin of a generic type `t1` to the patch node which contains this node. Terminal label and description are propagated to the pin. Horizontal position relative to other terminals defines the pin order. Placing this node onto a patch node makes it generic. The concrete type for `t1` is deduced from values and links bound to the created inputs of type `t1`.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/input-t1",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/input-t2": {
    "attachments": [],
    "description": "Generic input terminal node. Adds a new input pin of a generic type `t2` to the patch node which contains this node. Terminal label and description are propagated to the pin. Horizontal position relative to other terminals defines the pin order. Placing this node onto a patch node makes it generic. The concrete type for `t2` is deduced from values and links bound to the created inputs of type `t2`.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/input-t2",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/input-t3": {
    "attachments": [],
    "description": "Generic input terminal node. Adds a new input pin of a generic type `t3` to the patch node which contains this node. Terminal label and description are propagated to the pin. Horizontal position relative to other terminals defines the pin order. Placing this node onto a patch node makes it generic. The concrete type for `t3` is deduced from values and links bound to the created inputs of type `t3`.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/input-t3",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/jumper": {
    "attachments": [],
    "description": "A simple no-operation node. Use jumpers to reflow links making them easier to read",
    "links": {
      "HkrhyNMEQ": {
        "id": "HkrhyNMEQ",
        "input": {
          "nodeId": "__out__",
          "pinKey": "__in__"
        },
        "output": {
          "nodeId": "__in__",
          "pinKey": "__out__"
        },
        "@@type": "xod-project/Link"
      }
    },
    "nodes": {
      "__in__": {
        "boundLiterals": {},
        "description": "",
        "label": "",
        "arityLevel": 1,
        "size": {
          "width": 0,
          "height": 0
        },
        "id": "__in__",
        "position": {
          "x": 1,
          "y": 0
        },
        "type": "xod/patch-nodes/input-t1",
        "@@type": "xod-project/Node"
      },
      "__out__": {
        "boundLiterals": {},
        "description": "",
        "label": "",
        "arityLevel": 1,
        "size": {
          "width": 0,
          "height": 0
        },
        "id": "__out__",
        "position": {
          "x": 1,
          "y": 2
        },
        "type": "xod/patch-nodes/output-t1",
        "@@type": "xod-project/Node"
      }
    },
    "comments": {},
    "path": "xod/patch-nodes/jumper",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/not-implemented-in-xod": {
    "attachments": [],
    "description": "Tells XOD that the patch containing this node is implemented in C++ rather than as a composition of other nodes. All nodes other than terminals and other special markers are ignored",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/not-implemented-in-xod",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/output-boolean": {
    "attachments": [],
    "description": "Output terminal node. Adds a new boolean output pin to the patch node which contains this node. Terminal label and description are propagated to the pin. Horizontal position relative to other terminals defines the pin order.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/output-boolean",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/output-byte": {
    "attachments": [],
    "description": "Output terminal node. Adds a new byte output pin to the patch node which contains this node. Terminal label and description are propagated to the pin. Horizontal position relative to other terminals defines the pin order.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/output-byte",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/output-dead": {
    "attachments": [],
    "description": "This terminal should not be visible to end-user.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/output-dead",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/output-number": {
    "attachments": [],
    "description": "Output terminal node. Adds a new number output pin to the patch node which contains this node. Terminal label and description are propagated to the pin. Horizontal position relative to other terminals defines the pin order.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/output-number",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/output-port": {
    "attachments": [],
    "description": "Output terminal node. Adds a new port output pin to the patch node which contains this node. Terminal label and description are propagated to the pin. Horizontal position relative to other terminals defines the pin order.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/output-port",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/output-pulse": {
    "attachments": [],
    "description": "Output terminal node. Adds a new pulse output pin to the patch node which contains this node. Terminal label and description are propagated to the pin. Horizontal position relative to other terminals defines the pin order.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/output-pulse",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/output-self": {
    "attachments": [],
    "description": "Output terminal marker node. A patch containing this node defines a new custom type with the name matching the patch name. The internal data layout must be described in C++ using the `not-implemented-in-xod` node. Using this marker leads to automatic creation of input-xxx and output-xxx terminal patch nodes next to the original patch.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/output-self",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/output-string": {
    "attachments": [],
    "description": "Output terminal node. Adds a new string output pin to the patch node which contains this node. Terminal label and description are propagated to the pin. Horizontal position relative to other terminals defines the pin order.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/output-string",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/output-t1": {
    "attachments": [],
    "description": "Generic output terminal node. Adds a new output pin of a generic type `t1` to the patch node which contains this node. Terminal label and description are propagated to the pin. Horizontal position relative to other terminals defines the pin order. Placing this node onto a patch node makes it generic. The concrete type for `t1` is deduced from values and links bound to input pins of type `t1`.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/output-t1",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/output-t2": {
    "attachments": [],
    "description": "Generic output terminal node. Adds a new output pin of a generic type `t2` to the patch node which contains this node. Terminal label and description are propagated to the pin. Horizontal position relative to other terminals defines the pin order. Placing this node onto a patch node makes it generic. The concrete type for `t2` is deduced from values and links bound to input pins of type `t2`.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/output-t2",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/output-t3": {
    "attachments": [],
    "description": "Generic output terminal node. Adds a new output pin of a generic type `t3` to the patch node which contains this node. Terminal label and description are propagated to the pin. Horizontal position relative to other terminals defines the pin order. Placing this node onto a patch node makes it generic. The concrete type for `t3` is deduced from values and links bound to input pins of type `t3`.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/output-t3",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/tabtest": {
    "attachments": [],
    "description": "A marker node which defines a tabular test (tabtest) for the patch node. A tabtest is a kind of unit test expressed as a send-in/check-out table.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/tabtest",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/to-bus": {
    "attachments": [],
    "description": "Defines a sink to patch-level data bus with the name defined by this node label. Effectively, this node creates a new bus.",
    "links": {},
    "nodes": {
      "__in__": {
        "boundLiterals": {},
        "description": "",
        "label": "",
        "arityLevel": 1,
        "size": {
          "width": 0,
          "height": 0
        },
        "id": "__in__",
        "position": {
          "x": 1,
          "y": 0
        },
        "type": "xod/patch-nodes/input-t1",
        "@@type": "xod-project/Node"
      }
    },
    "comments": {},
    "path": "xod/patch-nodes/to-bus",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/utility": {
    "attachments": [],
    "description": "Marks a patch which contains this node as an internal utility. Utiliy nodes should only be used as helpers to compose other patch nodes of the library. Utilities are unlisted by default for library users, so the direct usage of such nodes is discouraged for them.",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/utility",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/variadic-1": {
    "attachments": [],
    "description": "Makes the rightmost input of the patch node containing this node variadic",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/variadic-1",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/variadic-2": {
    "attachments": [],
    "description": "Makes two rightmost inputs of the patch node containing this node variadic",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/variadic-2",
    "@@type": "xod-project/Patch"
  },
  "xod/patch-nodes/variadic-3": {
    "attachments": [],
    "description": "Makes three rightmost inputs of the patch node containing this node variadic",
    "links": {},
    "nodes": {},
    "comments": {},
    "path": "xod/patch-nodes/variadic-3",
    "@@type": "xod-project/Patch"
  }
}