{
  "openapi": "3.1.0",
  "info": {
    "title": "Alter Ethno Podcast API",
    "version": "1.0.0",
    "description": "Structured API endpoints for Alter Ethno — an independent anthropology podcast by Enzo Dumonteil. Provides machine-readable data on the podcast, creators, themes, and full episodes catalog.",
    "contact": {
      "name": "Alter Ethno",
      "email": "contact@alter-ethno.fr",
      "url": "https://alter-ethno.fr/contact"
    },
    "license": {
      "name": "Community & Open Access"
    }
  },
  "servers": [
    {
      "url": "https://alter-ethno.fr",
      "description": "Production server"
    }
  ],
  "paths": {
    "/api/index.json": {
      "get": {
        "summary": "API Directory",
        "description": "Returns index of all available structured endpoints and AI agent discovery manifests.",
        "responses": {
          "200": {
            "description": "API directory response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "name": { "type": "string" },
                    "version": { "type": "string" },
                    "endpoints": { "type": "object" },
                    "discovery": { "type": "object" }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/podcast.json": {
      "get": {
        "summary": "Podcast Metadata",
        "description": "Returns comprehensive information about Alter Ethno, its creator Enzo Dumonteil, team members, editorial themes, listening platforms, and official RSS feeds.",
        "responses": {
          "200": {
            "description": "Podcast metadata object",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "name": { "type": "string" },
                    "tagline": { "type": "string" },
                    "description": { "type": "string" },
                    "creator": { "type": "object" },
                    "team": { "type": "array" },
                    "themes": { "type": "array" },
                    "platforms": { "type": "array" }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/episodes.json": {
      "get": {
        "summary": "Episodes Catalog",
        "description": "Returns the list of podcast episodes with titles, synopses, publication dates, guest details, tags, and media audio URLs.",
        "responses": {
          "200": {
            "description": "Episodes catalog response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "podcast": { "type": "string" },
                    "total_episodes": { "type": "integer" },
                    "episodes": { "type": "array" }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/feed.xml": {
      "get": {
        "summary": "Podcast RSS Feed",
        "description": "CORS-enabled XML podcast RSS feed compatible with standard podcast players and crawlers.",
        "responses": {
          "200": {
            "description": "Standard RSS feed XML",
            "content": {
              "application/rss+xml": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  }
}
