{"openapi":"3.1.1","info":{"title":"Tabarca al Día · recursos estáticos","version":"1.0.0","description":"Solo archivos públicos de lectura. No existe /api/v1 ni procesamiento de parámetros de consulta. Los filtros y paginación se ejecutan en el cliente. Una consulta ?q= no altera estos archivos."},"servers":[{"url":"https://tabarca.net/"}],"paths":{"/data/catalog.json":{"get":{"summary":"Descargar todo el catálogo publicado, ordenado por id","responses":{"200":{"description":"Archivo estático generado durante el build.","content":{"application/json":{"schema":{"type":"object","required":["version","language","count","data","modifiedAt"],"properties":{"version":{"type":"string"},"language":{"type":"string"},"description":{"type":"string"},"count":{"type":"integer"},"modifiedAt":{"type":"string","format":"date"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Record"}}}}}}},"404":{"description":"Archivo inexistente. Página 404 HTML del alojamiento; no se garantiza error JSON."}}}},"/data/places/{id}.json":{"get":{"summary":"Obtener un registro publicado","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"restaurant-tere"}],"responses":{"200":{"description":"Archivo estático generado durante el build.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Record"}}}},"404":{"description":"Archivo inexistente. Página 404 HTML del alojamiento; no se garantiza error JSON."}}}},"/data/activities/{id}.json":{"get":{"summary":"Obtener un registro publicado","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"activity-tabarkeras"}],"responses":{"200":{"description":"Archivo estático generado durante el build.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Record"}}}},"404":{"description":"Archivo inexistente. Página 404 HTML del alojamiento; no se garantiza error JSON."}}}},"/data/guides/{slug}.json":{"get":{"summary":"Obtener un registro publicado","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"example":"primera-visita"}],"responses":{"200":{"description":"Archivo estático generado durante el build.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Record"}}}},"404":{"description":"Archivo inexistente. Página 404 HTML del alojamiento; no se garantiza error JSON."}}}}},"components":{"schemas":{"Record":{"type":"object","required":["id","slug","title","summary","type","language","url","path","body","publishedAt","modifiedAt","checkedAt","sources","hero","tags"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"category":{"type":"string"},"type":{"type":"string","enum":["guide","section","place","restaurant","store","lodging","activity"]},"language":{"type":"string","const":"es-ES"},"url":{"type":"string","format":"uri"},"path":{"type":"string"},"body":{"type":"string","description":"Texto editorial; Markdown en las guías y secciones."},"publishedAt":{"type":"string","format":"date"},"modifiedAt":{"type":"string","format":"date"},"checkedAt":{"type":["string","null"],"format":"date"},"hero":{"type":"string","enum":["playa","pueblo","costa","calle"]},"tags":{"type":"array","items":{"type":"string"}},"practical":{"type":"array","items":{"type":"string"}},"website":{"type":["string","null"],"format":"uri"},"phone":{"type":["string","null"]},"address":{"type":["string","null"]},"departure":{"type":"string"},"route":{"type":"string"},"sources":{"type":"array","items":{"type":"object","required":["title","url","publisher","checkedAt"],"properties":{"title":{"type":"string"},"url":{"type":"string","format":"uri"},"publisher":{"type":"string"},"checkedAt":{"type":"string","format":"date"},"note":{"type":"string"}}}}}}}}}