{"name":"SmellBook Public Read Contract","canonicalOrigin":"https://smellbook.com","schemaVersion":"1.0","snapshotId":"atlas-200-2026-09-22-phase-89-schema-1.0","generatedAt":"2026-09-22","authentication":"none for current public read routes","state":"stateless","writes":false,"supportedMethods":["GET","HEAD"],"cors":{"allowOrigin":"*","exposedHeaders":["X-SmellBook-Schema-Version"]},"cache":{"default":"public, max-age=3600, stale-while-revalidate=86400","note":"Some discovery/static metadata routes may use longer public cache windows."},"errors":{"missing_id":{"status":400,"title":"Missing identifier","message":"Provide an id query parameter, for example ?id=SB-0001."},"unknown_id":{"status":404,"title":"Unknown identifier","message":"No public smell, VERIFIED claim or registered source matches that exact identifier."},"not_found":{"status":404,"title":"Record not found","message":"The requested public entity record does not exist."}},"queryParameters":{"/data/resolve.json":{"id":"Required exact public identifier. Matching is case-insensitive."}},"guarantees":["Public read endpoints do not require authentication.","Public read endpoints do not mutate user or atlas state.","Breaking field semantics require a public schema-version change.","The X-SmellBook-Schema-Version response header identifies the public data contract version on routes using shared public data headers."],"boundaries":["No write API is live.","No account API is live.","No recommendation API is live.","No uptime SLA is promised."]}