{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "$schema": {
      // Explicitly allow JSON-Schema to be referenced (needed due to additionalProperties: false)
      "type": "string",
      "format": "uri"
    },
    "run_id": {
      "type": "string",
      "description": "The globally-unique run ID provided by the Engine."
    },
    "execution_id": {
      "type": "string",
      "description": "The globally-unique ID for this tool execution in the run."
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "tool": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the tool to call (invoke)"
        },
        "toolkit": {
          "type": "string",
          "description": "Name of the toolkit containing the tool to call"
        },
        "version": {
          "type": "string",
          "description": "Version of the toolkit containing the tool to call"
        }
      },
      "required": ["name", "toolkit", "version"],
      "additionalProperties": false
    },
    "inputs": {
      "type": "object",
      "additionalProperties": true
    },
    "context": {
      "type": "object",
      "properties": {
        "authorization": {
          "type": "object",
          "properties": {
            "token": {
              "type": "string"
            },
            "additionalProperties": false
          }
        },
        "secrets": {
          "type": "object",
          "additionalProperties": true
        },
        "user_id": {
          "type": "string",
          "description": "A unique ID that identifies the user (if any)"
        },
        "user_info": {
          "type": "object",
          "description": "The user information provided by the authorization server (if any)"
        }
      }
    }
  },
  "required": ["run_id", "execution_id", "created_at", "tool", "inputs", "context"],
  "additionalProperties": false
}
