{
  "openapi": "3.1.0",
  "info": {
    "title": "Победы Сергея Кривошеина",
    "version": "2026-10-28",
    "description": "Книга побед в стандартных шахматах. English edition at /en/. Список: /api/games. Кадры ходов: /api/frames/{id}."
  },
  "servers": [
    {
      "url": "https://sergey.krivoshein.site"
    }
  ],
  "paths": {
    "/": {
      "get": {
        "summary": "Книга партий, русский",
        "responses": {
          "200": {
            "description": "HTML"
          }
        }
      }
    },
    "/en/": {
      "get": {
        "summary": "Game book, English",
        "responses": {
          "200": {
            "description": "HTML"
          }
        }
      }
    },
    "/healthz": {
      "get": {
        "summary": "Приложение живо и каталог читается",
        "responses": {
          "200": {
            "description": "JSON"
          }
        }
      }
    },
    "/games.json": {
      "get": {
        "summary": "Все победы: данные, ходы SAN и финальный FEN",
        "responses": {
          "200": {
            "description": "JSON"
          }
        }
      }
    },
    "/api/games": {
      "get": {
        "summary": "Срез побед: offset, limit, color, q",
        "responses": {
          "200": {
            "description": "JSON"
          }
        }
      }
    },
    "/api/frames/{id}": {
      "get": {
        "summary": "FEN после каждого полухода одной партии",
        "responses": {
          "200": {
            "description": "JSON"
          },
          "404": {
            "description": "Нет такой партии"
          }
        }
      }
    },
    "/book.pdf": {
      "get": {
        "summary": "PDF книги, русский",
        "responses": {
          "200": {
            "description": "PDF"
          }
        }
      }
    },
    "/en/book.pdf": {
      "get": {
        "summary": "PDF book, English",
        "responses": {
          "200": {
            "description": "PDF"
          }
        }
      }
    },
    "/book.html": {
      "get": {
        "summary": "Та же книга одним файлом, русский",
        "responses": {
          "200": {
            "description": "HTML"
          }
        }
      }
    },
    "/en/book.html": {
      "get": {
        "summary": "The same book as one file, English",
        "responses": {
          "200": {
            "description": "HTML"
          }
        }
      }
    },
    "/llms.txt": {
      "get": {
        "summary": "Краткое описание для агентов, русский и ссылки на английский",
        "responses": {
          "200": {
            "description": "Markdown"
          }
        }
      }
    },
    "/en/llms.txt": {
      "get": {
        "summary": "Short English description for agents",
        "responses": {
          "200": {
            "description": "Markdown"
          }
        }
      }
    },
    "/llms-full.txt": {
      "get": {
        "summary": "Каталог партий, русский",
        "responses": {
          "200": {
            "description": "Markdown"
          }
        }
      }
    },
    "/en/llms-full.txt": {
      "get": {
        "summary": "Game catalog, English",
        "responses": {
          "200": {
            "description": "Markdown"
          }
        }
      }
    },
    "/ai.txt": {
      "get": {
        "summary": "Машиночитаемый индекс",
        "responses": {
          "200": {
            "description": "text/plain"
          }
        }
      }
    },
    "/en/ai.txt": {
      "get": {
        "summary": "Machine-readable English index",
        "responses": {
          "200": {
            "description": "text/plain"
          }
        }
      }
    },
    "/agents.md": {
      "get": {
        "summary": "Как читать сайт",
        "responses": {
          "200": {
            "description": "Markdown"
          }
        }
      }
    },
    "/en/agents.md": {
      "get": {
        "summary": "How to read the site",
        "responses": {
          "200": {
            "description": "Markdown"
          }
        }
      }
    }
  }
}
