{
  "openapi": "3.1.0",
  "info": {
    "title": "Rocket Services — API Contenu",
    "version": "1.0.0",
    "description": "Endpoints statiques en lecture seule exposant le contenu éditorial du site (notes, flux, corpus pour agents IA). Pas d'authentification, pas de quota.",
    "license": { "name": "Contenu réutilisable avec citation de la source", "url": "https://www.rocket-services.com/llms.txt" },
    "contact": { "name": "Rocket Services", "email": "contact@rocket-services.com", "url": "https://www.rocket-services.com/contact" }
  },
  "servers": [{ "url": "https://www.rocket-services.com" }],
  "paths": {
    "/notes/{slug}.json": {
      "get": {
        "summary": "Corps markdown d'une note",
        "operationId": "getNoteBody",
        "parameters": [
          { "name": "slug", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Slug de la note, tel que listé dans /sitemap.xml ou /rss.xml." }
        ],
        "responses": {
          "200": {
            "description": "Corps de la note.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": ["hasBody"],
                  "properties": {
                    "body": { "type": "string", "description": "Markdown (GFM)." },
                    "hasBody": { "type": "boolean" },
                    "readMin": { "type": "integer" }
                  }
                }
              }
            }
          },
          "404": { "description": "Slug inconnu." }
        }
      }
    },
    "/rss.xml": {
      "get": {
        "summary": "Flux RSS des notes publiées (contenu complet)",
        "operationId": "getFeed",
        "responses": { "200": { "description": "Flux RSS 2.0.", "content": { "application/rss+xml": { "schema": { "type": "string" } } } } }
      }
    },
    "/sitemap.xml": {
      "get": {
        "summary": "Index des URLs du site",
        "operationId": "getSitemap",
        "responses": { "200": { "description": "Sitemap XML.", "content": { "application/xml": { "schema": { "type": "string" } } } } }
      }
    },
    "/llms.txt": {
      "get": {
        "summary": "Index markdown du site pour agents IA",
        "operationId": "getLlmsTxt",
        "responses": { "200": { "description": "Index markdown.", "content": { "text/markdown": { "schema": { "type": "string" } } } } }
      }
    },
    "/llms-full.txt": {
      "get": {
        "summary": "Corpus complet (projets + notes) en markdown",
        "operationId": "getLlmsFull",
        "responses": { "200": { "description": "Corpus markdown.", "content": { "text/markdown": { "schema": { "type": "string" } } } } }
      }
    }
  }
}
