{
  "openapi": "3.0.0",
  "info": {
    "title": "SlydeDeck API",
    "version": "1.0.0",
    "description": "Public API for the SlydeDeck presentation sharing platform. Full specification at /api/docs.",
    "contact": { "url": "https://slydedeck.com/contact" },
    "license": { "name": "Proprietary" }
  },
  "servers": [
    { "url": "https://slydedeck.com/api", "description": "Production" }
  ],
  "externalDocs": {
    "description": "Full OpenAPI specification",
    "url": "https://slydedeck.com/api/docs"
  },
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "Session token obtained via OAuth login"
      }
    }
  },
  "paths": {
    "/decks": {
      "get": { "summary": "List public decks", "operationId": "listDecks", "tags": ["Decks"] },
      "post": { "summary": "Create a deck", "operationId": "createDeck", "tags": ["Decks"], "security": [{ "BearerAuth": [] }] }
    },
    "/decks/{id}": {
      "get": { "summary": "Get a deck by ID or share code", "operationId": "getDeck", "tags": ["Decks"] }
    },
    "/status": {
      "get": { "summary": "API status", "operationId": "getStatus", "tags": ["System"] }
    },
    "/health": {
      "get": { "summary": "Health check", "operationId": "healthCheck", "tags": ["System"] }
    },
    "/docs": {
      "get": { "summary": "Full OpenAPI specification", "operationId": "getDocs", "tags": ["System"] }
    }
  }
}
