{"openapi":"3.1.1","info":{"title":"Maphere customer API","version":"1.0.0","description":"Private preview. Secret map-scoped server credentials only. All responses are no-store. Content writes change the draft; only workspace owners/admins publish through the studio. No npm release or deployment is implied by this contract."},"servers":[{"url":"https://maphere.app","description":"Requires a compatible platform deployment"}],"security":[{"mapApiKey":[]}],"tags":[{"name":"Viewer access"},{"name":"Place content"},{"name":"Export"}],"paths":{"/api/v1/maps/{publicId}/viewer-sessions":{"post":{"operationId":"createViewerSession","tags":["Viewer access"],"summary":"Create a five-minute viewing token","x-required-scope":"viewer:tokens","description":"Call from your backend after authenticating and authorizing the visitor. Parent origin must exactly match the map allowlist. A token is pinned to one map, origin, sharing version and issuing key. Keys, map changes, unpublishing and suspension can revoke it earlier. Max 1,000 active sessions per key.","parameters":[{"name":"publicId","in":"path","required":true,"description":"SDK map UUID from Share, never a private draft map ID.","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViewerSessionInput"}}}},"responses":{"201":{"description":"Success","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViewerSession"}}}},"400":{"description":"Invalid request or unavailable resource","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, expired, revoked or wrong-map credential","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Scope, field or origin denied","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Invalid request or unavailable resource","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Pagination snapshot changed","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"Draft revision conflict","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Invalid request or unavailable resource","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Invalid request or unavailable resource","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"Draft If-Match required","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit; wait at least Retry-After seconds","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}},"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds before retry."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary service failure","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}},"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds before retry."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/maps/{publicId}/places":{"get":{"operationId":"listPlaces","tags":["Place content"],"summary":"Read approved content fields","x-required-scope":"places:read","description":"Definitions and values are filtered by contentTypeId.fieldId grants. IDs and floor relationships are included, geometry/internal names are excluded. Private fields appear only in draft reads when explicitly granted. Pagination is pinned to the publication ID or draft revision and key ID; restart after CURSOR_EXPIRED. Read a draft ETag before updating.","parameters":[{"name":"publicId","in":"path","required":true,"description":"SDK map UUID from Share, never a private draft map ID.","schema":{"type":"string","format":"uuid"}},{"name":"stage","in":"query","schema":{"type":"string","enum":["published","draft"],"default":"published"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"cursor","in":"query","schema":{"type":"string","maxLength":512},"description":"Opaque cursor from the previous response. Do not construct or persist it."}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}},"ETag":{"description":"Draft: \"draft:<revision>\". Published: \"published:<publication UUID>\".","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlacesPage"}}}},"400":{"description":"Invalid request or unavailable resource","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, expired, revoked or wrong-map credential","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Scope, field or origin denied","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Invalid request or unavailable resource","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Pagination snapshot changed","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"Draft revision conflict","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Invalid request or unavailable resource","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Invalid request or unavailable resource","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"Draft If-Match required","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit; wait at least Retry-After seconds","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}},"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds before retry."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary service failure","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}},"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds before retry."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/maps/{publicId}/places/{placeId}":{"patch":{"operationId":"updatePlace","tags":["Place content"],"summary":"Update approved draft fields","x-required-scope":"places:write","description":"Merge supplied values; null removes a value. Omitted fields remain unchanged. Types are validated against the map’s field definitions. Image asset IDs must already belong to the map. No geometry, schema, asset URL or publication changes. Request body limit 128 KiB. No automatic retry or idempotency key; after a timeout read the draft before deciding whether to retry.","parameters":[{"name":"publicId","in":"path","required":true,"description":"SDK map UUID from Share, never a private draft map ID.","schema":{"type":"string","format":"uuid"}},{"name":"placeId","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"}},{"name":"If-Match","in":"header","required":true,"schema":{"type":"string","pattern":"^\"draft:[1-9][0-9]{0,9}\"$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlacePatch"}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}},"ETag":{"description":"Draft: \"draft:<revision>\". Published: \"published:<publication UUID>\".","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaceUpdate"}}}},"400":{"description":"Invalid request or unavailable resource","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, expired, revoked or wrong-map credential","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Scope, field or origin denied","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Invalid request or unavailable resource","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Pagination snapshot changed","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"Draft revision conflict","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Invalid request or unavailable resource","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Invalid request or unavailable resource","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"Draft If-Match required","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit; wait at least Retry-After seconds","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}},"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds before retry."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary service failure","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}},"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds before retry."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/maps/{publicId}/export":{"get":{"operationId":"exportMap","tags":["Export"],"summary":"Export the active publication","x-required-scope":"map:export","description":"Explicit bulk export of all published geometry and public fields, independent of read-field grants. Never includes private drafts. Image bytes are not included; asset URLs retain normal active-publication authorization and are not portable offline. This scope does not publish, reveal private fields, or grant viewer tokens. Generated third-party geometry retains attribution and licence obligations.","parameters":[{"name":"publicId","in":"path","required":true,"description":"SDK map UUID from Share, never a private draft map ID.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicationExport"}}}},"400":{"description":"Invalid request or unavailable resource","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, expired, revoked or wrong-map credential","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Scope, field or origin denied","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Invalid request or unavailable resource","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Pagination snapshot changed","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"Draft revision conflict","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Invalid request or unavailable resource","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Invalid request or unavailable resource","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"Draft If-Match required","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit; wait at least Retry-After seconds","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}},"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds before retry."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary service failure","headers":{"X-Request-Id":{"description":"Server-generated support correlation ID. No credential content.","schema":{"type":"string","format":"uuid"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}},"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds before retry."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"mapApiKey":{"type":"http","scheme":"bearer","bearerFormat":"mhk_<256-bit base64url secret>","description":"Server-only key, created by a workspace owner/admin in Share → Developer access. Never place it in browser code, URLs or logs. 120 authenticated API requests per fixed minute per key."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string","format":"uuid"}}}}},"ViewerSessionInput":{"type":"object","properties":{"parentOrigin":{"type":"string","maxLength":250}},"required":["parentOrigin"],"additionalProperties":false},"PlacePatch":{"type":"object","properties":{"values":{"type":"object","propertyNames":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"additionalProperties":{"anyOf":[{"anyOf":[{"type":"string","maxLength":10000},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"assetId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"alt":{"type":"string","maxLength":300}},"required":["assetId","alt"],"additionalProperties":false},{"type":"object","properties":{"url":{"type":"string","format":"uri"},"label":{"type":"string","maxLength":100}},"required":["url","label"],"additionalProperties":false},{"type":"object","properties":{"timezone":{"type":"string"},"week":{"minItems":7,"maxItems":7,"type":"array","items":{"oneOf":[{"type":"object","properties":{"state":{"type":"string","const":"unknown"}},"required":["state"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","const":"closed"}},"required":["state"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","const":"allDay"}},"required":["state"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","const":"timed"},"intervals":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"object","properties":{"start":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"end":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"nextDay":{"default":false,"type":"boolean"}},"required":["start","end"],"additionalProperties":false}}},"required":["state","intervals"],"additionalProperties":false}]}},"exceptions":{"default":[],"maxItems":366,"type":"array","items":{"type":"object","properties":{"date":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"schedule":{"oneOf":[{"type":"object","properties":{"state":{"type":"string","const":"unknown"}},"required":["state"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","const":"closed"}},"required":["state"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","const":"allDay"}},"required":["state"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","const":"timed"},"intervals":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"object","properties":{"start":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"end":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"nextDay":{"default":false,"type":"boolean"}},"required":["start","end"],"additionalProperties":false}}},"required":["state","intervals"],"additionalProperties":false}]}},"required":["date","schedule"],"additionalProperties":false}}},"required":["timezone","week"],"additionalProperties":false}]},{"type":"null"}]}}},"required":["values"],"additionalProperties":false},"FieldValue":{"anyOf":[{"type":"string","maxLength":10000},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"assetId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"alt":{"type":"string","maxLength":300}},"required":["assetId","alt"],"additionalProperties":false},{"type":"object","properties":{"url":{"type":"string","format":"uri"},"label":{"type":"string","maxLength":100}},"required":["url","label"],"additionalProperties":false},{"type":"object","properties":{"timezone":{"type":"string"},"week":{"minItems":7,"maxItems":7,"type":"array","items":{"oneOf":[{"type":"object","properties":{"state":{"type":"string","const":"unknown"}},"required":["state"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","const":"closed"}},"required":["state"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","const":"allDay"}},"required":["state"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","const":"timed"},"intervals":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"object","properties":{"start":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"end":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"nextDay":{"default":false,"type":"boolean"}},"required":["start","end"],"additionalProperties":false}}},"required":["state","intervals"],"additionalProperties":false}]}},"exceptions":{"default":[],"maxItems":366,"type":"array","items":{"type":"object","properties":{"date":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"schedule":{"oneOf":[{"type":"object","properties":{"state":{"type":"string","const":"unknown"}},"required":["state"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","const":"closed"}},"required":["state"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","const":"allDay"}},"required":["state"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","const":"timed"},"intervals":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"object","properties":{"start":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"end":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"nextDay":{"default":false,"type":"boolean"}},"required":["start","end"],"additionalProperties":false}}},"required":["state","intervals"],"additionalProperties":false}]}},"required":["date","schedule"],"additionalProperties":false}}},"required":["timezone","week"],"additionalProperties":false}]},"Publication":{"type":"object","properties":{"publicSchemaVersion":{"type":"number","const":1},"categories":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"name":{"type":"string","minLength":1,"maxLength":80},"icon":{"type":"string","enum":["none","utensils-crossed","coffee","shopping-bag","shopping-basket","store","shirt","house","heart-pulse","landmark","wrench","info","map-pin","toilet","accessibility","car","dumbbell","clapperboard","graduation-cap","flower-2","paw-print","smartphone"]},"color":{"type":"string","pattern":"^#[a-fA-F0-9]{6}$"},"labelStyle":{"type":"string","enum":["floating","surface"]}},"required":["id","name","icon","color","labelStyle"],"additionalProperties":false}},"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"sourceRevision":{"type":"integer","minimum":0,"maximum":9007199254740991},"settings":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":150},"description":{"type":"string","maxLength":300},"timezone":{"type":"string"},"defaultLevelId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"accentColor":{"type":"string","pattern":"^#[a-fA-F0-9]{6}$"},"geography":{"type":"object","properties":{"latitude":{"type":"number","minimum":-84,"maximum":84},"longitude":{"type":"number","minimum":-180,"maximum":180},"bearing":{"type":"number","minimum":-180,"maximum":180},"showInEditor":{"type":"boolean"},"showInViewer":{"type":"boolean"},"showVisitorLocation":{"type":"boolean"}},"required":["latitude","longitude","bearing","showInEditor","showInViewer"],"additionalProperties":false},"basemapStyle":{"type":"string","enum":["positron","liberty","bright"]}},"required":["name","description","timezone","defaultLevelId","accentColor"],"additionalProperties":false},"levels":{"minItems":1,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"name":{"type":"string","minLength":1,"maxLength":80},"shortName":{"type":"string","minLength":1,"maxLength":6},"order":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"baseElevation":{"type":"number","minimum":-100,"maximum":1000}},"required":["id","name","shortName","order","baseElevation"],"additionalProperties":false}},"objects":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"levelId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"placeId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"visible":{"type":"boolean"},"selectable":{"type":"boolean"},"elevation":{"type":"number","minimum":-20,"maximum":100},"color":{"type":"string","pattern":"^#[a-fA-F0-9]{6}$"},"source":{"type":"object","properties":{"provider":{"type":"string","const":"openfreemap"},"feature":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,100}$"},"category":{"type":"string","enum":["buildings","roads","paths","land","water","trees"]}},"required":["provider","feature","category"],"additionalProperties":false},"label":{"type":"object","properties":{"position":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y"],"additionalProperties":false},"fieldId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"style":{"type":"string","enum":["surface","floating"]},"color":{"type":"string","pattern":"^#[a-fA-F0-9]{6}$"},"icon":{"type":"string","enum":["none","utensils-crossed","coffee","shopping-bag","shopping-basket","store","shirt","house","heart-pulse","landmark","wrench","info","map-pin","toilet","accessibility","car","dumbbell","clapperboard","graduation-cap","flower-2","paw-print","smartphone"]},"scale":{"type":"number","minimum":0.5,"maximum":2},"rotation":{"default":0,"type":"number","minimum":-180,"maximum":180},"image":{"type":"object","properties":{"assetId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"alt":{"type":"string","maxLength":300},"width":{"type":"number","exclusiveMinimum":0,"maximum":1000},"height":{"type":"number","exclusiveMinimum":0,"maximum":1000}},"required":["assetId","alt","width","height"],"additionalProperties":false}},"required":["position","fieldId"],"additionalProperties":false},"kind":{"type":"string","const":"plane"},"geometry":{"type":"object","properties":{"outer":{"minItems":3,"maxItems":256,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000},"curve":{"type":"object","properties":{"kind":{"type":"string","const":"cubic"},"control1":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y"],"additionalProperties":false},"control2":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y"],"additionalProperties":false}},"required":["kind","control1","control2"],"additionalProperties":false}},"required":["x","y"],"additionalProperties":false}},"holes":{"default":[],"maxItems":16,"type":"array","items":{"minItems":3,"maxItems":256,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000},"curve":{"type":"object","properties":{"kind":{"type":"string","const":"cubic"},"control1":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y"],"additionalProperties":false},"control2":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y"],"additionalProperties":false}},"required":["kind","control1","control2"],"additionalProperties":false}},"required":["x","y"],"additionalProperties":false}}}},"required":["outer"],"additionalProperties":false},"height":{"type":"number","minimum":0,"maximum":100},"opacity":{"default":1,"type":"number","minimum":0,"maximum":1}},"required":["id","levelId","visible","selectable","elevation","color","kind","geometry","height"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"levelId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"placeId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"visible":{"type":"boolean"},"selectable":{"type":"boolean"},"elevation":{"type":"number","minimum":-20,"maximum":100},"color":{"type":"string","pattern":"^#[a-fA-F0-9]{6}$"},"source":{"type":"object","properties":{"provider":{"type":"string","const":"openfreemap"},"feature":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,100}$"},"category":{"type":"string","enum":["buildings","roads","paths","land","water","trees"]}},"required":["provider","feature","category"],"additionalProperties":false},"label":{"type":"object","properties":{"position":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y"],"additionalProperties":false},"fieldId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"style":{"type":"string","enum":["surface","floating"]},"color":{"type":"string","pattern":"^#[a-fA-F0-9]{6}$"},"icon":{"type":"string","enum":["none","utensils-crossed","coffee","shopping-bag","shopping-basket","store","shirt","house","heart-pulse","landmark","wrench","info","map-pin","toilet","accessibility","car","dumbbell","clapperboard","graduation-cap","flower-2","paw-print","smartphone"]},"scale":{"type":"number","minimum":0.5,"maximum":2},"rotation":{"default":0,"type":"number","minimum":-180,"maximum":180},"image":{"type":"object","properties":{"assetId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"alt":{"type":"string","maxLength":300},"width":{"type":"number","exclusiveMinimum":0,"maximum":1000},"height":{"type":"number","exclusiveMinimum":0,"maximum":1000}},"required":["assetId","alt","width","height"],"additionalProperties":false}},"required":["position","fieldId"],"additionalProperties":false},"kind":{"type":"string","const":"wall"},"start":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y"],"additionalProperties":false},"end":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y"],"additionalProperties":false},"curve":{"type":"object","properties":{"kind":{"type":"string","const":"cubic"},"control1":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y"],"additionalProperties":false},"control2":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y"],"additionalProperties":false}},"required":["kind","control1","control2"],"additionalProperties":false},"width":{"type":"number","exclusiveMinimum":0,"maximum":20},"height":{"type":"number","minimum":0,"maximum":100},"opacity":{"default":1,"type":"number","minimum":0,"maximum":1}},"required":["id","levelId","visible","selectable","elevation","color","kind","start","end","width","height"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"levelId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"placeId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"visible":{"type":"boolean"},"selectable":{"type":"boolean"},"elevation":{"type":"number","minimum":-20,"maximum":100},"color":{"type":"string","pattern":"^#[a-fA-F0-9]{6}$"},"source":{"type":"object","properties":{"provider":{"type":"string","const":"openfreemap"},"feature":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,100}$"},"category":{"type":"string","enum":["buildings","roads","paths","land","water","trees"]}},"required":["provider","feature","category"],"additionalProperties":false},"label":{"type":"object","properties":{"position":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y"],"additionalProperties":false},"fieldId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"style":{"type":"string","enum":["surface","floating"]},"color":{"type":"string","pattern":"^#[a-fA-F0-9]{6}$"},"icon":{"type":"string","enum":["none","utensils-crossed","coffee","shopping-bag","shopping-basket","store","shirt","house","heart-pulse","landmark","wrench","info","map-pin","toilet","accessibility","car","dumbbell","clapperboard","graduation-cap","flower-2","paw-print","smartphone"]},"scale":{"type":"number","minimum":0.5,"maximum":2},"rotation":{"default":0,"type":"number","minimum":-180,"maximum":180},"image":{"type":"object","properties":{"assetId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"alt":{"type":"string","maxLength":300},"width":{"type":"number","exclusiveMinimum":0,"maximum":1000},"height":{"type":"number","exclusiveMinimum":0,"maximum":1000}},"required":["assetId","alt","width","height"],"additionalProperties":false}},"required":["position","fieldId"],"additionalProperties":false},"kind":{"type":"string","const":"path"},"pathType":{"type":"string","enum":["walkway","road","trail"]},"start":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y"],"additionalProperties":false},"end":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y"],"additionalProperties":false},"curve":{"type":"object","properties":{"kind":{"type":"string","const":"cubic"},"control1":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y"],"additionalProperties":false},"control2":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y"],"additionalProperties":false}},"required":["kind","control1","control2"],"additionalProperties":false},"width":{"type":"number","exclusiveMinimum":0,"maximum":20},"height":{"type":"number","minimum":0,"maximum":1},"opacity":{"default":1,"type":"number","minimum":0,"maximum":1}},"required":["id","levelId","visible","selectable","elevation","color","kind","pathType","start","end","width","height"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"levelId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"placeId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"visible":{"type":"boolean"},"selectable":{"type":"boolean"},"elevation":{"type":"number","minimum":-20,"maximum":100},"color":{"type":"string","pattern":"^#[a-fA-F0-9]{6}$"},"source":{"type":"object","properties":{"provider":{"type":"string","const":"openfreemap"},"feature":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,100}$"},"category":{"type":"string","enum":["buildings","roads","paths","land","water","trees"]}},"required":["provider","feature","category"],"additionalProperties":false},"label":{"type":"object","properties":{"position":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y"],"additionalProperties":false},"fieldId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"style":{"type":"string","enum":["surface","floating"]},"color":{"type":"string","pattern":"^#[a-fA-F0-9]{6}$"},"icon":{"type":"string","enum":["none","utensils-crossed","coffee","shopping-bag","shopping-basket","store","shirt","house","heart-pulse","landmark","wrench","info","map-pin","toilet","accessibility","car","dumbbell","clapperboard","graduation-cap","flower-2","paw-print","smartphone"]},"scale":{"type":"number","minimum":0.5,"maximum":2},"rotation":{"default":0,"type":"number","minimum":-180,"maximum":180},"image":{"type":"object","properties":{"assetId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"alt":{"type":"string","maxLength":300},"width":{"type":"number","exclusiveMinimum":0,"maximum":1000},"height":{"type":"number","exclusiveMinimum":0,"maximum":1000}},"required":["assetId","alt","width","height"],"additionalProperties":false}},"required":["position","fieldId"],"additionalProperties":false},"kind":{"type":"string","const":"marker"},"position":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y"],"additionalProperties":false},"symbol":{"type":"string","enum":["pin","toilets","accessible-toilets","lift","information","entrance","parking","stairs"]}},"required":["id","levelId","visible","selectable","elevation","color","kind","position","symbol"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"levelId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"placeId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"visible":{"type":"boolean"},"selectable":{"type":"boolean"},"elevation":{"type":"number","minimum":-20,"maximum":100},"color":{"type":"string","pattern":"^#[a-fA-F0-9]{6}$"},"source":{"type":"object","properties":{"provider":{"type":"string","const":"openfreemap"},"feature":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,100}$"},"category":{"type":"string","enum":["buildings","roads","paths","land","water","trees"]}},"required":["provider","feature","category"],"additionalProperties":false},"label":{"type":"object","properties":{"position":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y"],"additionalProperties":false},"fieldId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"style":{"type":"string","enum":["surface","floating"]},"color":{"type":"string","pattern":"^#[a-fA-F0-9]{6}$"},"icon":{"type":"string","enum":["none","utensils-crossed","coffee","shopping-bag","shopping-basket","store","shirt","house","heart-pulse","landmark","wrench","info","map-pin","toilet","accessibility","car","dumbbell","clapperboard","graduation-cap","flower-2","paw-print","smartphone"]},"scale":{"type":"number","minimum":0.5,"maximum":2},"rotation":{"default":0,"type":"number","minimum":-180,"maximum":180},"image":{"type":"object","properties":{"assetId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"alt":{"type":"string","maxLength":300},"width":{"type":"number","exclusiveMinimum":0,"maximum":1000},"height":{"type":"number","exclusiveMinimum":0,"maximum":1000}},"required":["assetId","alt","width","height"],"additionalProperties":false}},"required":["position","fieldId"],"additionalProperties":false},"kind":{"type":"string","const":"decoration"},"position":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y"],"additionalProperties":false},"decoration":{"type":"string","enum":["tree","pine","shrub","planter","bench","stairs","escalator","ramp","elevator","reception","chair","table","kiosk","queue-barrier","shelving","vending-machine","recycling-station","stage","bicycle-rack","atm","palm","cypress","hedge","flower-bed","picnic-table","parasol","canopy","lamp-post","bollard","fountain","sofa","armchair","stool","booth","checkout-counter","display-case","clothes-rack","shopping-trolley","trolley-bay","locker-bank","water-station","waste-bin","toilet","wash-basin","urinal","turnstile","ev-charger","car","fence","bus-shelter"]},"height":{"type":"number","minimum":0.1,"maximum":20},"rotation":{"type":"number","minimum":-180,"maximum":180},"length":{"type":"number","minimum":0.5,"maximum":100},"width":{"type":"number","minimum":0.5,"maximum":20},"parameters":{"type":"object","properties":{"seatShape":{"type":"string","enum":["round","square"]},"boothShape":{"type":"string","enum":["straight","corner"]},"rackStyle":{"type":"string","enum":["straight","round"]},"lidStyle":{"type":"string","enum":["open","hooded"]},"gateStyle":{"type":"string","enum":["tripod","swing"]},"vehicleStyle":{"type":"string","enum":["sedan","suv"]},"fenceStyle":{"type":"string","enum":["rail","picket"]},"conveyor":{"type":"boolean"},"bottleFiller":{"type":"boolean"},"dividerPanels":{"type":"boolean"},"dualOutlet":{"type":"boolean"},"sidePanels":{"type":"boolean"},"seats":{"type":"integer","minimum":1,"maximum":6},"columns":{"type":"integer","minimum":1,"maximum":8},"rows":{"type":"integer","minimum":1,"maximum":6},"basins":{"type":"integer","minimum":1,"maximum":4},"counterShape":{"type":"string","enum":["straight","l"]},"backrest":{"type":"boolean"},"armrests":{"type":"boolean"},"tableShape":{"type":"string","enum":["rectangle","round"]},"screenTilt":{"type":"number","minimum":0,"maximum":30},"pedestalHeight":{"type":"number","minimum":0,"maximum":20},"sections":{"type":"integer","minimum":1,"maximum":12},"shelves":{"type":"integer","minimum":2,"maximum":8},"bays":{"type":"integer","minimum":1,"maximum":6},"vendingStyle":{"type":"string","enum":["snack","drink"]},"compartments":{"type":"integer","minimum":2,"maximum":5},"compartmentColors":{"minItems":2,"maxItems":5,"type":"array","items":{"type":"string","pattern":"^#[a-fA-F0-9]{6}$"}},"skirt":{"type":"boolean"},"loops":{"type":"integer","minimum":1,"maximum":12},"flowerColor":{"type":"string","pattern":"^#[a-fA-F0-9]{6}$"},"lampStyle":{"type":"string","enum":["single","double"]},"bollardStyle":{"type":"string","enum":["plain","lit"]},"basinShape":{"type":"string","enum":["round","square"]}},"additionalProperties":false}},"required":["id","levelId","visible","selectable","elevation","color","kind","position","decoration","height","rotation"],"additionalProperties":false}]}},"places":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"categoryId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},{"type":"null"}]},"contentTypeId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"values":{"type":"object","propertyNames":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"additionalProperties":{"anyOf":[{"type":"string","maxLength":10000},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"assetId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"alt":{"type":"string","maxLength":300}},"required":["assetId","alt"],"additionalProperties":false},{"type":"object","properties":{"url":{"type":"string","format":"uri"},"label":{"type":"string","maxLength":100}},"required":["url","label"],"additionalProperties":false},{"type":"object","properties":{"timezone":{"type":"string"},"week":{"minItems":7,"maxItems":7,"type":"array","items":{"oneOf":[{"type":"object","properties":{"state":{"type":"string","const":"unknown"}},"required":["state"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","const":"closed"}},"required":["state"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","const":"allDay"}},"required":["state"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","const":"timed"},"intervals":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"object","properties":{"start":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"end":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"nextDay":{"default":false,"type":"boolean"}},"required":["start","end"],"additionalProperties":false}}},"required":["state","intervals"],"additionalProperties":false}]}},"exceptions":{"default":[],"maxItems":366,"type":"array","items":{"type":"object","properties":{"date":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"schedule":{"oneOf":[{"type":"object","properties":{"state":{"type":"string","const":"unknown"}},"required":["state"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","const":"closed"}},"required":["state"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","const":"allDay"}},"required":["state"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","const":"timed"},"intervals":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"object","properties":{"start":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"end":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"nextDay":{"default":false,"type":"boolean"}},"required":["start","end"],"additionalProperties":false}}},"required":["state","intervals"],"additionalProperties":false}]}},"required":["date","schedule"],"additionalProperties":false}}},"required":["timezone","week"],"additionalProperties":false}]}}},"required":["id","contentTypeId","values"],"additionalProperties":false}},"contentTypes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"name":{"type":"string","minLength":1,"maxLength":100},"fields":{"minItems":1,"maxItems":64,"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"label":{"type":"string","minLength":1,"maxLength":100},"visibility":{"type":"string","enum":["public","private"]},"required":{"default":false,"type":"boolean"},"type":{"type":"string","const":"text"}},"required":["id","label","visibility","type"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"label":{"type":"string","minLength":1,"maxLength":100},"visibility":{"type":"string","enum":["public","private"]},"required":{"default":false,"type":"boolean"},"type":{"type":"string","const":"longText"}},"required":["id","label","visibility","type"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"label":{"type":"string","minLength":1,"maxLength":100},"visibility":{"type":"string","enum":["public","private"]},"required":{"default":false,"type":"boolean"},"type":{"type":"string","const":"email"}},"required":["id","label","visibility","type"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"label":{"type":"string","minLength":1,"maxLength":100},"visibility":{"type":"string","enum":["public","private"]},"required":{"default":false,"type":"boolean"},"type":{"type":"string","const":"phone"}},"required":["id","label","visibility","type"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"label":{"type":"string","minLength":1,"maxLength":100},"visibility":{"type":"string","enum":["public","private"]},"required":{"default":false,"type":"boolean"},"type":{"type":"string","const":"boolean"}},"required":["id","label","visibility","type"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"label":{"type":"string","minLength":1,"maxLength":100},"visibility":{"type":"string","enum":["public","private"]},"required":{"default":false,"type":"boolean"},"type":{"type":"string","const":"image"}},"required":["id","label","visibility","type"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"label":{"type":"string","minLength":1,"maxLength":100},"visibility":{"type":"string","enum":["public","private"]},"required":{"default":false,"type":"boolean"},"type":{"type":"string","const":"link"}},"required":["id","label","visibility","type"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"label":{"type":"string","minLength":1,"maxLength":100},"visibility":{"type":"string","enum":["public","private"]},"required":{"default":false,"type":"boolean"},"type":{"type":"string","const":"hours"}},"required":["id","label","visibility","type"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"label":{"type":"string","minLength":1,"maxLength":100},"visibility":{"type":"string","enum":["public","private"]},"required":{"default":false,"type":"boolean"},"type":{"type":"string","const":"number"},"min":{"type":"number"},"max":{"type":"number"}},"required":["id","label","visibility","type"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"label":{"type":"string","minLength":1,"maxLength":100},"visibility":{"type":"string","enum":["public","private"]},"required":{"default":false,"type":"boolean"},"type":{"type":"string","const":"choice"},"options":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"label":{"type":"string","minLength":1,"maxLength":100}},"required":["id","label"],"additionalProperties":false}}},"required":["id","label","visibility","type","options"],"additionalProperties":false}]}},"titleFieldId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"categoryFieldId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"searchFieldIds":{"maxItems":20,"type":"array","items":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}},"layoutId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}},"required":["id","name","fields","titleFieldId","searchFieldIds","layoutId"],"additionalProperties":false}},"detailsLayouts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"contentTypeId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"sections":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"fieldId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"presentation":{"type":"string","enum":["title","text","badge","link","hours","image","logo"]}},"required":["id","fieldId","presentation"],"additionalProperties":false}}},"required":["id","contentTypeId","sections"],"additionalProperties":false}},"assets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"purpose":{"type":"string","const":"reference"},"url":{"type":"string"}},"required":["id","url"],"additionalProperties":false}},"navigation":{"type":"object","properties":{"version":{"type":"number","const":1},"nodes":{"maxItems":5000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"name":{"type":"string","minLength":1,"maxLength":80},"levelId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"position":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y"],"additionalProperties":false},"elevation":{"default":0,"type":"number","minimum":-20,"maximum":100},"placeId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"stepFree":{"default":"unknown","type":"string","enum":["yes","no","unknown"]},"closed":{"default":false,"type":"boolean"}},"required":["id","levelId","position"],"additionalProperties":false}},"links":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"name":{"type":"string","minLength":1,"maxLength":100},"from":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"to":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"kind":{"type":"string","enum":["walk","stairs","escalator","ramp"]},"direction":{"type":"string","enum":["forward","both"]},"via":{"default":[],"maxItems":128,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":-10000,"maximum":10000},"y":{"type":"number","minimum":-10000,"maximum":10000},"z":{"type":"number","minimum":-120,"maximum":1100}},"required":["x","y","z"],"additionalProperties":false}},"traversalSeconds":{"type":"number","exclusiveMinimum":0,"maximum":86400},"stepFree":{"default":"unknown","type":"string","enum":["yes","no","unknown"]},"closed":{"default":false,"type":"boolean"}},"required":["id","from","to","kind","direction"],"additionalProperties":false}},"elevators":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"name":{"type":"string","minLength":1,"maxLength":100},"stops":{"minItems":2,"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}},"waitSeconds":{"default":30,"type":"number","minimum":0,"maximum":3600},"doorSeconds":{"default":5,"type":"number","minimum":0,"maximum":300},"secondsPerMetre":{"default":1,"type":"number","exclusiveMinimum":0,"maximum":60},"stepFree":{"default":"unknown","type":"string","enum":["yes","no","unknown"]},"closed":{"default":false,"type":"boolean"}},"required":["id","name","stops"],"additionalProperties":false}}},"required":["version","nodes","links","elevators"],"additionalProperties":false}},"required":["publicSchemaVersion","id","sourceRevision","settings","levels","objects","places","contentTypes","detailsLayouts","assets"],"additionalProperties":false},"ViewerSession":{"type":"object","required":["token","expiresAt","mapId","parentOrigin"],"properties":{"token":{"type":"string","pattern":"^mhv_[A-Za-z0-9_-]{43}$","description":"Bearer viewing token. Keep in memory; never store or log it."},"expiresAt":{"type":"string","format":"date-time"},"mapId":{"type":"string","format":"uuid"},"parentOrigin":{"type":"string","format":"uri"}}},"ApiField":{"type":"object","required":["id","label","type","required"],"properties":{"id":{"type":"string"},"label":{"type":"string"},"type":{"type":"string","enum":["text","longText","email","phone","number","boolean","choice","image","link","hours"]},"required":{"type":"boolean"},"options":{"type":"array","items":{"type":"object","required":["id","label"],"properties":{"id":{"type":"string"},"label":{"type":"string"}}}},"min":{"type":"number"},"max":{"type":"number"}}},"PlacesPage":{"type":"object","required":["mapId","stage","revision","places","contentTypes","nextCursor"],"properties":{"mapId":{"type":"string","format":"uuid"},"stage":{"type":"string","enum":["published","draft"]},"revision":{"type":"integer","minimum":1},"nextCursor":{"type":["string","null"],"maxLength":512},"places":{"type":"array","maxItems":100,"items":{"type":"object","required":["id","contentTypeId","floorIds","values"],"properties":{"id":{"type":"string"},"contentTypeId":{"type":"string"},"floorIds":{"type":"array","items":{"type":"string"}},"values":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/FieldValue"}}}}},"contentTypes":{"type":"array","maxItems":64,"items":{"type":"object","required":["id","name","fields"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"fields":{"type":"array","items":{"$ref":"#/components/schemas/ApiField"}}}}}}},"PlaceUpdate":{"type":"object","required":["mapId","placeId","revision","stage"],"properties":{"mapId":{"type":"string","format":"uuid"},"placeId":{"type":"string"},"revision":{"type":"integer","minimum":1},"stage":{"const":"draft","type":"string"}}},"PublicationExport":{"type":"object","required":["format","version","mapId","document"],"properties":{"format":{"type":"string","const":"maphere-publication"},"version":{"type":"integer","const":1},"mapId":{"type":"string","format":"uuid"},"document":{"$ref":"#/components/schemas/Publication"}}}}}}