{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/asteroidxrpl-com/json-schema/asteroidxrpl-com-discovery-manifest-schema.json",
  "title": "ASTEROID agent discovery manifest",
  "x-generated": "2026-11-01",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/asteroidxrpl-com-openapi.json#/components/schemas/discovery-manifest",
  "type": "object",
  "required": [
    "schemaVersion",
    "$schema",
    "publishedAt",
    "project",
    "asset",
    "resources",
    "capabilities",
    "claimStatuses",
    "nonAffiliation"
  ],
  "additionalProperties": false,
  "properties": {
    "schemaVersion": {
      "type": "string"
    },
    "$schema": {
      "type": "string",
      "format": "uri"
    },
    "publishedAt": {
      "type": "string",
      "format": "date-time"
    },
    "project": {
      "type": "object",
      "required": [
        "name",
        "description",
        "canonicalWebsite"
      ],
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "canonicalWebsite": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    "asset": {
      "type": "object",
      "required": [
        "tokenId",
        "network",
        "networkName",
        "issuer",
        "currencyHex",
        "displaySymbol",
        "identifierPolicy"
      ],
      "additionalProperties": false,
      "properties": {
        "tokenId": {
          "type": "string"
        },
        "network": {
          "type": "string"
        },
        "networkName": {
          "type": "string"
        },
        "issuer": {
          "type": "string"
        },
        "currencyHex": {
          "type": "string",
          "pattern": "^[0-9A-F]{40}$"
        },
        "displaySymbol": {
          "type": "string"
        },
        "identifierPolicy": {
          "type": "string"
        }
      }
    },
    "resources": {
      "type": "object",
      "additionalProperties": {
        "type": "string",
        "format": "uri"
      }
    },
    "capabilities": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "name",
          "description",
          "status",
          "interfaces",
          "freshness",
          "provenanceNote",
          "schema",
          "limitations"
        ],
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "available",
              "legacy-available",
              "deprecated",
              "unavailable",
              "planned"
            ],
            "description": "available: Gate 1 surface with a published schema. legacy-available: retained pre-Gate-1 surface, callable but unenveloped. deprecated: callable, scheduled for removal. unavailable: declared but not currently callable. planned: not implemented and not callable."
          },
          "interfaces": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "freshness": {
            "type": "string"
          },
          "provenanceNote": {
            "type": "string"
          },
          "schema": {
            "type": "string"
          },
          "limitations": {
            "type": "string"
          }
        }
      }
    },
    "claimStatuses": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "status",
          "meaning"
        ],
        "additionalProperties": false,
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "ledger-verified",
              "owner-confirmed",
              "independently-sourced",
              "derived",
              "aspirational",
              "unresolved"
            ]
          },
          "meaning": {
            "type": "string"
          }
        }
      }
    },
    "nonAffiliation": {
      "type": "string"
    }
  }
}