{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "MTTI Telemetry Record (v1.0)",
  "description": "Standard JSON Schema for publishing first-party machine web crawler and autonomous agent traffic telemetry.",
  "type": "object",
  "required": [
    "date",
    "total_requests",
    "human_requests",
    "machine_requests",
    "human_percent",
    "machine_percent",
    "sha256_hash"
  ],
  "properties": {
    "date": {
      "type": "string",
      "format": "date",
      "description": "ISO-8601 date of the telemetry collection window (YYYY-MM-DD)"
    },
    "total_requests": {
      "type": "integer",
      "minimum": 0,
      "description": "Total origin HTTP/HTTPS requests received across the measurement window"
    },
    "human_requests": {
      "type": "integer",
      "minimum": 0,
      "description": "Total verified biological human requests"
    },
    "machine_requests": {
      "type": "integer",
      "minimum": 0,
      "description": "Total automated machine, bot, crawler, and agent requests"
    },
    "search_requests": {
      "type": "integer",
      "minimum": 0,
      "description": "Traditional search engine indexing requests (Googlebot, Bingbot, Naver, Yandex)"
    },
    "training_requests": {
      "type": "integer",
      "minimum": 0,
      "description": "AI model training corpus harvesters (GPTBot, ClaudeBot, CCBot, Bytespider, Diffbot)"
    },
    "agent_requests": {
      "type": "integer",
      "minimum": 0,
      "description": "Real-time autonomous agent actions (PerplexityBot, HermesAgent, Cursor, Devin)"
    },
    "malicious_requests": {
      "type": "integer",
      "minimum": 0,
      "description": "Unverified, spoofed, or abusive automated scanning requests"
    },
    "human_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "description": "Percentage of total requests attributed to humans"
    },
    "machine_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "description": "Percentage of total requests attributed to machines"
    },
    "search_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100
    },
    "training_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100
    },
    "agent_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100
    },
    "sha256_hash": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "description": "Deterministic SHA-256 hash of the canonical serialized JSON payload"
    },
    "methodology_url": {
      "type": "string",
      "format": "uri",
      "description": "URL to public classification methodology and bot detection rules"
    },
    "mcp_endpoint": {
      "type": "string",
      "format": "uri",
      "description": "Optional Model Context Protocol (MCP) server endpoint URL"
    }
  }
}