{"schemaVersion":"1.0","generatedAt":"2026-09-22","classes":{"standard-data":{"cacheControl":"public, max-age=3600, stale-while-revalidate=86400","use":"Shared public-data JSON/CSV/TSV/NDJSON and related machine-readable responses."},"discovery":{"cacheControl":"public, max-age=86400, stale-while-revalidate=604800","use":"Slow-changing discovery metadata such as security.txt, OpenSearch, humans.txt and citation metadata when route-specific code uses the long discovery policy."},"health":{"cacheControl":"public, max-age=300, stale-while-revalidate=3600","use":"Small current release health snapshot."},"seo-control":{"cacheControl":"public, max-age=3600, stale-while-revalidate=86400","use":"robots.txt and sitemap.xml."},"static-asset":{"cacheControl":"public, max-age=86400, stale-while-revalidate=604800","use":"Static SmellBook icon/share assets."},"framework-page":{"cacheControl":"framework-managed","use":"HTML pages managed by the Next.js rendering/build layer."}},"examples":[{"path":"/data/catalog.json","cacheClass":"standard-data"},{"path":"/data/manifest.json","cacheClass":"standard-data"},{"path":"/data/quality.json","cacheClass":"standard-data"},{"path":"/health.json","cacheClass":"health"},{"path":"/robots.txt","cacheClass":"seo-control"},{"path":"/sitemap.xml","cacheClass":"seo-control"},{"path":"/smellbook-mark.svg","cacheClass":"static-asset"},{"path":"/smellbook-share.svg","cacheClass":"static-asset"},{"path":"/.well-known/security.txt","cacheClass":"discovery"},{"path":"/opensearch.xml","cacheClass":"discovery"}],"semantics":{"maxAge":"Freshness lifetime in shared/browser caches before revalidation is required.","staleWhileRevalidate":"Additional window in which a stale response may be served while a fresh response is obtained.","boundary":"Cache policy describes response freshness behavior. It is not an editorial freshness score and does not change the stable content snapshot date."}}