{
  "openapi": "3.0.3",
  "info": {
    "title": "Désinformation.net API",
    "description": "API publique listant les acteurs français de la lutte contre la désinformation.",
    "version": "1.0.0",
    "contact": {
      "email": "alain.godon@univ-angers.fr"
    }
  },
  "servers": [
    { "url": "https://www.desinformation.net/api/v1", "description": "Production" }
  ],
  "paths": {
    "/acteurs": {
      "get": {
        "summary": "Liste tous les acteurs",
        "description": "Retourne l'ensemble des acteurs référencés, classés par catégorie et position.",
        "operationId": "getActeurs",
        "tags": ["Acteurs"],
        "responses": {
          "200": {
            "description": "Liste des acteurs",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/ActeursResponse" },
                "example": {
                  "version": "v1",
                  "total": 9,
                  "data": [
                    {
                      "nom": "AskVera",
                      "categorie": "fact-checkers",
                      "type": "Fact-checker",
                      "description": "AskVera combine intelligence artificielle et expertise humaine...",
                      "url": "https://www.askvera.org/",
                      "favicon": "https://www.desinformation.net/favicon-proxy.php?url=https%3A%2F%2Fwww.askvera.org%2F"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Acteur": {
        "type": "object",
        "properties": {
          "nom":         { "type": "string", "example": "AskVera" },
          "categorie":   { "type": "string", "enum": ["fact-checkers", "emi", "institutionnels"], "example": "fact-checkers" },
          "type":        { "type": "string", "example": "Fact-checker" },
          "description": { "type": "string" },
          "url":         { "type": "string", "format": "uri", "nullable": true },
          "favicon":     { "type": "string", "format": "uri", "nullable": true }
        }
      },
      "ActeursResponse": {
        "type": "object",
        "properties": {
          "version": { "type": "string", "example": "v1" },
          "total":   { "type": "integer", "example": 9 },
          "data":    { "type": "array", "items": { "$ref": "#/components/schemas/Acteur" } }
        }
      }
    }
  }
}
