{
  "$defs": {
    "OperationBlock": {
      "additionalProperties": false,
      "properties": {
        "boundaries": {
          "title": "Boundaries",
          "type": "string"
        },
        "definition": {
          "title": "Definition",
          "type": "string"
        },
        "inputs": {
          "items": {
            "$ref": "#/$defs/Port"
          },
          "title": "Inputs",
          "type": "array"
        },
        "label": {
          "title": "Label",
          "type": "string"
        },
        "official_reference": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Official Reference"
        },
        "operation_id": {
          "title": "Operation Id",
          "type": "string"
        },
        "outputs": {
          "items": {
            "$ref": "#/$defs/Port"
          },
          "title": "Outputs",
          "type": "array"
        },
        "parameters": {
          "items": {
            "type": "string"
          },
          "title": "Parameters",
          "type": "array"
        }
      },
      "required": [
        "operation_id",
        "label",
        "definition",
        "inputs",
        "outputs",
        "parameters",
        "boundaries",
        "official_reference"
      ],
      "title": "OperationBlock",
      "type": "object"
    },
    "Port": {
      "additionalProperties": false,
      "properties": {
        "meaning": {
          "title": "Meaning",
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "optional": {
          "default": false,
          "title": "Optional",
          "type": "boolean"
        },
        "variadic": {
          "default": false,
          "title": "Variadic",
          "type": "boolean"
        }
      },
      "required": [
        "name",
        "meaning"
      ],
      "title": "Port",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "blocks": {
      "items": {
        "$ref": "#/$defs/OperationBlock"
      },
      "title": "Blocks",
      "type": "array"
    },
    "contract_version": {
      "const": "operation-library-v1",
      "title": "Contract Version",
      "type": "string"
    },
    "release": {
      "title": "Release",
      "type": "string"
    }
  },
  "required": [
    "contract_version",
    "release",
    "blocks"
  ],
  "title": "OperationCatalog",
  "type": "object"
}
