{
  "openapi": "3.0.3",
  "info": {
    "title": "SumerLex API",
    "version": "1.0.0",
    "description": "Motor lingüístico integral de lengua sumeria"
  },
  "servers": [{ "url": "/api", "description": "Linguistics" }, { "url": "/api/v1", "description": "CRUD v1" }],
  "components": {
    "securitySchemes": {
      "bearerAuth": { "type": "http", "scheme": "bearer", "bearerFormat": "JWT" }
    }
  },
  "security": [{ "bearerAuth": [] }],
  "paths": {
    "/health": { "get": { "summary": "Health check", "security": [], "responses": { "200": { "description": "OK" } } } },
    "/translate": { "post": { "summary": "Traducción 9 pasos", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "text": { "type": "string" }, "targetLang": { "type": "string", "enum": ["es", "en"] } } } } } }, "responses": { "200": { "description": "Análisis completo" } } } },
    "/analyze/morphology": { "post": { "summary": "Análisis morfológico", "responses": { "200": { "description": "Segmentos" } } } },
    "/analyze/syntax": { "post": { "summary": "Árbol sintáctico SOV", "responses": { "200": { "description": "Árbol" } } } },
    "/analyze/semantics": { "post": { "summary": "Análisis semántico", "responses": { "200": { "description": "Sentidos" } } } },
    "/cuneiform": { "post": { "summary": "Interpretador cuneiforme", "responses": { "200": { "description": "Signos" } } } },
    "/numbers": { "post": { "summary": "Conversión sexagesimal", "responses": { "200": { "description": "Resultado" } } } },
    "/metrology": { "post": { "summary": "Metrología → SI", "responses": { "200": { "description": "Conversión" } } } },
    "/generate": { "post": { "summary": "Generador textos sumerios", "responses": { "200": { "description": "Texto generado" } } } },
    "/reconstruct": { "post": { "summary": "Reconstructor fragmentos", "responses": { "200": { "description": "Segmentos" } } } },
    "/history": { "get": { "summary": "Historial consultas", "responses": { "200": { "description": "Lista paginada" } } } },
    "/history/{id}/export": { "get": { "summary": "Exportar análisis", "parameters": [{ "name": "format", "in": "query", "schema": { "enum": ["json", "markdown", "pdf"] } }], "responses": { "200": { "description": "JSON, Markdown o PDF" } } } },
    "/v1/auth/login": { "post": { "summary": "Login JWT", "security": [], "responses": { "200": { "description": "Token" } } } },
    "/v1/dashboard/kpis": { "get": { "summary": "KPIs dashboard", "responses": { "200": { "description": "Métricas BD" } } } },
    "/v1/lexicon-entries": { "get": { "summary": "Listar léxico" }, "post": { "summary": "Crear entrada" } },
    "/v1/lexicon-entries/{id}": { "get": { "summary": "Detalle" }, "put": { "summary": "Editar" }, "delete": { "summary": "Eliminar" } },
    "/v1/cuneiform-signs": { "get": { "summary": "Listar signos" }, "post": { "summary": "Crear signo" } },
    "/v1/productos": { "get": { "summary": "Listar productos" }, "post": { "summary": "Crear producto" } },
    "/v1/depositos": { "get": { "summary": "Listar depósitos" }, "post": { "summary": "Crear depósito" } },
    "/v1/movimientos": { "get": { "summary": "Listar movimientos" }, "post": { "summary": "Crear movimiento" } },
    "/v1/transferencias": { "get": { "summary": "Listar transferencias" }, "post": { "summary": "Crear transferencia" } },
    "/v1/dashboards": { "get": { "summary": "Listar dashboards BI" }, "post": { "summary": "Crear dashboard" } },
    "/v1/reportes": { "get": { "summary": "Listar reportes" }, "post": { "summary": "Crear reporte" } },
    "/v1/kpis": { "get": { "summary": "Listar KPIs" }, "post": { "summary": "Crear KPI" } },
    "/v1/ia-agentes": { "get": { "summary": "Listar agentes IA" }, "post": { "summary": "Crear agente" } },
    "/v1/audit-log": { "get": { "summary": "Listar auditoría" } },
    "/v1/users": { "get": { "summary": "Listar usuarios" }, "post": { "summary": "Crear usuario" } },
    "/v1/roles": { "get": { "summary": "Listar roles" }, "post": { "summary": "Crear rol" } },
    "/v1/permissions": { "get": { "summary": "Listar permisos" }, "post": { "summary": "Crear permiso" } }
  }
}
