{"openapi":"3.1.0","info":{"title":"ASO HTTP API","version":"0.1.0","description":"Immutable Agnostic Spatial Object and world registry HTTP slice."},"servers":[{"url":"/api/v1"}],"security":[],"paths":{"/":{"get":{"summary":"Discover API capabilities","security":[],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRoot"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/openapi.json":{"get":{"summary":"Get this OpenAPI document","security":[],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/objects":{"get":{"summary":"List and filter object versions","security":[],"parameters":[{"name":"q","in":"query","schema":{"type":"string","maxLength":200}},{"name":"tag","in":"query","schema":{"type":"string"}},{"name":"tags","in":"query","description":"Comma-separated tags; every tag must match.","schema":{"type":"string"}},{"name":"license","in":"query","schema":{"type":"string"}},{"name":"representationType","in":"query","schema":{"type":"string"}},{"name":"representationFormat","in":"query","schema":{"type":"string"}},{"name":"generator","in":"query","schema":{"type":"string"}},{"name":"runtime","in":"query","schema":{"type":"string"}},{"name":"sort","in":"query","schema":{"type":"string","enum":["name","publishedAt"],"default":"publishedAt"}},{"name":"order","in":"query","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"cursor","in":"query","schema":{"type":"string","pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectPage"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/objects/{id}":{"get":{"summary":"Get the latest or query-selected object version","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._-]*[a-z0-9]$"}},{"name":"version","in":"query","schema":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectManifest"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/objects/{id}/latest":{"get":{"summary":"Get the latest object version","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._-]*[a-z0-9]$"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectManifest"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/objects/{id}/versions":{"get":{"summary":"List immutable object versions","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._-]*[a-z0-9]$"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectVersionList"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/objects/{id}/versions/{version}":{"get":{"summary":"Get an exact object version","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._-]*[a-z0-9]$"}},{"name":"version","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectManifest"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/objects/{id}/versions/{version}/manifest":{"get":{"summary":"Get an exact object manifest","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._-]*[a-z0-9]$"}},{"name":"version","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectManifest"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/objects/{id}/versions/{version}/agent":{"get":{"summary":"Get object agent metadata","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._-]*[a-z0-9]$"}},{"name":"version","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+"}},{"name":"runtime","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectAgent"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/objects/{id}/versions/{version}/compatibility":{"get":{"summary":"Diagnose object runtime compatibility","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._-]*[a-z0-9]$"}},{"name":"version","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+"}},{"name":"runtime","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Compatibility"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/objects/{id}/versions/{version}/integrity":{"get":{"summary":"Get object publication integrity diagnostics","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._-]*[a-z0-9]$"}},{"name":"version","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectIntegrity"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/objects/{id}/versions/{version}/worlds":{"get":{"summary":"List worlds referencing an exact object version","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._-]*[a-z0-9]$"}},{"name":"version","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+"}},{"name":"q","in":"query","schema":{"type":"string","maxLength":200}},{"name":"tag","in":"query","schema":{"type":"string"}},{"name":"tags","in":"query","description":"Comma-separated tags; every tag must match.","schema":{"type":"string"}},{"name":"license","in":"query","schema":{"type":"string"}},{"name":"representationType","in":"query","schema":{"type":"string"}},{"name":"representationFormat","in":"query","schema":{"type":"string"}},{"name":"generator","in":"query","schema":{"type":"string"}},{"name":"runtime","in":"query","schema":{"type":"string"}},{"name":"sort","in":"query","schema":{"type":"string","enum":["name","publishedAt"],"default":"publishedAt"}},{"name":"order","in":"query","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"cursor","in":"query","schema":{"type":"string","pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorldPage"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/worlds":{"get":{"summary":"List and filter world versions","security":[],"parameters":[{"name":"q","in":"query","schema":{"type":"string","maxLength":200}},{"name":"tag","in":"query","schema":{"type":"string"}},{"name":"tags","in":"query","description":"Comma-separated tags; every tag must match.","schema":{"type":"string"}},{"name":"license","in":"query","schema":{"type":"string"}},{"name":"representationType","in":"query","schema":{"type":"string"}},{"name":"representationFormat","in":"query","schema":{"type":"string"}},{"name":"generator","in":"query","schema":{"type":"string"}},{"name":"runtime","in":"query","schema":{"type":"string"}},{"name":"sort","in":"query","schema":{"type":"string","enum":["name","publishedAt"],"default":"publishedAt"}},{"name":"order","in":"query","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"cursor","in":"query","schema":{"type":"string","pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorldPage"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/worlds/{id}":{"get":{"summary":"Get the latest or query-selected world version","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._-]*[a-z0-9]$"}},{"name":"version","in":"query","schema":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorldManifest"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/worlds/{id}/latest":{"get":{"summary":"Get the latest world version","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._-]*[a-z0-9]$"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorldManifest"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/worlds/{id}/versions":{"get":{"summary":"List immutable world versions","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._-]*[a-z0-9]$"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorldVersionList"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/worlds/{id}/versions/{version}":{"get":{"summary":"Get an exact world version","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._-]*[a-z0-9]$"}},{"name":"version","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorldManifest"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/worlds/{id}/versions/{version}/manifest":{"get":{"summary":"Get an exact world manifest","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._-]*[a-z0-9]$"}},{"name":"version","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorldManifest"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/worlds/{id}/versions/{version}/agent":{"get":{"summary":"Get world agent metadata","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._-]*[a-z0-9]$"}},{"name":"version","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorldAgent"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/publications":{"post":{"summary":"Publish an object or world","security":[{"bearerAuth":[]},{"apiKey":[]}],"parameters":[{"name":"x-aso-publication-kind","in":"header","schema":{"type":"string","enum":["object","world"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ObjectPublicationRequest"},{"$ref":"#/components/schemas/WorldManifest"}]}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/MultipartObjectPublication"}}}},"responses":{"201":{"description":"Immutable publication created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicationResult"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/publish/objects":{"post":{"summary":"Publish an object","security":[{"bearerAuth":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectPublicationRequest"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/MultipartObjectPublication"}}}},"responses":{"201":{"description":"Immutable publication created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicationResult"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/publish/worlds":{"post":{"summary":"Publish a world","security":[{"bearerAuth":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorldManifest"}}}},"responses":{"201":{"description":"Immutable publication created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicationResult"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/publish/staging":{"post":{"summary":"Create a short-lived staging upload","security":[{"bearerAuth":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StagingRequest"}}}},"responses":{"201":{"description":"Staging upload created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StagingResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/generate":{"post":{"summary":"Submit an authenticated generation job","security":[{"bearerAuth":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationRequest"}}}},"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/health":{"get":{"summary":"Compatibility readiness endpoint","security":[],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Readiness"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/health":{"get":{"summary":"Process liveness","security":[],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}},"servers":[{"url":"/"}]}},"/api/ready":{"get":{"summary":"Dependency readiness","security":[],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Readiness"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}},"servers":[{"url":"/"}]}},"/objects/{id}/versions/{version}/aso.object.json":{"get":{"summary":"Canonical object JSON","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._-]*[a-z0-9]$"}},{"name":"version","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectManifest"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}},"servers":[{"url":"/"}]}},"/objects/{id}/versions/{version}/agent.json":{"get":{"summary":"Canonical object agent JSON","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._-]*[a-z0-9]$"}},{"name":"version","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectAgent"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}},"servers":[{"url":"/"}]}},"/worlds/{id}/versions/{version}/aso.world.json":{"get":{"summary":"Canonical world JSON","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._-]*[a-z0-9]$"}},{"name":"version","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorldManifest"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}},"servers":[{"url":"/"}]}},"/worlds/{id}/versions/{version}/agent.json":{"get":{"summary":"Canonical world agent JSON","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._-]*[a-z0-9]$"}},{"name":"version","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorldAgent"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}},"servers":[{"url":"/"}]}},"/schemas/aso.object.schema.json":{"get":{"summary":"ASO object JSON Schema","security":[],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}},"servers":[{"url":"/"}]}},"/schemas/aso.world.schema.json":{"get":{"summary":"ASO world JSON Schema","security":[],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}},"servers":[{"url":"/"}]}},"/schemas/aso.agent-object.schema.json":{"get":{"summary":"ASO object-agent JSON Schema","security":[],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}},"servers":[{"url":"/"}]}},"/schemas/aso.agent-world.schema.json":{"get":{"summary":"ASO world-agent JSON Schema","security":[],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}},"servers":[{"url":"/"}]}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"Firebase ID token"},"apiKey":{"type":"apiKey","in":"header","name":"x-api-key"}},"responses":{"BadRequest":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Conflict":{"description":"Immutable version exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"PayloadTooLarge":{"description":"Payload is too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unprocessable":{"description":"Integrity or media validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"RateLimited":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InternalError":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unavailable":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{}}}}},"ApiRoot":{"type":"object","required":["name","version","status","links"],"properties":{"name":{"type":"string"},"version":{"type":"string"},"status":{"const":"ok"},"links":{"type":"object"}}},"Identity":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._-]*[a-z0-9]$"},"SemanticVersion":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?$"},"IntegrityResult":{"type":"object","required":["status"],"properties":{"status":{"enum":["Verified","Failed","Not yet checked","Unavailable"]},"expected":{"type":"string"},"actual":{"type":"string"},"reason":{"type":"string"}}},"Representation":{"type":"object","additionalProperties":false,"required":["id","type","format","mediaType","url","byteLength","hash"],"properties":{"id":{"type":"string"},"type":{"type":"string"},"format":{"type":"string"},"mediaType":{"type":"string"},"url":{"type":"string","format":"uri"},"byteLength":{"type":"integer","minimum":0},"hash":{"type":"string","pattern":"^sha256-"}}},"ObjectManifest":{"type":"object","additionalProperties":false,"required":["schema","id","version","name","description","tags","createdAt","provenance","representations"],"properties":{"schema":{"const":"aso/object/v0.1"},"id":{"$ref":"#/components/schemas/Identity"},"version":{"$ref":"#/components/schemas/SemanticVersion"},"name":{"type":"string"},"description":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string","format":"date-time"},"license":{"type":"string"},"generator":{"type":"string"},"provenance":{"type":"object"},"representations":{"type":"array","items":{"$ref":"#/components/schemas/Representation"}},"preview":{"$ref":"#/components/schemas/Representation"}}},"Transform":{"type":"object","additionalProperties":false,"required":["position","rotation","scale"],"properties":{"position":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"rotation":{"type":"array","minItems":4,"maxItems":4,"items":{"type":"number"}},"scale":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}},"WorldReference":{"type":"object","additionalProperties":false,"required":["instanceId","object","transform"],"properties":{"instanceId":{"type":"string"},"object":{"type":"object","required":["id","version","url"],"properties":{"id":{"$ref":"#/components/schemas/Identity"},"version":{"$ref":"#/components/schemas/SemanticVersion"},"url":{"type":"string","format":"uri"}}},"transform":{"$ref":"#/components/schemas/Transform"},"metadata":{"type":"object"}}},"WorldManifest":{"type":"object","additionalProperties":false,"required":["schema","id","version","name","description","tags","createdAt","provenance","objects"],"properties":{"schema":{"const":"aso/world/v0.1"},"id":{"$ref":"#/components/schemas/Identity"},"version":{"$ref":"#/components/schemas/SemanticVersion"},"name":{"type":"string"},"description":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string","format":"date-time"},"license":{"type":"string"},"generator":{"type":"string"},"provenance":{"type":"object"},"objects":{"type":"array","items":{"$ref":"#/components/schemas/WorldReference"}}}},"ObjectPage":{"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ObjectManifest"}},"nextCursor":{"type":["string","null"]}}},"WorldPage":{"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WorldManifest"}},"nextCursor":{"type":["string","null"]}}},"ObjectVersionList":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ObjectManifest"}}}},"WorldVersionList":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WorldManifest"}}}},"Compatibility":{"type":"object","required":["compatible","selected","representations","summary"],"properties":{"compatible":{"type":"boolean"},"selected":{"type":["object","null"]},"representations":{"type":"array","items":{"type":"object"}},"summary":{"type":"string"}}},"ObjectIntegrity":{"type":"object","required":["manifest","representations"],"properties":{"manifest":{"$ref":"#/components/schemas/IntegrityResult"},"representations":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/IntegrityResult"}}}},"ObjectAgent":{"type":"object","required":["schema","schemaVersion","kind","identity","urls","manifest","compatibility","representations","actions"],"properties":{"schema":{"const":"aso/agent-object/v0.1"}}},"WorldAgent":{"type":"object","required":["schema","schemaVersion","kind","identity","urls","manifest","objectCount","objects","actions"],"properties":{"schema":{"const":"aso/agent-world/v0.1"}}},"ObjectPublicationMetadata":{"type":"object","additionalProperties":false,"required":["id","version","name","description","tags","createdAt","representation"],"properties":{"id":{"$ref":"#/components/schemas/Identity"},"version":{"$ref":"#/components/schemas/SemanticVersion"},"name":{"type":"string"},"description":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string","format":"date-time"},"license":{"type":"string"},"generator":{"oneOf":[{"type":"string"},{"type":"object","required":["provider"]}]},"provenance":{"type":"object"},"representation":{"type":"object","additionalProperties":false,"required":["id","type","format","mediaType"],"properties":{"id":{"type":"string"},"type":{"type":"string"},"format":{"enum":["gltf","glb"]},"mediaType":{"enum":["model/gltf+json","model/gltf-binary"]}}}}},"ObjectPublicationRequest":{"type":"object","additionalProperties":false,"required":["metadata"],"properties":{"metadata":{"$ref":"#/components/schemas/ObjectPublicationMetadata"},"representation":{"type":"object"},"sourceUrl":{"type":"string","format":"uri","pattern":"^https://"},"stagedKey":{"type":"string"}},"oneOf":[{"required":["sourceUrl"]},{"required":["stagedKey"]}]},"MultipartObjectPublication":{"type":"object","required":["metadata","asset"],"properties":{"metadata":{"type":"string","description":"JSON publication metadata including a representation descriptor"},"representation":{"type":"string","description":"Optional JSON representation descriptor override"},"asset":{"type":"string","format":"binary"}}},"PublicationResult":{"oneOf":[{"type":"object","required":["publicationId","object","manifest","urls"],"properties":{"publicationId":{"type":"string"},"object":{"type":"object"},"manifest":{"$ref":"#/components/schemas/ObjectManifest"},"urls":{"type":"object"}}},{"type":"object","required":["publicationId","world","manifest","urls"],"properties":{"publicationId":{"type":"string"},"world":{"type":"object"},"manifest":{"$ref":"#/components/schemas/WorldManifest"},"urls":{"type":"object"}}}]},"StagingRequest":{"type":"object","additionalProperties":false,"required":["mediaType"],"properties":{"mediaType":{"enum":["model/gltf-binary","model/gltf+json"]},"byteLength":{"type":"integer","minimum":1,"maximum":104857600}}},"StagingResponse":{"type":"object","required":["key","uploadUrl","expiresIn","method","headers"],"properties":{"key":{"type":"string"},"uploadUrl":{"type":"string","format":"uri"},"expiresIn":{"type":"integer"},"method":{"const":"PUT"},"headers":{"type":"object"}}},"GenerationRequest":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"type":"string","minLength":3,"maxLength":2000},"callbackUrl":{"type":"string","format":"uri"}}},"Health":{"type":"object","required":["status","service","timestamp"],"properties":{"status":{"const":"ok"},"service":{"type":"string"},"timestamp":{"type":"string","format":"date-time"}}},"Readiness":{"type":"object","required":["status","dependencies","timestamp"],"properties":{"status":{"enum":["ready","not_ready"]},"dependencies":{"type":"object"},"timestamp":{"type":"string","format":"date-time"}}}}}}