{
  "$ref": "#/definitions/tool-def",
  "definitions": {
    "tool-def": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128,
          "pattern": "^[a-z0-9_.:-]+$"
        },
        "description": {
          "type": "string",
          "maxLength": 1000
        },
        "inputSchema": {
          "type": "object",
          "additionalProperties": {}
        },
        "location": {
          "type": "string",
          "enum": [
            "hub",
            "surface"
          ]
        },
        "write": {
          "type": "boolean",
          "default": false
        }
      },
      "required": [
        "name",
        "description",
        "inputSchema",
        "location"
      ],
      "additionalProperties": false
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://schwaizer.ch/ocp/schemas/1.0/tool-def.json"
}
