{
  "openapi": "3.1.0",
  "info": {
    "title": "Robot News Network Public API",
    "version": "0.1.0",
    "description": "News and source-status endpoints for robots, agents, and operators."
  },
  "servers": [
    {
      "url": "https://robotnewsnetwork.com"
    }
  ],
  "paths": {
    "/api/news": {
      "get": {
        "operationId": "getNewsEdition",
        "summary": "Current public edition with freshness overlay",
        "responses": {
          "200": {
            "description": "RNN public edition",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "503": {
            "description": "No stored news data is available",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "head": {
        "operationId": "headNewsEdition",
        "summary": "Headers for the current public edition",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/client/bootstrap": {
      "get": {
        "operationId": "getClientBootstrap",
        "summary": "Compact browser bootstrap payload for fast first render",
        "responses": {
          "200": {
            "description": "Compact browser bootstrap",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "503": {
            "description": "No stored news data is available",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/community": {
      "get": {
        "operationId": "getCommunityTransmissionBoard",
        "summary": "Community Transmission Board posts, ranked story vote totals, and submission rules",
        "responses": {
          "200": {
            "description": "Community Transmission Board",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/community/posts": {
      "get": {
        "operationId": "getCommunityPosts",
        "summary": "Community-submitted posts with vote totals",
        "responses": {
          "200": {
            "description": "Community posts",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "createCommunityPost",
        "summary": "Submit a public community post",
        "responses": {
          "201": {
            "description": "Community post stored",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid post",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/community/votes": {
      "get": {
        "operationId": "getCommunityVotes",
        "summary": "Vote totals for story:* or community:* target ids",
        "parameters": [
          {
            "name": "targets",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "voterId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Vote totals",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/community/vote": {
      "post": {
        "operationId": "setCommunityVote",
        "summary": "Set or clear an anonymous browser-level vote",
        "responses": {
          "200": {
            "description": "Vote stored",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid vote",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/readiness": {
      "get": {
        "operationId": "getReadiness",
        "summary": "Readiness probe requiring writable storage and a fresh stored edition",
        "responses": {
          "200": {
            "description": "Ready",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "503": {
            "description": "Not ready or stale",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/monitoring/daily-refresh": {
      "get": {
        "operationId": "getDailyRefreshMonitor",
        "summary": "Compatibility alias for the source refresh freshness monitor",
        "responses": {
          "200": {
            "description": "Source data is fresh",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "503": {
            "description": "Source data needs attention",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/monitoring/source-refresh": {
      "get": {
        "operationId": "getSourceRefreshMonitor",
        "summary": "Continuous source freshness monitor for schedulers and uptime checks",
        "responses": {
          "200": {
            "description": "Source data is fresh",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "503": {
            "description": "Source data needs attention",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/feed.json": {
      "get": {
        "operationId": "getJsonFeed",
        "summary": "JSON Feed with RNN story metadata",
        "responses": {
          "200": {
            "description": "JSON Feed 1.1 document",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RnnJsonFeed"
                }
              }
            }
          }
        }
      }
    },
    "/rss.xml": {
      "get": {
        "operationId": "getRssFeed",
        "summary": "RSS feed",
        "responses": {
          "200": {
            "description": "RSS 2.0 feed",
            "content": {
              "application/rss+xml": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/feed.xml": {
      "get": {
        "operationId": "getFeedXmlAlias",
        "summary": "Compatibility alias for the RSS feed",
        "responses": {
          "200": {
            "description": "RSS 2.0 feed",
            "content": {
              "application/rss+xml": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/atom.xml": {
      "get": {
        "operationId": "getAtomFeed",
        "summary": "Atom feed",
        "responses": {
          "200": {
            "description": "Atom feed",
            "content": {
              "application/atom+xml": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/feed/{topic}": {
      "get": {
        "operationId": "getTopicRssFeed",
        "summary": "Topic RSS feed for latest, humanoids, drones, industrial robots, robotics policy, or research",
        "parameters": [
          {
            "name": "topic",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Topic RSS 2.0 feed",
            "content": {
              "application/rss+xml": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "Topic feed not found",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/news-sitemap.xml": {
      "get": {
        "operationId": "getNewsSitemap",
        "summary": "News sitemap for article discovery",
        "responses": {
          "200": {
            "description": "News sitemap XML",
            "content": {
              "application/xml": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/llms.txt": {
      "get": {
        "operationId": "getLlmsTxt",
        "summary": "Agent-readable crawl guidance",
        "responses": {
          "200": {
            "description": "Plain-text agent guidance",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/llms-full.txt": {
      "get": {
        "operationId": "getLlmsFullTxt",
        "summary": "Expanded agent integration guide with content negotiation examples",
        "responses": {
          "200": {
            "description": "Plain-text agent integration guide",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/story/{id}": {
      "get": {
        "operationId": "getStoryByContentNegotiation",
        "summary": "Story URL with HTML, JSON, Markdown, or JSON-LD based on Accept header or format query",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "json",
                "md",
                "ldjson"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Story in the requested format",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "object"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              },
              "application/ld+json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Story not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/ai.json": {
      "get": {
        "operationId": "getAiDiscovery",
        "summary": "Agent discovery metadata, data policy, and machine-readable endpoints",
        "responses": {
          "200": {
            "description": "AI discovery metadata",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/ai-plugin.json": {
      "get": {
        "operationId": "getAiPluginDiscovery",
        "summary": "Plugin-style discovery metadata for agents",
        "responses": {
          "200": {
            "description": "AI plugin discovery metadata",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/agent.json": {
      "get": {
        "operationId": "getAgentDiscoveryAlias",
        "summary": "Compatibility alias for agent discovery metadata",
        "responses": {
          "200": {
            "description": "Agent discovery metadata",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/mcp.json": {
      "get": {
        "operationId": "getMcpDiscovery",
        "summary": "MCP endpoint discovery metadata",
        "responses": {
          "200": {
            "description": "MCP discovery metadata",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/activitypub/outbox": {
      "get": {
        "operationId": "getActivityPubOutbox",
        "summary": "Read-only ActivityStreams collection of recent RNN articles",
        "responses": {
          "200": {
            "description": "ActivityStreams outbox",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/mcp": {
      "get": {
        "operationId": "getMcpServerInfo",
        "summary": "Read-only MCP HTTP beta server info and tool list",
        "responses": {
          "200": {
            "description": "MCP server info",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "callMcpTool",
        "summary": "JSON-RPC beta endpoint supporting initialize, tools/list, and tools/call",
        "responses": {
          "200": {
            "description": "MCP JSON-RPC response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/agents/latest": {
      "get": {
        "operationId": "getLatestAgentPayload",
        "summary": "Latest agent brief",
        "responses": {
          "200": {
            "description": "RNN agent payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RnnAgentPayload"
                }
              }
            }
          }
        }
      }
    },
    "/api/agents/context.json": {
      "get": {
        "operationId": "getAgentContextPack",
        "summary": "Compact context pack for autonomous agents",
        "responses": {
          "200": {
            "description": "RNN agent context pack",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/agents/start-here.json": {
      "get": {
        "operationId": "getAgentStartHere",
        "summary": "Start guide and runbook for web-browsing agents",
        "responses": {
          "200": {
            "description": "RNN agent start guide",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/agents/briefing.json": {
      "get": {
        "operationId": "getAgentBriefing",
        "summary": "Decision-oriented briefing for web-browsing agents",
        "responses": {
          "200": {
            "description": "RNN agent briefing",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/agents/editions/{id}": {
      "get": {
        "operationId": "getAgentPayloadByEdition",
        "summary": "Agent brief for a dated edition",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "RNN agent payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RnnAgentPayload"
                }
              }
            }
          },
          "404": {
            "description": "Edition not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/brief": {
      "get": {
        "operationId": "getV1BriefAlias",
        "summary": "Alias for the latest agent brief",
        "responses": {
          "200": {
            "description": "RNN agent payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RnnAgentPayload"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/brief/today": {
      "get": {
        "operationId": "getTodayBriefV1",
        "summary": "Daily brief for humans and agents",
        "responses": {
          "200": {
            "description": "RNN agent payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RnnAgentPayload"
                }
              }
            }
          }
        }
      }
    },
    "/api/agents/brief.json": {
      "get": {
        "operationId": "getAgentBriefJson",
        "summary": "Latest full agent brief payload",
        "responses": {
          "200": {
            "description": "RNN agent payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RnnAgentPayload"
                }
              }
            }
          }
        }
      }
    },
    "/api/agents/latest.md": {
      "get": {
        "operationId": "getLatestAgentMarkdown",
        "summary": "Markdown daily brief for agents and humans",
        "responses": {
          "200": {
            "description": "Markdown daily brief",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/agents/start-here.md": {
      "get": {
        "operationId": "getAgentStartHereMarkdown",
        "summary": "Markdown start guide for agents and humans",
        "responses": {
          "200": {
            "description": "Markdown agent start guide",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/agents/briefing.md": {
      "get": {
        "operationId": "getAgentBriefingMarkdown",
        "summary": "Markdown decision briefing for agents and humans",
        "responses": {
          "200": {
            "description": "Markdown agent briefing",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/agents/brief.ndjson": {
      "get": {
        "operationId": "getDailyBriefNdjson",
        "summary": "Top daily brief stories as NDJSON",
        "responses": {
          "200": {
            "description": "NDJSON stream",
            "content": {
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/editions": {
      "get": {
        "operationId": "listEditions",
        "summary": "Stored edition index",
        "responses": {
          "200": {
            "description": "Edition index",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/editions/latest": {
      "get": {
        "operationId": "getLatestEdition",
        "summary": "Latest stored edition with freshness overlay",
        "responses": {
          "200": {
            "description": "Latest edition",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "503": {
            "description": "No stored edition",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/editions/{id}": {
      "get": {
        "operationId": "getEditionById",
        "summary": "Stored dated edition with freshness overlay",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dated edition",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Edition not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/packets": {
      "get": {
        "operationId": "listPackets",
        "summary": "Public packet contract objects",
        "responses": {
          "200": {
            "description": "Packet list",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/stories": {
      "get": {
        "operationId": "listStories",
        "summary": "Public story objects",
        "responses": {
          "200": {
            "description": "Story list",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/packets/{id}": {
      "get": {
        "operationId": "getPacketById",
        "summary": "Single public packet contract object",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Packet",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RnnPacket"
                }
              }
            }
          },
          "404": {
            "description": "Packet not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/stories/{id}": {
      "get": {
        "operationId": "getStoryById",
        "summary": "Single public story object",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Story",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RnnPacket"
                }
              }
            }
          },
          "404": {
            "description": "Story not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/story/{id}.json": {
      "get": {
        "operationId": "getStoryJsonAlias",
        "summary": "Compatibility alias for a single public story packet",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Story",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RnnPacket"
                }
              }
            }
          },
          "404": {
            "description": "Story not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/deltas": {
      "get": {
        "operationId": "listPacketDeltas",
        "summary": "Cursor-based packet delta feed for polling agents",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "since",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Packet delta feed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/changes": {
      "get": {
        "operationId": "listPacketChanges",
        "summary": "Human- and agent-readable change feed with cursor support",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "since",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Story change feed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/events": {
      "get": {
        "operationId": "listEventRecords",
        "summary": "Event records with source facts, RNN summary, uncertainty, evidence, and ranking fields",
        "parameters": [
          {
            "name": "eventType",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entity",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "source",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "priority",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "importanceMin",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Event records",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/events/{id}": {
      "get": {
        "operationId": "getEventRecord",
        "summary": "Single event record",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Event record",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Event record not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/editorial-standard": {
      "get": {
        "operationId": "getEditorialStandard",
        "summary": "RNN evidence-layer and editorial boundary contract",
        "responses": {
          "200": {
            "description": "Editorial standard",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/ranking": {
      "get": {
        "operationId": "getRankingMethod",
        "summary": "Ranking method for operational relevance, source confidence, and newness detected",
        "responses": {
          "200": {
            "description": "Ranking method",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/source-curation": {
      "get": {
        "operationId": "getSourceCuration",
        "summary": "Source curation target, gaps, and replacement rules",
        "responses": {
          "200": {
            "description": "Source curation plan",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/operations": {
      "get": {
        "operationId": "getOperationsProof",
        "summary": "Refresh, source, crawler, and event-record health summary for agents",
        "responses": {
          "200": {
            "description": "Operations summary",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/daily-brief": {
      "get": {
        "operationId": "getDailyBriefV1",
        "summary": "Daily robot and agent operations brief",
        "responses": {
          "200": {
            "description": "Daily operations brief",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/feeds": {
      "get": {
        "operationId": "getSourceFeeds",
        "summary": "Source feed status",
        "responses": {
          "200": {
            "description": "Feed status matrix",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/sources/scale": {
      "get": {
        "operationId": "getSourceScaleV1",
        "summary": "Source scale target, five-minute cadence, concurrency, and validation status",
        "responses": {
          "200": {
            "description": "Source scale status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/sources/ranking": {
      "get": {
        "operationId": "getSourceRankingV1",
        "summary": "Source importance ranking method and selected source list",
        "responses": {
          "200": {
            "description": "Source ranking status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/source-trust": {
      "get": {
        "operationId": "getSourceTrustV1",
        "summary": "Source trust mix, gaps, top sources, and citation rules",
        "responses": {
          "200": {
            "description": "Source notes summary",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/articles": {
      "get": {
        "operationId": "listArticlesV1",
        "summary": "Article metadata and summaries with filters",
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "beat",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entity",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "source",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "importanceMin",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Article metadata and summaries",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/signals": {
      "get": {
        "operationId": "listSignals",
        "summary": "Market, safety, research, funding, deployment, regulation, security, and benchmark transmissions",
        "responses": {
          "200": {
            "description": "Transmission list",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/entities": {
      "get": {
        "operationId": "listEntityDirectory",
        "summary": "Companies, robot models, frameworks, datasets, regulations, and projects",
        "responses": {
          "200": {
            "description": "Entity directory",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/datasets": {
      "get": {
        "operationId": "listDatasets",
        "summary": "Available RNN datasets and metadata",
        "responses": {
          "200": {
            "description": "Dataset index",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/robots": {
      "get": {
        "operationId": "listRobots",
        "summary": "Robot and robotics-company tracker records with latest source mentions",
        "responses": {
          "200": {
            "description": "Robot tracker",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/humanoid-leaderboard": {
      "get": {
        "operationId": "getHumanoidLeaderboard",
        "summary": "Humanoid robot leaderboard ranked by public evidence, deployment maturity, and current source mentions",
        "responses": {
          "200": {
            "description": "Humanoid leaderboard",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/embeddings": {
      "get": {
        "operationId": "listPublicEmbeddings",
        "summary": "Lightweight public lexical vectors for current story metadata",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Public lexical vectors",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/tracker/robots.json": {
      "get": {
        "operationId": "getRobotTrackerAlias",
        "summary": "Compatibility alias for robot tracker records",
        "responses": {
          "200": {
            "description": "Robot tracker",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/research": {
      "get": {
        "operationId": "listResearch",
        "summary": "Research paper summaries from configured source metadata",
        "responses": {
          "200": {
            "description": "Research feed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/incidents": {
      "get": {
        "operationId": "listIncidents",
        "summary": "Safety, regulatory, robotaxi, drone, industrial robot, and agent-security incidents",
        "responses": {
          "200": {
            "description": "Incident tracker",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/mcp-tools": {
      "get": {
        "operationId": "listMcpTools",
        "summary": "Tracked MCP tools and agent-accessible services",
        "responses": {
          "200": {
            "description": "MCP tool directory",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/pop-culture": {
      "get": {
        "operationId": "listPopCultureForAgents",
        "summary": "Pop culture and human-attention items translated for agents and robots",
        "responses": {
          "200": {
            "description": "Pop culture for agents",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/trending": {
      "get": {
        "operationId": "listTrending",
        "summary": "Trending entities, beats, and transmissions",
        "responses": {
          "200": {
            "description": "Trending data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/search": {
      "get": {
        "operationId": "searchRnn",
        "summary": "Full-text search across events, articles, entities, datasets, incidents, and research",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "event",
                "article",
                "entity",
                "dataset",
                "incident",
                "research"
              ]
            }
          },
          {
            "name": "entity",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "source",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "beat",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "priority",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "importanceMin",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Search results",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/watchlist": {
      "get": {
        "operationId": "listWatchlistV1",
        "summary": "Filtered watchlist alias for agent monitors",
        "parameters": [
          {
            "name": "entities",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "surfaces",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "priority",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Filtered watchlist",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities": {
      "get": {
        "operationId": "listEntities",
        "summary": "Entity index for the current edition",
        "responses": {
          "200": {
            "description": "Entity index",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/{slug}": {
      "get": {
        "operationId": "getEntityBySlug",
        "summary": "Entity packet bundle for the current edition",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Entity packet bundle",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Entity not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/{slug}/history": {
      "get": {
        "operationId": "getEntityHistory",
        "summary": "Entity occurrence history across stored editions",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Entity history",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Entity not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/graph.json": {
      "get": {
        "operationId": "getEntityGraph",
        "summary": "Entity, packet, source, and dependency-surface graph",
        "responses": {
          "200": {
            "description": "Entity graph",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/watchlist": {
      "get": {
        "operationId": "getWatchlist",
        "summary": "Filtered packet watchlist for entities, dependency surfaces, or priorities",
        "parameters": [
          {
            "name": "entities",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "surfaces",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "priority",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Filtered watchlist",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/calendar.json": {
      "get": {
        "operationId": "getRobotOpsCalendar",
        "summary": "Robot operations calendar derived from packet recheck windows and refresh deadlines",
        "responses": {
          "200": {
            "description": "Robot operations calendar",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/calendar.ics": {
      "get": {
        "operationId": "getRobotOpsCalendarIcs",
        "summary": "Subscribable iCalendar feed for robot operations events",
        "responses": {
          "200": {
            "description": "iCalendar feed",
            "content": {
              "text/calendar": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/sources/quality": {
      "get": {
        "operationId": "getSourceQuality",
        "summary": "Source quality console across stored editions",
        "responses": {
          "200": {
            "description": "Source quality matrix",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/sources/scale": {
      "get": {
        "operationId": "getSourceScale",
        "summary": "Source scale target, five-minute cadence, concurrency, and validation status",
        "responses": {
          "200": {
            "description": "Source scale status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/sources/ranking": {
      "get": {
        "operationId": "getSourceRanking",
        "summary": "Source importance ranking method and selected source list",
        "responses": {
          "200": {
            "description": "Source ranking status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/sources/mesh": {
      "get": {
        "operationId": "getSourceMesh",
        "summary": "Source mesh grouped by trust profile, source type, and dependency surface",
        "responses": {
          "200": {
            "description": "Source mesh",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/truth/ledger": {
      "get": {
        "operationId": "getTruthLedger",
        "summary": "Truth-maintenance ledger for stale stories, duplicate clusters, source caveats, and corrections",
        "responses": {
          "200": {
            "description": "Truth maintenance ledger",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/ops/daily.json": {
      "get": {
        "operationId": "getDailyOpsBrief",
        "summary": "Daily operations brief for agents and robot operators",
        "responses": {
          "200": {
            "description": "Daily operations brief",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/health": {
      "get": {
        "operationId": "getHealth",
        "summary": "Liveness probe for the Node process",
        "responses": {
          "200": {
            "description": "Process is alive",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/schema/rnn.packet.v1.json": {
      "get": {
        "operationId": "getPacketSchema",
        "summary": "JSON Schema for packet contract objects",
        "responses": {
          "200": {
            "description": "Story JSON Schema",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/schema/rnn.agent.v1.json": {
      "get": {
        "operationId": "getAgentAliasSchema",
        "summary": "Backward-compatible JSON Schema alias for agent payloads",
        "responses": {
          "200": {
            "description": "Agent payload JSON Schema",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/schema/rnn.agent-payload.v1.json": {
      "get": {
        "operationId": "getAgentPayloadSchema",
        "summary": "JSON Schema for agent payloads",
        "responses": {
          "200": {
            "description": "Agent payload JSON Schema",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/schema/rnn.feed.v1.json": {
      "get": {
        "operationId": "getFeedSchema",
        "summary": "JSON Schema for JSON Feed wrapper",
        "responses": {
          "200": {
            "description": "Feed JSON Schema",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/schema/rnn.event.v1.json": {
      "get": {
        "operationId": "getEventSchema",
        "summary": "JSON Schema for event records",
        "responses": {
          "200": {
            "description": "Event JSON Schema",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/rnn-support.json": {
      "get": {
        "operationId": "getSupportPolicy",
        "summary": "Support and monetization policy",
        "responses": {
          "200": {
            "description": "Support policy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "RnnPacket": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://robotnewsnetwork.com/schema/rnn.packet.v1.json",
        "title": "RNN Agent Packet",
        "type": "object",
        "required": [
          "schema",
          "id",
          "humanBrief",
          "agentSummary",
          "claim",
          "source",
          "confidence",
          "limits",
          "verifyAt"
        ],
        "properties": {
          "schema": {
            "const": "rnn.packet.v1"
          },
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "externalUrl": {
            "type": [
              "string",
              "null"
            ],
            "format": "uri"
          },
          "humanBrief": {
            "type": "string"
          },
          "agentSummary": {
            "type": "string"
          },
          "claim": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "priority": {
            "type": "string"
          },
          "whatChanged": {
            "type": "string"
          },
          "affectedSystems": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "recommendedAction": {
            "type": "string"
          },
          "urgency": {
            "type": [
              "string",
              "null"
            ]
          },
          "expiresOrRecheckAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "entities": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "object",
                  "required": [
                    "name",
                    "slug"
                  ],
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "slug": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    },
                    "basis": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": true
                }
              ]
            }
          },
          "confidence": {
            "type": "object",
            "required": [
              "label",
              "basis"
            ],
            "properties": {
              "label": {
                "type": "string"
              },
              "basis": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "profile": {
                "type": [
                  "object",
                  "null"
                ],
                "properties": {
                  "sourceIdentity": {
                    "type": "string"
                  },
                  "extraction": {
                    "type": "string"
                  },
                  "temporal": {
                    "type": "string"
                  },
                  "corroboration": {
                    "type": "string"
                  },
                  "verificationStatus": {
                    "type": "string"
                  }
                },
                "additionalProperties": true
              }
            },
            "additionalProperties": true
          },
          "source": {
            "type": "object",
            "required": [
              "name",
              "status"
            ],
            "properties": {
              "name": {
                "type": "string"
              },
              "url": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "uri"
              },
              "feedUrl": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "uri"
              },
              "status": {
                "type": "string"
              }
            },
            "additionalProperties": true
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "machineReadable": {
            "type": "boolean"
          },
          "timestamps": {
            "type": "object",
            "properties": {
              "publishedAt": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "modifiedAt": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "staleAfter": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              }
            },
            "additionalProperties": false
          },
          "links": {
            "type": "object",
            "properties": {
              "html": {
                "type": "string"
              },
              "json": {
                "type": "string"
              },
              "source": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "uri"
              }
            },
            "additionalProperties": false
          },
          "limits": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "verifyAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "uri"
          },
          "sourceReviewUrl": {
            "type": [
              "string",
              "null"
            ],
            "format": "uri"
          },
          "updateHistory": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "at",
                "note"
              ],
              "properties": {
                "at": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "note": {
                  "type": "string"
                }
              },
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": true
      },
      "RnnAgentPayload": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://robotnewsnetwork.com/schema/rnn.agent-payload.v1.json",
        "title": "RNN Agent Payload",
        "type": "object",
        "required": [
          "schemaVersion",
          "generatedAt",
          "stale",
          "dataFreshness",
          "packets"
        ],
        "properties": {
          "schemaVersion": {
            "const": "rnn.agent.v1"
          },
          "generatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "stale": {
            "type": "boolean"
          },
          "cacheWarning": {
            "type": [
              "string",
              "null"
            ]
          },
          "dataFreshness": {
            "type": "object",
            "required": [
              "generatedAt",
              "stale",
              "staleAfter",
              "cacheTtlMs"
            ],
            "properties": {
              "generatedAt": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "stale": {
                "type": "boolean"
              },
              "staleAfter": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "cacheTtlMs": {
                "type": "number"
              },
              "cacheWarning": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "source": {
                "type": "string"
              }
            },
            "additionalProperties": true
          },
          "summary": {
            "type": "object",
            "properties": {
              "lead": {
                "type": [
                  "object",
                  "null"
                ]
              },
              "top": {
                "type": "array"
              },
              "sections": {
                "type": "array"
              },
              "actionQueue": {
                "type": "array"
              },
              "operatingNotes": {
                "type": "array"
              }
            },
            "additionalProperties": true
          },
          "packets": {
            "type": "array",
            "items": {
              "$ref": "https://robotnewsnetwork.com/schema/rnn.packet.v1.json"
            }
          },
          "feeds": {
            "type": "object"
          },
          "sourceRefreshStatus": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "ok": {
                  "type": "boolean"
                },
                "count": {
                  "type": "number"
                },
                "latencyMs": {
                  "type": "number"
                },
                "statusCode": {
                  "type": "number"
                },
                "url": {
                  "type": "string",
                  "format": "uri"
                },
                "newestItemAt": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "oldestItemAt": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "medianItemAgeHours": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "contentFreshnessStatus": {
                  "type": "string"
                },
                "error": {
                  "type": "string"
                }
              },
              "additionalProperties": true
            }
          },
          "transportHealth": {
            "type": "object"
          },
          "contentFreshness": {
            "type": "object"
          }
        },
        "additionalProperties": true
      },
      "RnnJsonFeed": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://robotnewsnetwork.com/schema/rnn.feed.v1.json",
        "title": "RNN JSON Feed Wrapper",
        "type": "object",
        "required": [
          "version",
          "title",
          "home_page_url",
          "feed_url",
          "_rnn",
          "items"
        ],
        "properties": {
          "version": {
            "const": "https://jsonfeed.org/version/1.1"
          },
          "title": {
            "type": "string"
          },
          "home_page_url": {
            "type": "string",
            "format": "uri"
          },
          "feed_url": {
            "type": "string",
            "format": "uri"
          },
          "description": {
            "type": "string"
          },
          "_rnn": {
            "type": "object",
            "required": [
              "schema",
              "generatedAt",
              "status",
              "freshness",
              "packetSchema"
            ],
            "properties": {
              "schema": {
                "const": "rnn.feed.v1"
              },
              "generatedAt": {
                "type": "string",
                "format": "date-time"
              },
              "status": {
                "type": "string"
              },
              "outputFormats": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "freshness": {
                "type": "object"
              },
              "packetSchema": {
                "type": "string",
                "format": "uri"
              },
              "packetAuditContract": {
                "type": "string"
              }
            },
            "additionalProperties": true
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "url",
                "title",
                "summary",
                "_rnn"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "url": {
                  "type": "string",
                  "format": "uri"
                },
                "external_url": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "uri"
                },
                "title": {
                  "type": "string"
                },
                "summary": {
                  "type": "string"
                },
                "content_text": {
                  "type": "string"
                },
                "date_published": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "date_modified": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "_rnn": {
                  "type": "object",
                  "properties": {
                    "schema": {
                      "const": "rnn.packet.v1"
                    },
                    "id": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "externalUrl": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "uri"
                    },
                    "humanBrief": {
                      "type": "string"
                    },
                    "agentSummary": {
                      "type": "string"
                    },
                    "claim": {
                      "type": "string"
                    },
                    "category": {
                      "type": "string"
                    },
                    "priority": {
                      "type": "string"
                    },
                    "whatChanged": {
                      "type": "string"
                    },
                    "affectedSystems": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "recommendedAction": {
                      "type": "string"
                    },
                    "urgency": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "expiresOrRecheckAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "entities": {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "object",
                            "required": [
                              "name",
                              "slug"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "slug": {
                                "type": "string"
                              },
                              "type": {
                                "type": "string"
                              },
                              "basis": {
                                "type": "string"
                              }
                            },
                            "additionalProperties": true
                          }
                        ]
                      }
                    },
                    "confidence": {
                      "type": "object",
                      "required": [
                        "label",
                        "basis"
                      ],
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "basis": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "profile": {
                          "type": [
                            "object",
                            "null"
                          ],
                          "properties": {
                            "sourceIdentity": {
                              "type": "string"
                            },
                            "extraction": {
                              "type": "string"
                            },
                            "temporal": {
                              "type": "string"
                            },
                            "corroboration": {
                              "type": "string"
                            },
                            "verificationStatus": {
                              "type": "string"
                            }
                          },
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": true
                    },
                    "source": {
                      "type": "object",
                      "required": [
                        "name",
                        "status"
                      ],
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "url": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "uri"
                        },
                        "feedUrl": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "uri"
                        },
                        "status": {
                          "type": "string"
                        }
                      },
                      "additionalProperties": true
                    },
                    "tags": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "machineReadable": {
                      "type": "boolean"
                    },
                    "timestamps": {
                      "type": "object",
                      "properties": {
                        "publishedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "modifiedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "staleAfter": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        }
                      },
                      "additionalProperties": false
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "html": {
                          "type": "string"
                        },
                        "json": {
                          "type": "string"
                        },
                        "source": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "uri"
                        }
                      },
                      "additionalProperties": false
                    },
                    "limits": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "verifyAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "uri"
                    },
                    "sourceReviewUrl": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "uri"
                    },
                    "updateHistory": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "at",
                          "note"
                        ],
                        "properties": {
                          "at": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "format": "date-time"
                          },
                          "note": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  },
                  "additionalProperties": true
                }
              },
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": true
      }
    }
  }
}