{
  "openapi": "3.1.0",
  "info": {
    "title": "Мультиагентные системы — открытые данные",
    "version": "1.0.0",
    "description": "Статические данные справочника мультиагентные-системы.рф: платформы для создания ИИ-агентов, словарь терминов и типовые схемы. Только чтение, без ключа. Лицензия CC BY 4.0.",
    "license": {"name": "CC BY 4.0", "url": "https://creativecommons.org/licenses/by/4.0/"},
    "contact": {"name": "ООО «САРМАТЕХ»", "email": "info@multi-agent-systems.ru"}
  },
  "servers": [{"url": "https://xn----7sbjiabpfujjha2dbffge3oie.xn--p1ai"}],
  "paths": {
    "/data/platforms.json": {
      "get": {
        "operationId": "getPlatforms",
        "summary": "Платформы для создания ИИ-агентов и мультиагентных систем",
        "description": "Поле со значением null означает «не подтверждено источником».",
        "responses": {"200": {"description": "Список платформ", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PlatformList"}}}}}
      }
    },
    "/api/v1/terms.json": {
      "get": {
        "operationId": "getTerms",
        "summary": "Словарь терминов мультиагентных систем",
        "responses": {"200": {"description": "Список терминов", "content": {"application/json": {"schema": {"type": "object", "properties": {"updated": {"type": "string", "format": "date"}, "terms": {"type": "array", "items": {"$ref": "#/components/schemas/Term"}}}}}}}}
      }
    },
    "/api/v1/schemes.json": {
      "get": {
        "operationId": "getSchemes",
        "summary": "Пять типовых схем мультиагентных систем",
        "responses": {"200": {"description": "Список схем", "content": {"application/json": {"schema": {"type": "object", "properties": {"updated": {"type": "string", "format": "date"}, "schemes": {"type": "array", "items": {"$ref": "#/components/schemas/Scheme"}}}}}}}}
      }
    }
  },
  "components": {
    "schemas": {
      "PlatformList": {"type": "object", "properties": {"updated": {"type": "string", "format": "date"}, "license": {"type": "string"}, "rules": {"type": "string"}, "platforms": {"type": "array", "items": {"$ref": "#/components/schemas/Platform"}}}},
      "Platform": {
        "type": "object",
        "required": ["id", "name", "developer", "site", "kind", "checked", "sources"],
        "properties": {
          "id": {"type": "string"},
          "name": {"type": "string"},
          "developer": {"type": "string"},
          "site": {"type": "string", "format": "uri"},
          "kind": {"type": "string", "enum": ["ru", "nocode", "framework"], "description": "ru — российская платформа, nocode — конструктор без кода, framework — фреймворк"},
          "type": {"type": "string"},
          "multi": {"type": ["string", "null"], "description": "Как работают несколько агентов"},
          "schemes": {"type": "array", "items": {"type": "string", "enum": ["ork", "kon", "deb", "ier", "ryn"]}},
          "mcp": {"type": ["string", "null"], "enum": ["да", "нет", "частично", null]},
          "a2a": {"type": ["string", "null"], "enum": ["да", "нет", "частично", null]},
          "models": {"type": ["string", "null"]},
          "russia": {"type": ["string", "null"], "description": "Доступность в России"},
          "price": {"type": ["string", "null"]},
          "for": {"type": ["string", "null"]},
          "limits": {"type": ["string", "null"]},
          "checked": {"type": "string", "format": "date"},
          "flags": {"type": "object", "properties": {"nocode": {"type": ["boolean", "null"]}, "selfhost": {"type": ["boolean", "null"]}, "ru": {"type": ["boolean", "null"]}}},
          "sources": {"type": "array", "items": {"type": "object", "properties": {"title": {"type": "string"}, "url": {"type": "string", "format": "uri"}}}}
        }
      },
      "Term": {"type": "object", "properties": {"id": {"type": "string"}, "name": {"type": "string"}, "definition": {"type": "string"}, "url": {"type": "string", "format": "uri"}}},
      "Scheme": {"type": "object", "properties": {"id": {"type": "string"}, "name": {"type": "string"}, "summary": {"type": "string"}, "url": {"type": "string", "format": "uri"}, "roles": {"type": "array", "items": {"type": "string"}}}}
    }
  }
}
