{
  "id": "type-h32",
  "revision": "83ed680cac08fd5f9f0325fc3a64e380dbc36183d6de21767cb8cd744d4abd31",
  "regions": [
    {
      "id": "common-logic",
      "label": "Common logic",
      "parent": null
    },
    {
      "id": "native",
      "label": "Native",
      "parent": null
    }
  ],
  "nodes": [
    {
      "id": "matrix",
      "label": "World transform matrix",
      "kind": "N31",
      "region": "common-logic",
      "ports": [
        {
          "id": "value",
          "profile": "P01",
          "contract": "BatchTransformOperandsV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "positions",
      "label": "Position batch",
      "kind": "N26",
      "region": "native",
      "ports": [
        {
          "id": "value",
          "profile": "P01",
          "contract": "BatchTransformOperandsV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "transform",
      "label": "Kotlin batch transform",
      "kind": "N01",
      "region": "common-logic",
      "ports": [
        {
          "id": "operands",
          "profile": "P01",
          "contract": "BatchTransformOperandsV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "output",
      "label": "Transformed position buffer",
      "kind": "N26",
      "region": "native",
      "ports": [
        {
          "id": "result",
          "profile": "P01",
          "contract": "BatchTransformOperandsV1",
          "polarity": "Require"
        },
        {
          "id": "view",
          "profile": "P17",
          "contract": "TransformedPositionViewV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "render",
      "label": "Scene renderer",
      "kind": "N16",
      "region": "native",
      "ports": [
        {
          "id": "positions",
          "profile": "P17",
          "contract": "TransformedPositionViewV1",
          "polarity": "Require"
        }
      ]
    }
  ],
  "relations": [
    {
      "id": "operands",
      "kind": "H32",
      "incidences": [
        {
          "node": "matrix",
          "port": "value",
          "role": "operand",
          "ordinal": 0
        },
        {
          "node": "positions",
          "port": "value",
          "role": "operand",
          "ordinal": 1
        },
        {
          "node": "transform",
          "port": "operands",
          "role": "operator",
          "ordinal": 0
        },
        {
          "node": "output",
          "port": "result",
          "role": "result",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "render",
      "kind": "H02",
      "incidences": [
        {
          "node": "output",
          "port": "view",
          "role": "source",
          "ordinal": 0
        },
        {
          "node": "render",
          "port": "positions",
          "role": "target",
          "ordinal": 0
        }
      ]
    }
  ]
}
