{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/aard-ai/json-schema/aard-ai-tool-success-schema.json",
  "title": "ToolSuccess",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/aard-ai-openapi.json#/components/schemas/ToolSuccess",
  "type": "object",
  "required": [
    "ok",
    "tool",
    "result"
  ],
  "properties": {
    "ok": {
      "const": true
    },
    "tool": {
      "type": "string",
      "enum": [
        "discover",
        "inspect",
        "ask",
        "build_url"
      ]
    },
    "result": {
      "type": "string",
      "description": "The rendered tool output, byte-identical to what the MCP tool of the same name returns. For `discover` it is a serialised JSON catalogue; parse it once."
    },
    "delivery": {
      "type": "object",
      "additionalProperties": true,
      "description": "`ask` and `build_url` only: the typed plan document the MCP tool puts in its structured content, so the plan can be executed from typed fields instead of re-parsed prose."
    },
    "url_unavailable_reason": {
      "type": "string",
      "description": "`build_url` only, and only when no executable URL could be built. Current vocabulary: selection_key_too_long, selection_requires_too_many_requests, selection_not_directly_available, no_observed_series, availability_not_enumerable, unsupported_url_shape, host_unknown, structure_only, mirror, dead."
    }
  }
}