{
  "openapi": "3.0.3",
  "info": {
    "title": "Décryptage de la loi intégrale — API lecture seule (statique)",
    "version": "1.0.0",
    "description": "Interface documentaire sur fichiers JSON/CSV statiques. Pas d'authentification. Les chemins /api/v1/* ci-dessous sont des alias documentaires vers les exports /data/ (pas un serveur dynamique).",
    "contact": {
      "name": "Place de l'info",
      "email": "redaction@placedelinfo.org"
    },
    "license": {
      "name": "Mention de source requise",
      "url": "https://loi-integrale.placedelinfo.org/llms.txt"
    }
  },
  "servers": [
    {
      "url": "https://loi-integrale.placedelinfo.org",
      "description": "Cloudflare Pages (statique)"
    }
  ],
  "paths": {
    "/data/propositions.json": {
      "get": {
        "summary": "Liste complète des 140 propositions",
        "operationId": "listPropositions",
        "responses": {
          "200": {
            "description": "Jeu de données",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Dataset"
                }
              }
            }
          }
        }
      }
    },
    "/data/propositions.csv": {
      "get": {
        "summary": "Export tabulaire",
        "operationId": "listPropositionsCsv",
        "responses": {
          "200": {
            "description": "CSV UTF-8"
          }
        }
      }
    },
    "/data/schema.json": {
      "get": {
        "summary": "Schéma d'une proposition",
        "operationId": "getSchema",
        "responses": {
          "200": {
            "description": "JSON Schema"
          }
        }
      }
    },
    "/Refonte/site/md/fiche/{id}.md": {
      "get": {
        "summary": "Fiche Markdown d'une proposition",
        "operationId": "getPropositionMarkdown",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^O[0-9]{3}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "text/markdown"
          }
        }
      }
    },
    "/llms.txt": {
      "get": {
        "summary": "Guide pour agents et moteurs de réponse",
        "operationId": "getLlmsTxt",
        "responses": {
          "200": {
            "description": "text/plain Markdown"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Dataset": {
        "type": "object",
        "properties": {
          "propositions": {
            "type": "array",
            "items": {
              "$ref": "https://loi-integrale.placedelinfo.org/data/schema.json"
            }
          }
        }
      }
    }
  }
}
