{"openapi":"3.0.3","info":{"title":"HVAKR API","description":"","termsOfService":"https://www.hvakr.com/terms-of-service","contact":{"email":"support@hvakr.com"},"version":"0.6.0"},"servers":[{"url":"https://api.hvakr.com/v0","description":"","variables":{}}],"tags":[{"name":"account"},{"name":"projects"},{"name":"calculations"},{"name":"jobs"},{"name":"products"},{"name":"revit"}],"paths":{"/me":{"get":{"tags":["account"],"summary":"Get the authenticated caller","description":"Returns the caller's identity, organization memberships, plan entitlements, and per-minute rate-limit budget. A good first call to confirm the token and report capabilities.","operationId":"getMe","responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Me"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid access token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient license, role, or organization access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request body failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects":{"post":{"tags":["projects"],"summary":"Create project","description":"\n<section>\n\t<h4>Downloads</h4>\n\t<ul>\n\t\t<li><a download href=\"/assets/hvakr-project-creation-request-body-schema.json\">Project Creation Input Schema</a></li><li><a download href=\"/assets/ashrae-wall-types.csv\">ASHRAE Wall Types</a></li><li><a download href=\"/assets/ashrae-roof-types.csv\">ASHRAE Roof Types</a></li><li><a download href=\"/assets/ashrae-window-types.csv\">ASHRAE Window Types</a></li><li><a download href=\"/assets/ashrae-building-types.csv\">ASHRAE Building Types</a></li>\n\t</ul>\n</section>\n","operationId":"createProject","parameters":[{"name":"Idempotency-Key","in":"header","description":"Optional idempotency key. Retrying a POST with the same key returns the original result instead of repeating the action.","required":false,"schema":{"type":"string"}}],"requestBody":{"description":"Create a new project in the store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpandedProjectWritePost"}}},"required":true},"responses":{"201":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}}}}},"400":{"description":"Invalid input"},"422":{"description":"Validation exception"}}},"get":{"tags":["projects"],"summary":"List projects","description":"Returns a paginated list of project summaries the authenticated user can access, ordered by project id. Use the returned `nextCursor` as the `cursor` parameter to fetch the next page.","operationId":"getProjects","parameters":[{"name":"limit","in":"query","description":"Maximum number of projects to return (1–100, default 100)","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","description":"Opaque pagination cursor — pass the `nextCursor` from the previous page to fetch the next page","required":false,"schema":{"type":"string"}},{"name":"search","in":"query","description":"Case-insensitive substring filter over project name, number, and address","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","description":"Only return projects with this status","required":false,"schema":{"type":"string","enum":["new","inProgress","inReview","done","archived"]}},{"name":"projectType","in":"query","description":"Only return projects of this type","required":false,"schema":{"type":"string","enum":["residential","commercial"]}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"required":["projects","hasMore","nextCursor"],"type":"object","properties":{"projects":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"number":{"type":"string"},"address":{"type":"string"},"status":{"type":"string","enum":["new","inProgress","inReview","done","archived"]},"projectType":{"type":"string","enum":["residential","commercial"]},"timestamp":{"type":"number"},"lastOpenTime":{"type":"number"}}}},"hasMore":{"type":"boolean"},"nextCursor":{"type":"string","nullable":true}}}}}}}}},"/projects/{projectId}":{"get":{"tags":["projects"],"summary":"Get project","description":"Returns a single project. Use `expand` to embed subcollections: `expand=true` for all, or a comma-separated list of keys (e.g. `spaces,zones,exports`). The `exports` subcollection is returned in the public export shape (never the raw stored doc).","operationId":"getProject","parameters":[{"name":"projectId","in":"path","description":"Project ID","required":true,"schema":{"type":"string"}},{"name":"expand","in":"query","description":"true/false to expand all subcollections, or a comma-separated list of subcollection keys.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpandedProjectPost"}}}},"400":{"description":"Invalid ID supplied"},"404":{"description":"Project not found"}}},"patch":{"tags":["projects"],"summary":"Update project","description":"Update project","operationId":"updateProject","parameters":[{"name":"projectId","in":"path","description":"Project ID","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Update a project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpandedProjectWritePatch"}}},"required":true},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}}}}},"400":{"description":"Invalid input"},"404":{"description":"Project not found"},"422":{"description":"Validation exception"}}},"delete":{"tags":["projects"],"summary":"Delete project","description":"Delete project","operationId":"deleteProject","parameters":[{"name":"projectId","in":"path","description":"ID of project to be deleted","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Project soft-deleted","content":{"application/json":{"schema":{"type":"object","required":["id","deleted"],"properties":{"id":{"type":"string"},"deleted":{"type":"boolean","enum":[true]}}}}}},"403":{"description":"Not authorized — deleting a project requires the OWNER role"},"404":{"description":"Project not found"}}}},"/projects/{projectId}/calculations":{"get":{"tags":["calculations"],"summary":"Get calculations","description":"Runs the calculator once and returns the requested calculation sections. Select sections with `include` (comma-separated); omit it to return every section (one run — the response can be large).","operationId":"getProjectCalculations","parameters":[{"name":"projectId","in":"path","description":"Project ID","required":true,"schema":{"type":"string"}},{"name":"include","in":"query","description":"Comma-separated calculation sections to compute and return. Omit for all sections.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["loads","register_schedule","dryside_graph","ventilation","equipment","checksums","airflows"]}}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectCalculations"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid access token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient license, role, or organization access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request body failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{projectId}/jobs":{"post":{"tags":["jobs"],"summary":"Create a job","description":"Creates a job. `type` selects the kind: `auto-group` and `check` run synchronously and return `completed` with a result; `auto-takeoff` and `export` return `queued` — poll GET /jobs/{jobId} until the status settles. Supports the Idempotency-Key header.","operationId":"createJob","parameters":[{"name":"projectId","in":"path","description":"Project ID","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Optional idempotency key. Retrying a POST with the same key returns the original result instead of repeating the action.","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobCreate"}}}},"responses":{"200":{"description":"sync job completed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"202":{"description":"async job queued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid access token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient license, role, or organization access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request body failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{projectId}/sheet-files":{"post":{"tags":["jobs"],"summary":"Upload a PDF sheet file","description":"Uploads exactly one PDF (maximum 30 MiB) and returns a `sheet-upload` job. Poll GET /jobs/{jobId}; when it completes, optionally PATCH sheets to place pages, then create a project-wide auto-takeoff job.","operationId":"createSheetFile","parameters":[{"name":"projectId","in":"path","description":"Project ID","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Optional idempotency key. Retrying a POST with the same key returns the original result instead of repeating the action.","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","format":"binary","description":"PDF file, maximum 30 MiB."},"name":{"type":"string","description":"Optional display name."}}}}}},"responses":{"202":{"description":"sheet-upload job queued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SheetUploadJob"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid access token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient license, role, or organization access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"PDF exceeds the 30 MiB API limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"File MIME type is not application/pdf","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request body failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{projectId}/jobs/{jobId}":{"get":{"tags":["jobs"],"summary":"Get a job","description":"Returns a job. `export` jobs derive status and download URLs from the linked export; `sheet-upload` jobs derive status, page state, and takeoff readiness from the linked sheet file and active placements.","operationId":"getJob","parameters":[{"name":"projectId","in":"path","description":"Project ID","required":true,"schema":{"type":"string"}},{"name":"jobId","in":"path","description":"Job ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Job"},{"$ref":"#/components/schemas/SheetUploadJob"}]}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid access token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient license, role, or organization access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request body failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/products":{"get":{"tags":["products"],"summary":"List products","description":"Returns a paginated list of catalog products accessible to the caller (the organization's products plus public products), ordered by product id. Optional `search` filters over name, manufacturer, and model. Use the returned `nextCursor` as `cursor` to fetch the next page.","operationId":"listProducts","parameters":[{"name":"search","in":"query","description":"Case-insensitive filter over name/manufacturer/model.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of products to return (1–100, default 100)","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","description":"Opaque pagination cursor — pass the `nextCursor` from the previous page to fetch the next page","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"required":["products","hasMore","nextCursor"],"type":"object","properties":{"products":{"type":"array","items":{"$ref":"#/components/schemas/Product"}},"hasMore":{"type":"boolean"},"nextCursor":{"type":"string","nullable":true}}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid access token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient license, role, or organization access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request body failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/products/{productId}":{"get":{"tags":["products"],"summary":"Get a product","description":"Returns a single accessible catalog product.","operationId":"getProduct","parameters":[{"name":"productId","in":"path","description":"Product ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Product"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid access token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient license, role, or organization access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request body failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/revit/v0/projects":{"servers":[{"url":"https://api.hvakr.com","description":"","variables":{}}],"post":{"tags":["revit"],"summary":"Create project from Revit","description":"Ingests a Revit plugin payload (RevitData), converts it to a project, and creates it. Versioned independently of the core API. Supports the Idempotency-Key header.","operationId":"createProjectFromRevit","parameters":[{"name":"Idempotency-Key","in":"header","description":"Optional idempotency key. Retrying a POST with the same key returns the original result instead of repeating the action.","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevitData"}}}},"responses":{"201":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid access token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient license, role, or organization access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request body failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/revit/v0/projects/{projectId}":{"servers":[{"url":"https://api.hvakr.com","description":"","variables":{}}],"patch":{"tags":["revit"],"summary":"Update project from Revit","description":"Ingests a Revit plugin payload (RevitData) and merges it into the existing project (importing new Revit spaces).","operationId":"updateProjectFromRevit","parameters":[{"name":"projectId","in":"path","description":"Project ID","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevitData"}}}},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid access token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient license, role, or organization access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request body failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"ExpandedProjectPost":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"address":{"type":"string"},"airflowIncrement":{"type":"integer","minimum":1,"maximum":9007199254740991},"annotations":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"arrowX":{"type":"number"},"arrowY":{"type":"number"},"author":{"type":"string"},"color":{"type":"string"},"level":{"type":"number"},"text":{"type":"string"},"timestamp":{"type":"number"},"x":{"type":"number"},"y":{"type":"number"}},"required":["author","level","text","timestamp","x","y"],"additionalProperties":false}},"building":{"type":"object","properties":{"area":{"type":"number"},"ashraeBuildingTypeId":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"},"occupancy":{"type":"number"},"planRotation":{"type":"number"},"stories":{"type":"number"}},"additionalProperties":false},"climateZone":{"type":"string"},"constraints":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"description":{"type":"string"},"name":{"type":"string"}},"additionalProperties":false}},"constructionType":{"type":"string","enum":["New","Retrofit"]},"contacts":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"address":{"type":"string"},"company":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"},"role":{"type":"string"},"trade":{"type":"string"}},"additionalProperties":false}},"description":{"type":"string"},"drySide":{"type":"object","properties":{"fittings":{"type":"object","properties":{"CONVERGENT_WYE":{"type":"object","properties":{"branchLossCoefficient":{"type":"number"},"mainLossCoefficient":{"type":"number"}},"additionalProperties":false},"DIVERGENT_WYE":{"type":"object","properties":{"branchLossCoefficient":{"type":"number"},"mainLossCoefficient":{"type":"number"}},"additionalProperties":false},"ELBOW":{"type":"object","properties":{"lossCoefficient":{"type":"number"}},"additionalProperties":false},"EXPANSION_TRANSITION":{"type":"object","properties":{"lossCoefficient":{"type":"number"}},"additionalProperties":false},"REDUCTION_TRANSITION":{"type":"object","properties":{"lossCoefficient":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"flowColors":{"type":"object","propertyNames":{"type":"string","enum":["SUPPLY","RETURN","EXHAUST"]},"additionalProperties":{"type":"string"}},"sizingData":{"type":"object","properties":{"ductSizes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"ductSizeType":{"type":"string","const":"CIRCLE"},"height":{"type":"number"}},"required":["ductSizeType","height"],"additionalProperties":false},{"type":"object","properties":{"ductSizeType":{"type":"string","const":"RECTANGLE"},"height":{"type":"number"},"width":{"type":"number"}},"required":["ductSizeType","height","width"],"additionalProperties":false}]}},"ductSizingHash":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"equipmentModes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"description":{"type":"string"},"id":{"type":"string"},"loadCondition":{"type":"string","enum":["COOLING","HEATING"]},"name":{"type":"string"}},"required":["description","id","loadCondition","name"],"additionalProperties":false}},"iaqpOutdoorAirMerv":{"type":"integer","minimum":8,"maximum":15},"isHealthcare":{"type":"boolean"},"levels":{"type":"object","propertyNames":{"type":"number"},"additionalProperties":{"type":"object","properties":{"height":{"type":"number"}},"additionalProperties":false}},"maps":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"isLocked":{"type":"boolean"},"type":{"type":"string","enum":["roadmap","satellite","hybrid"]},"x":{"type":"number"},"xOffset":{"type":"number"},"y":{"type":"number"},"yOffset":{"type":"number"},"zoom":{"type":"number"}},"additionalProperties":false}},"metadata":{"type":"object","propertyNames":{"type":"string","minLength":1},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}},"name":{"type":"string"},"number":{"type":"string"},"outdoorContaminants":{"type":"object","propertyNames":{"type":"string","enum":["42101","42604","43502","43503","43551","43802","43814","43817","44201","45102","45201","45202","45300","45850","88101"]},"additionalProperties":{"type":"object","properties":{"autoValue":{"type":"number"},"isManuallySet":{"type":"boolean"},"selectedSiteId":{"type":"string"},"value":{"type":"number"}},"additionalProperties":false}},"pictureThumbnailURL":{"type":"string"},"pictureURL":{"type":"string"},"pictureVerticalPosition":{"type":"number"},"presentMode":{"type":"object","properties":{"hiddenSlides":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"projectType":{"type":"string","enum":["residential","commercial"]},"sheetMarkers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"}},"required":["x","y"],"additionalProperties":false}},"spaceTypeAutoAssignment":{"type":"object","properties":{"hvakrTemplates":{"type":"boolean"},"myTemplates":{"type":"boolean"}},"additionalProperties":false},"standards":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"description":{"type":"string"},"name":{"type":"string"}},"additionalProperties":false}},"status":{"type":"string","enum":["new","inProgress","inReview","done","archived"]},"takeoffModel":{"type":"string","enum":["V1","V2"]},"unitSystem":{"type":"string","enum":["IMPERIAL","METRIC"]},"utilityRates":{"type":"object","properties":{"electricRate":{"type":"number"},"gasRate":{"type":"number"}},"additionalProperties":false},"ventilationStandard":{"type":"string","enum":["ASHRAE 62.1 / 170 (2022)","ASHRAE 62.1 / 170 (2025)"]},"weatherSpec":{"type":"object","properties":{"coolDb":{"type":"number"},"coolPercent":{"type":"string","enum":["2","5","10","0.4"]},"coolWb":{"type":"number"},"heatDb":{"type":"number"},"heatPercent":{"type":"string","enum":["99","99.6"]},"selectedStationId":{"type":"string"}},"additionalProperties":false},"yearBuilt":{"type":"string"},"branchTypes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"lossCoefficient":{"type":"number"},"name":{"type":"string"}},"additionalProperties":false}},"deadlines":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"complete":{"type":"boolean"},"date":{"type":"number"},"name":{"type":"string"}},"required":["complete","date"],"additionalProperties":false}},"doorTypes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"openFraction":{"type":"number"},"seals":{"type":"boolean"},"surfaceAbsorptance":{"type":"number"},"uValue":{"type":"number"}},"additionalProperties":false}},"ductTypes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"color":{"type":"string"},"linerThickness":{"type":"number"},"maxHeight":{"type":"number"},"maxPressureDropRate":{"type":"number"},"maxVelocity":{"type":"number"},"name":{"type":"string"}},"additionalProperties":false}},"equipment":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"projectScope":{"type":"object","properties":{"type":{"type":"string","enum":["system","zone"]},"id":{"type":"string"}},"required":["type","id"],"additionalProperties":false},"components":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["OUTSIDE_AIR_INTAKE","ENERGY_RECOVERY_UNIT","RETURN_AIR_INTAKE","COOLING_COIL","HEATING_COIL","EQUIPMENT_INEFFICIENCY","HUMIDIFIER","DEHUMIDIFIER","EQUIPMENT_INLET","EQUIPMENT_OUTLET"]}},"required":["id","type"],"additionalProperties":false}},"componentConfigsByMode":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean"},"configuration":{"oneOf":[{"oneOf":[{"type":"object","properties":{"componentType":{"type":"string","const":"OUTSIDE_AIR_INTAKE"},"method":{"type":"string","const":"SUM_OF_SPACES"}},"required":["componentType","method"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"OUTSIDE_AIR_INTAKE"},"method":{"type":"string","const":"PERCENT"},"percentage":{"type":"number"}},"required":["componentType","method","percentage"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"OUTSIDE_AIR_INTAKE"},"method":{"type":"string","const":"CUSTOM"},"flowRate":{"type":"number"}},"required":["componentType","method","flowRate"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"OUTSIDE_AIR_INTAKE"},"method":{"type":"string","const":"MULTI_ZONE"}},"required":["componentType","method"],"additionalProperties":false}]},{"type":"object","properties":{"componentType":{"type":"string","const":"ENERGY_RECOVERY_UNIT"},"ductHeatGain":{"type":"number"},"ervWheelEffectiveness":{"type":"number"}},"required":["componentType"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"RETURN_AIR_INTAKE"},"ductHeatGain":{"type":"number"},"ductLeakagePercent":{"type":"number"},"reliefEnabled":{"type":"boolean"}},"required":["componentType","reliefEnabled"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"COOLING_COIL"},"targetTemperature":{"type":"number"},"type":{"anyOf":[{"type":"number","const":0},{"type":"number","const":1}]},"waterDeltaT":{"type":"number"}},"required":["componentType"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"HEATING_COIL"},"targetTemperature":{"type":"number"},"type":{"anyOf":[{"type":"number","const":0},{"type":"number","const":1},{"type":"number","const":2},{"type":"number","const":3}]},"waterDeltaT":{"type":"number"}},"required":["componentType"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"EQUIPMENT_INEFFICIENCY"},"sensibleHeatGain":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"POWER"},"power":{"type":"number"}},"required":["type","power"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"TEMPERATURE_DELTA"},"temperatureDelta":{"type":"number"}},"required":["type","temperatureDelta"],"additionalProperties":false}]}},"required":["componentType","sensibleHeatGain"],"additionalProperties":false}]}},"required":["enabled","configuration"],"additionalProperties":false}}},"ductHeatGain":{"type":"number"},"ductLeakagePercent":{"type":"number"},"miscInefficiencies":{"type":"number"},"pressureLoss":{"type":"number"},"inletData":{"type":"object","properties":{"enabled":{"type":"boolean"},"configuration":{"oneOf":[{"type":"object","properties":{"componentType":{"type":"string","const":"EQUIPMENT_INLET"},"decoupled":{"type":"boolean"},"method":{"type":"string","const":"SUM_OF_SPACES_OA"}},"required":["componentType","decoupled","method"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"EQUIPMENT_INLET"},"decoupled":{"type":"boolean"},"method":{"type":"string","const":"PERCENT_SUPPLY"},"percentage":{"type":"number"}},"required":["componentType","decoupled","method","percentage"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"EQUIPMENT_INLET"},"decoupled":{"type":"boolean"},"method":{"type":"string","const":"CUSTOM"},"flowRate":{"type":"number"}},"required":["componentType","decoupled","method","flowRate"],"additionalProperties":false}]}},"required":["enabled","configuration"],"additionalProperties":false},"dimensionData":{"type":"object","properties":{"inletSize":{"type":"string","enum":["6","8","10","12","14","16","24x16"]},"length":{"type":"number"},"width":{"type":"number"}},"additionalProperties":false},"energyConfiguration":{"type":"object","properties":{"schedule":{"type":"object","properties":{"occupiedHours":{"minItems":24,"maxItems":24,"type":"array","items":{"type":"number"}},"warmupHours":{"type":"number"},"warmupMultiplier":{"type":"number"}},"additionalProperties":false},"efficiency":{"type":"object","properties":{"heatingType":{"type":"string","enum":["heatPump","gasFurnace"]},"coolingSeer":{"type":"number"},"heatingCop":{"type":"number"},"heatingAfue":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false}},"required":["projectScope"],"additionalProperties":false}},"graph":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"allOf":[{"type":"object","properties":{"adjacencies":{"type":"array","items":{"allOf":[{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"adjacencyType":{"type":"string","const":"DUCT"},"ductSize":{"anyOf":[{"type":"object","properties":{"ductSizeType":{"type":"string","const":"CIRCLE"},"height":{"type":"number"}},"required":["ductSizeType","height"],"additionalProperties":false},{"type":"object","properties":{"ductSizeType":{"type":"string","const":"RECTANGLE"},"height":{"type":"number"},"width":{"type":"number"}},"required":["ductSizeType","height","width"],"additionalProperties":false}]},"ductTypeId":{"type":"string"}},"required":["adjacencyType"],"additionalProperties":false},{"type":"object","properties":{"adjacencyType":{"type":"string","const":"PIPE"},"pipeSize":{"type":"object","properties":{"nominalDiameter":{"type":"number"}},"required":["nominalDiameter"],"additionalProperties":false},"pipeTypeId":{"type":"string"}},"required":["adjacencyType"],"additionalProperties":false},{"type":"object","properties":{"adjacencyType":{"type":"string","const":"LINK"}},"required":["adjacencyType"],"additionalProperties":false}]}]}},"id":{"type":"string"}},"required":["adjacencies","id"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"flowRate":{"type":"number"},"flowType":{"type":"string","enum":["SUPPLY","RETURN","EXHAUST"]},"placementType":{"type":"string","enum":["CEILING","SIDEWALL"]},"pressureLoss":{"type":"number"},"size":{"type":"object","properties":{"height":{"type":"number"},"width":{"type":"number"}},"required":["height","width"],"additionalProperties":false},"tag":{"type":"string"},"throw":{"type":"number"},"rotation":{"type":"number"},"inletSize":{"type":"string"},"nodeType":{"type":"string","const":"REGISTER"},"registerModelId":{"type":"string"},"spaceIds":{"type":"array","items":{"type":"string"}}},"required":["flowType","placementType","size","nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"nodeType":{"type":"string","const":"TERMINAL_UNIT"},"selections":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"leavingAirTemp":{"type":"number"},"productId":{"type":"string"},"quantity":{"type":"number"}},"required":["productId","quantity"],"additionalProperties":false}},"zoneId":{"type":"string"}},"required":["nodeType","zoneId"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"nodeType":{"type":"string","const":"CENTRAL_UNIT"},"selections":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"leavingAirTemp":{"type":"number"},"productId":{"type":"string"},"quantity":{"type":"number"}},"required":["productId","quantity"],"additionalProperties":false}},"systemId":{"type":"string"}},"required":["nodeType","systemId"],"additionalProperties":false},{"type":"object","properties":{"customLossCoefficients":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"customPressureLosses":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"nodeType":{"type":"string","const":"FITTING"}},"required":["nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"flowType":{"type":"string","enum":["SUPPLY","RETURN","EXHAUST"]},"nodeType":{"type":"string","const":"PORTAL"}},"required":["flowType","nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"nodeType":{"type":"string","const":"AIR_CLEANER"},"productId":{"type":"string"},"selections":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"leavingAirTemp":{"type":"number"},"productId":{"type":"string"},"quantity":{"type":"number"}},"required":["productId","quantity"],"additionalProperties":false}}},"required":["nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"nodeType":{"type":"string","const":"PUMP"},"ratedHead":{"type":"number"},"tag":{"type":"string"}},"required":["nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"nodeType":{"type":"string","const":"VALVE"},"tag":{"type":"string"}},"required":["nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"flowRate":{"type":"number"},"nodeType":{"type":"string","const":"TERMINAL_EQUIPMENT"},"selections":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"leavingAirTemp":{"type":"number"},"productId":{"type":"string"},"quantity":{"type":"number"}},"required":["productId","quantity"],"additionalProperties":false}},"tag":{"type":"string"},"zoneId":{"type":"string"}},"required":["nodeType"],"additionalProperties":false}]},{"type":"object","properties":{"level":{"type":"number"},"point":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"}},"required":["x","y"],"additionalProperties":false}},"required":["level","point"],"additionalProperties":false}]}},"pipeTypes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"insulation":{"type":"number"},"material":{"type":"string","enum":["STEEL","COPPER"]},"maxPressureDropRate":{"type":"number"},"maxVelocity":{"type":"number"},"name":{"type":"string"}},"additionalProperties":false}},"registerTypes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"flowRate":{"type":"number"},"flowType":{"type":"string","enum":["SUPPLY","RETURN","EXHAUST"]},"placementType":{"type":"string","enum":["CEILING","SIDEWALL"]},"pressureLoss":{"type":"number"},"size":{"type":"object","properties":{"height":{"type":"number"},"width":{"type":"number"}},"required":["height","width"],"additionalProperties":false},"tag":{"type":"string"},"throw":{"type":"number"},"defaultType":{"type":"string","enum":["LARGE","NORMAL","SMALL"]},"name":{"type":"string"}},"required":["flowType","placementType","size"],"additionalProperties":false}},"roofTypes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"ashraeRoofTypeId":{"type":"string"},"color":{"type":"string"},"name":{"type":"string"},"surfaceAbsorptance":{"type":"number"},"uValue":{"type":"number"},"unconditionedCoolingTempF":{"type":"number"},"unconditionedHeatingTempF":{"type":"number"}},"additionalProperties":false}},"sheets":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"activeSheetFilePageId":{"type":"string"},"placements":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"cropBox":{"type":"object","properties":{"x1":{"type":"number"},"x2":{"type":"number"},"y1":{"type":"number"},"y2":{"type":"number"}},"required":["x1","x2","y1","y2"],"additionalProperties":false},"isLocked":{"type":"boolean"},"level":{"type":"number"},"rotation":{"type":"number"},"x":{"type":"number"},"y":{"type":"number"}},"required":["level","x","y"],"additionalProperties":false}},"sheetType":{"type":"string","enum":["Enlarged Floor Plan","Overall Floor Plan","Reflected Ceiling Plan","Mechanical Plan","Electrical Plan","Plumbing Plan","Section","Detail","Schedule","Cover","Other"]}},"additionalProperties":false}},"slabTypes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"color":{"type":"string"},"fFactor":{"type":"number"},"name":{"type":"string"},"uValue":{"type":"number"},"unconditionedCoolingTempF":{"type":"number"},"unconditionedHeatingTempF":{"type":"number"}},"additionalProperties":false}},"spaceTypes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"coolingTemp":{"type":"number"},"equipmentLoad":{"type":"number"},"exhaustAch":{"type":"number"},"exhaustAreaReq":{"type":"number"},"ez":{"type":"number"},"heatingTemp":{"type":"number"},"infiltrationAchReq":{"type":"number"},"infiltrationAreaReq":{"type":"number"},"infiltrationLfReq":{"type":"number"},"infiltrationUseSeparateWinterReqs":{"type":"boolean"},"infiltrationWinterAchReq":{"type":"number"},"infiltrationWinterAreaReq":{"type":"number"},"infiltrationWinterLfReq":{"type":"number"},"lightingCeilingLoadPercent":{"type":"number"},"lightingLoad":{"type":"number"},"name":{"type":"string"},"nameSynonyms":{"type":"array","items":{"type":"string"}},"nc":{"type":"number"},"peopleDensity":{"type":"number"},"peopleLatentLoad":{"type":"number"},"peopleSensibleLoad":{"type":"number"},"registerSpec":{"type":"object","propertyNames":{"type":"string","enum":["SUPPLY","RETURN","EXHAUST"]},"additionalProperties":{"type":"object","properties":{"maxCFM":{"type":"number"},"maxFPM":{"type":"number"},"maxNC":{"type":"number"},"registerModelId":{"type":"string"}},"additionalProperties":false}},"relativeHumidity":{"type":"number"},"supplyAreaReq":{"type":"number"},"supplyReq":{"type":"number"},"temperatureRange":{"type":"number"},"unitExhaustRate":{"type":"number"},"usageSchedule":{"minItems":24,"maxItems":24,"type":"array","items":{"type":"number"}},"ventilationAchReq":{"type":"number"},"ventilationAreaReq":{"type":"number"},"ventilationPeopleReq":{"type":"number"}},"additionalProperties":false}},"spaces":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"designAirflowsByMode":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"airTransferIn":{"type":"number"},"airTransferOut":{"type":"number"},"exhaustAir":{"type":"number"},"outsideAir":{"type":"number"},"returnAir":{"type":"number"},"supplyAir":{"type":"number"}},"additionalProperties":false}},"airflowRequirementsByLoadCondition":{"type":"object","propertyNames":{"type":"string","enum":["COOLING","HEATING"]},"additionalProperties":{"type":"object","properties":{"infiltrationAchReq":{"type":"number"},"infiltrationAreaReq":{"type":"number"},"infiltrationFlowRateReq":{"type":"number"},"infiltrationLfReq":{"type":"number"},"infiltrationReqMethod":{"type":"string","enum":["AREA","FLOW_RATE","PERIMETER","VOLUME"]},"ventilationReq":{"type":"number"}},"additionalProperties":false}},"applyRoofLoadToCeiling":{"type":"boolean"},"ceilingHeight":{"type":"number"},"creationSource":{"type":"string","enum":["API","API_REVIT","AUTO","LEGACY","MERGE","PASTE","POLYGON","RECTANGLE","SPLIT"]},"edges":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"applyLoadToCeiling":{"type":"boolean"},"doors":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"doorTypeId":{"type":"string"},"height":{"type":"number"},"width":{"type":"number"},"x":{"type":"number"},"y":{"type":"number"}},"required":["height","width","x","y"],"additionalProperties":false}},"index":{"type":"number"},"name":{"type":"string"},"surfaceTilt":{"type":"number"},"wallTypeId":{"type":"string"},"windows":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"bottom":{"type":"number"},"externalShading":{"type":"boolean"},"externalShadingData":{"type":"object","properties":{"sideOverhangDepth":{"type":"number"},"sideOverhangOffset":{"type":"number"},"topOverhangDepth":{"type":"number"},"topOverhangOffset":{"type":"number"}},"additionalProperties":false},"height":{"type":"number"},"internalShading":{"type":"boolean"},"internalShadingData":{"type":"object","properties":{"beamIAC0":{"type":"number"},"beamIAC60":{"type":"number"},"diffuseIAC":{"type":"number"},"radiantFraction":{"type":"number"}},"additionalProperties":false},"width":{"type":"number"},"windowTypeId":{"type":"string"},"x":{"type":"number"},"y":{"type":"number"}},"required":["height","width","x","y"],"additionalProperties":false}},"x1":{"type":"number"},"x2":{"type":"number"},"y1":{"type":"number"},"y2":{"type":"number"}},"required":["index","x1","x2","y1","y2"],"additionalProperties":false}},"exhaustUnits":{"type":"number"},"infiltrationUseSeparateWinterReqs":{"type":"boolean"},"level":{"type":"number"},"miscHeatingLoad":{"type":"number"},"miscLatentCoolingLoad":{"type":"number"},"miscSensibleCoolingLoad":{"type":"number"},"name":{"type":"string"},"number":{"type":"string"},"occupancy":{"type":"number"},"revitId":{"type":"string"},"roofAzimuth":{"type":"number"},"roofPitch":{"type":"number"},"roofTypeId":{"type":"string"},"skylights":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"height":{"type":"number"},"rotation":{"type":"number"},"width":{"type":"number"},"windowTypeId":{"type":"string"},"x":{"type":"number"},"y":{"type":"number"}},"required":["height","width","x","y"],"additionalProperties":false}},"slabHeight":{"type":"number"},"slabTypeId":{"type":"string"},"spaceTypeId":{"type":"string"},"zoneId":{"type":"string"}},"required":["creationSource","edges","level"],"additionalProperties":false}},"systems":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"diversityData":{"type":"object","properties":{"equipment":{"type":"number"},"lighting":{"type":"number"},"occupancy":{"type":"number"}},"additionalProperties":false},"color":{"type":"string"},"configured":{"type":"boolean"},"name":{"type":"string"}},"additionalProperties":false}},"wallTypes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"ashraeWallTypeId":{"type":"string"},"belowGradeCoolingTempF":{"type":"number"},"belowGradeHeatingTempF":{"type":"number"},"color":{"type":"string"},"name":{"type":"string"},"surfaceAbsorptance":{"type":"number"},"uValue":{"type":"number"}},"additionalProperties":false}},"windowTypes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"ashraeWindowTypeId":{"type":"string"},"infiltrationAreaReq":{"type":"number"},"infiltrationLfReq":{"type":"number"},"infiltrationUseSeparateWinterReqs":{"type":"boolean"},"infiltrationWinterAreaReq":{"type":"number"},"infiltrationWinterLfReq":{"type":"number"},"name":{"type":"string"},"shgc":{"type":"number"},"uValue":{"type":"number"}},"additionalProperties":false}},"zones":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"color":{"type":"string"},"configured":{"type":"boolean"},"name":{"type":"string"},"systemId":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false},"ExpandedProjectWritePatch":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"address":{"anyOf":[{"type":"string"},{"type":"null"}]},"airflowIncrement":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"annotations":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"arrowX":{"anyOf":[{"type":"number"},{"type":"null"}]},"arrowY":{"anyOf":[{"type":"number"},{"type":"null"}]},"author":{"type":"string"},"color":{"anyOf":[{"type":"string"},{"type":"null"}]},"level":{"type":"number"},"text":{"type":"string"},"timestamp":{"type":"number"},"x":{"type":"number"},"y":{"type":"number"}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"building":{"anyOf":[{"type":"object","properties":{"area":{"anyOf":[{"type":"number"},{"type":"null"}]},"ashraeBuildingTypeId":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"occupancy":{"anyOf":[{"type":"number"},{"type":"null"}]},"planRotation":{"anyOf":[{"type":"number"},{"type":"null"}]},"stories":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"climateZone":{"anyOf":[{"type":"string"},{"type":"null"}]},"constraints":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"constructionType":{"anyOf":[{"type":"string","enum":["New","Retrofit"]},{"type":"null"}]},"contacts":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"address":{"anyOf":[{"type":"string"},{"type":"null"}]},"company":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"phone":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"anyOf":[{"type":"string"},{"type":"null"}]},"trade":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"drySide":{"anyOf":[{"type":"object","properties":{"fittings":{"anyOf":[{"type":"object","properties":{"CONVERGENT_WYE":{"anyOf":[{"type":"object","properties":{"branchLossCoefficient":{"anyOf":[{"type":"number"},{"type":"null"}]},"mainLossCoefficient":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"DIVERGENT_WYE":{"anyOf":[{"type":"object","properties":{"branchLossCoefficient":{"anyOf":[{"type":"number"},{"type":"null"}]},"mainLossCoefficient":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"ELBOW":{"anyOf":[{"type":"object","properties":{"lossCoefficient":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"EXPANSION_TRANSITION":{"anyOf":[{"type":"object","properties":{"lossCoefficient":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"REDUCTION_TRANSITION":{"anyOf":[{"type":"object","properties":{"lossCoefficient":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"flowColors":{"anyOf":[{"type":"object","propertyNames":{"type":"string","enum":["SUPPLY","RETURN","EXHAUST"]},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]}},{"type":"null"}]},"sizingData":{"anyOf":[{"type":"object","properties":{"ductSizes":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"anyOf":[{"type":"object","properties":{"ductSizeType":{"type":"string","const":"CIRCLE"},"height":{"type":"number"}},"required":["ductSizeType","height"],"additionalProperties":false},{"type":"object","properties":{"ductSizeType":{"type":"string","const":"RECTANGLE"},"height":{"type":"number"},"width":{"type":"number"}},"required":["ductSizeType","height","width"],"additionalProperties":false}]},{"type":"null"}]}},{"type":"null"}]},"ductSizingHash":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"equipmentModes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"description":{"type":"string"},"id":{"type":"string"},"loadCondition":{"type":"string","enum":["COOLING","HEATING"]},"name":{"type":"string"}},"additionalProperties":false},{"type":"null"}]}},"iaqpOutdoorAirMerv":{"anyOf":[{"type":"integer","minimum":8,"maximum":15},{"type":"null"}]},"isHealthcare":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"levels":{"anyOf":[{"type":"object","propertyNames":{"type":"number"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"height":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"maps":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"isLocked":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"type":{"anyOf":[{"type":"string","enum":["roadmap","satellite","hybrid"]},{"type":"null"}]},"x":{"anyOf":[{"type":"number"},{"type":"null"}]},"xOffset":{"anyOf":[{"type":"number"},{"type":"null"}]},"y":{"anyOf":[{"type":"number"},{"type":"null"}]},"yOffset":{"anyOf":[{"type":"number"},{"type":"null"}]},"zoom":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"metadata":{"anyOf":[{"type":"object","propertyNames":{"type":"string","minLength":1},"additionalProperties":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]},{"type":"null"}]}},{"type":"null"}]},"name":{"type":"string"},"number":{"anyOf":[{"type":"string"},{"type":"null"}]},"outdoorContaminants":{"anyOf":[{"type":"object","propertyNames":{"type":"string","enum":["42101","42604","43502","43503","43551","43802","43814","43817","44201","45102","45201","45202","45300","45850","88101"]},"additionalProperties":{"anyOf":[{"type":"object","properties":{"autoValue":{"anyOf":[{"type":"number"},{"type":"null"}]},"isManuallySet":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"selectedSiteId":{"anyOf":[{"type":"string"},{"type":"null"}]},"value":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"pictureThumbnailURL":{"anyOf":[{"type":"string"},{"type":"null"}]},"pictureURL":{"anyOf":[{"type":"string"},{"type":"null"}]},"pictureVerticalPosition":{"anyOf":[{"type":"number"},{"type":"null"}]},"presentMode":{"anyOf":[{"type":"object","properties":{"hiddenSlides":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"projectType":{"anyOf":[{"type":"string","enum":["residential","commercial"]},{"type":"null"}]},"sheetMarkers":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"spaceTypeAutoAssignment":{"anyOf":[{"type":"object","properties":{"hvakrTemplates":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"myTemplates":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"standards":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"status":{"anyOf":[{"type":"string","enum":["new","inProgress","inReview","done","archived"]},{"type":"null"}]},"takeoffModel":{"anyOf":[{"type":"string","enum":["V1","V2"]},{"type":"null"}]},"unitSystem":{"anyOf":[{"type":"string","enum":["IMPERIAL","METRIC"]},{"type":"null"}]},"utilityRates":{"anyOf":[{"type":"object","properties":{"electricRate":{"anyOf":[{"type":"number"},{"type":"null"}]},"gasRate":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"ventilationStandard":{"anyOf":[{"type":"string","enum":["ASHRAE 62.1 / 170 (2022)","ASHRAE 62.1 / 170 (2025)"]},{"type":"null"}]},"weatherSpec":{"anyOf":[{"type":"object","properties":{"coolDb":{"anyOf":[{"type":"number"},{"type":"null"}]},"coolPercent":{"anyOf":[{"type":"string","enum":["2","5","10","0.4"]},{"type":"null"}]},"coolWb":{"anyOf":[{"type":"number"},{"type":"null"}]},"heatDb":{"anyOf":[{"type":"number"},{"type":"null"}]},"heatPercent":{"anyOf":[{"type":"string","enum":["99","99.6"]},{"type":"null"}]},"selectedStationId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"yearBuilt":{"anyOf":[{"type":"string"},{"type":"null"}]},"branchTypes":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"lossCoefficient":{"anyOf":[{"type":"number"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"deadlines":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"complete":{"type":"boolean"},"date":{"type":"number"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"doorTypes":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"openFraction":{"anyOf":[{"type":"number"},{"type":"null"}]},"seals":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"surfaceAbsorptance":{"anyOf":[{"type":"number"},{"type":"null"}]},"uValue":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"ductTypes":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"color":{"anyOf":[{"type":"string"},{"type":"null"}]},"linerThickness":{"anyOf":[{"type":"number"},{"type":"null"}]},"maxHeight":{"anyOf":[{"type":"number"},{"type":"null"}]},"maxPressureDropRate":{"anyOf":[{"type":"number"},{"type":"null"}]},"maxVelocity":{"anyOf":[{"type":"number"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"equipment":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"projectScope":{"type":"object","properties":{"type":{"type":"string","enum":["system","zone"]},"id":{"type":"string"}},"additionalProperties":false},"components":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["OUTSIDE_AIR_INTAKE","ENERGY_RECOVERY_UNIT","RETURN_AIR_INTAKE","COOLING_COIL","HEATING_COIL","EQUIPMENT_INEFFICIENCY","HUMIDIFIER","DEHUMIDIFIER","EQUIPMENT_INLET","EQUIPMENT_OUTLET"]}},"required":["id","type"],"additionalProperties":false}},{"type":"null"}]},"componentConfigsByMode":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"enabled":{"type":"boolean"},"configuration":{"oneOf":[{"oneOf":[{"type":"object","properties":{"componentType":{"type":"string","const":"OUTSIDE_AIR_INTAKE"},"method":{"type":"string","const":"SUM_OF_SPACES"}},"required":["componentType","method"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"OUTSIDE_AIR_INTAKE"},"method":{"type":"string","const":"PERCENT"},"percentage":{"type":"number"}},"required":["componentType","method","percentage"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"OUTSIDE_AIR_INTAKE"},"method":{"type":"string","const":"CUSTOM"},"flowRate":{"type":"number"}},"required":["componentType","method","flowRate"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"OUTSIDE_AIR_INTAKE"},"method":{"type":"string","const":"MULTI_ZONE"}},"required":["componentType","method"],"additionalProperties":false}]},{"type":"object","properties":{"componentType":{"type":"string","const":"ENERGY_RECOVERY_UNIT"},"ductHeatGain":{"type":"number"},"ervWheelEffectiveness":{"type":"number"}},"required":["componentType"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"RETURN_AIR_INTAKE"},"ductHeatGain":{"type":"number"},"ductLeakagePercent":{"type":"number"},"reliefEnabled":{"type":"boolean"}},"required":["componentType","reliefEnabled"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"COOLING_COIL"},"targetTemperature":{"type":"number"},"type":{"anyOf":[{"type":"number","const":0},{"type":"number","const":1}]},"waterDeltaT":{"type":"number"}},"required":["componentType"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"HEATING_COIL"},"targetTemperature":{"type":"number"},"type":{"anyOf":[{"type":"number","const":0},{"type":"number","const":1},{"type":"number","const":2},{"type":"number","const":3}]},"waterDeltaT":{"type":"number"}},"required":["componentType"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"EQUIPMENT_INEFFICIENCY"},"sensibleHeatGain":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"POWER"},"power":{"type":"number"}},"required":["type","power"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"TEMPERATURE_DELTA"},"temperatureDelta":{"type":"number"}},"required":["type","temperatureDelta"],"additionalProperties":false}]}},"required":["componentType","sensibleHeatGain"],"additionalProperties":false}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]}},{"type":"null"}]},"ductHeatGain":{"anyOf":[{"type":"number"},{"type":"null"}]},"ductLeakagePercent":{"anyOf":[{"type":"number"},{"type":"null"}]},"miscInefficiencies":{"anyOf":[{"type":"number"},{"type":"null"}]},"pressureLoss":{"anyOf":[{"type":"number"},{"type":"null"}]},"inletData":{"anyOf":[{"type":"object","properties":{"enabled":{"type":"boolean"},"configuration":{"oneOf":[{"type":"object","properties":{"componentType":{"type":"string","const":"EQUIPMENT_INLET"},"decoupled":{"type":"boolean"},"method":{"type":"string","const":"SUM_OF_SPACES_OA"}},"required":["componentType","decoupled","method"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"EQUIPMENT_INLET"},"decoupled":{"type":"boolean"},"method":{"type":"string","const":"PERCENT_SUPPLY"},"percentage":{"type":"number"}},"required":["componentType","decoupled","method","percentage"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"EQUIPMENT_INLET"},"decoupled":{"type":"boolean"},"method":{"type":"string","const":"CUSTOM"},"flowRate":{"type":"number"}},"required":["componentType","decoupled","method","flowRate"],"additionalProperties":false}]}},"additionalProperties":false},{"type":"null"}]},"dimensionData":{"anyOf":[{"type":"object","properties":{"inletSize":{"anyOf":[{"type":"string","enum":["6","8","10","12","14","16","24x16"]},{"type":"null"}]},"length":{"anyOf":[{"type":"number"},{"type":"null"}]},"width":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"energyConfiguration":{"anyOf":[{"type":"object","properties":{"schedule":{"anyOf":[{"type":"object","properties":{"occupiedHours":{"anyOf":[{"minItems":24,"maxItems":24,"type":"array","items":{"type":"number"}},{"type":"null"}]},"warmupHours":{"anyOf":[{"type":"number"},{"type":"null"}]},"warmupMultiplier":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"efficiency":{"anyOf":[{"type":"object","properties":{"heatingType":{"anyOf":[{"type":"string","enum":["heatPump","gasFurnace"]},{"type":"null"}]},"coolingSeer":{"anyOf":[{"type":"number"},{"type":"null"}]},"heatingCop":{"anyOf":[{"type":"number"},{"type":"null"}]},"heatingAfue":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"graph":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"allOf":[{"type":"object","properties":{"adjacencies":{"type":"array","items":{"allOf":[{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"adjacencyType":{"type":"string","const":"DUCT"},"ductSize":{"anyOf":[{"type":"object","properties":{"ductSizeType":{"type":"string","const":"CIRCLE"},"height":{"type":"number"}},"required":["ductSizeType","height"],"additionalProperties":false},{"type":"object","properties":{"ductSizeType":{"type":"string","const":"RECTANGLE"},"height":{"type":"number"},"width":{"type":"number"}},"required":["ductSizeType","height","width"],"additionalProperties":false}]},"ductTypeId":{"type":"string"}},"required":["adjacencyType"],"additionalProperties":false},{"type":"object","properties":{"adjacencyType":{"type":"string","const":"PIPE"},"pipeSize":{"type":"object","properties":{"nominalDiameter":{"type":"number"}},"required":["nominalDiameter"],"additionalProperties":false},"pipeTypeId":{"type":"string"}},"required":["adjacencyType"],"additionalProperties":false},{"type":"object","properties":{"adjacencyType":{"type":"string","const":"LINK"}},"required":["adjacencyType"],"additionalProperties":false}]}]}},"id":{"type":"string"}},"required":["adjacencies","id"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"flowRate":{"type":"number"},"flowType":{"type":"string","enum":["SUPPLY","RETURN","EXHAUST"]},"placementType":{"type":"string","enum":["CEILING","SIDEWALL"]},"pressureLoss":{"type":"number"},"size":{"type":"object","properties":{"height":{"type":"number"},"width":{"type":"number"}},"required":["height","width"],"additionalProperties":false},"tag":{"type":"string"},"throw":{"type":"number"},"rotation":{"type":"number"},"inletSize":{"type":"string"},"nodeType":{"type":"string","const":"REGISTER"},"registerModelId":{"type":"string"},"spaceIds":{"type":"array","items":{"type":"string"}}},"required":["flowType","placementType","size","nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"nodeType":{"type":"string","const":"TERMINAL_UNIT"},"selections":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"leavingAirTemp":{"type":"number"},"productId":{"type":"string"},"quantity":{"type":"number"}},"required":["productId","quantity"],"additionalProperties":false}},"zoneId":{"type":"string"}},"required":["nodeType","zoneId"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"nodeType":{"type":"string","const":"CENTRAL_UNIT"},"selections":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"leavingAirTemp":{"type":"number"},"productId":{"type":"string"},"quantity":{"type":"number"}},"required":["productId","quantity"],"additionalProperties":false}},"systemId":{"type":"string"}},"required":["nodeType","systemId"],"additionalProperties":false},{"type":"object","properties":{"customLossCoefficients":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"customPressureLosses":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"nodeType":{"type":"string","const":"FITTING"}},"required":["nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"flowType":{"type":"string","enum":["SUPPLY","RETURN","EXHAUST"]},"nodeType":{"type":"string","const":"PORTAL"}},"required":["flowType","nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"nodeType":{"type":"string","const":"AIR_CLEANER"},"productId":{"type":"string"},"selections":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"leavingAirTemp":{"type":"number"},"productId":{"type":"string"},"quantity":{"type":"number"}},"required":["productId","quantity"],"additionalProperties":false}}},"required":["nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"nodeType":{"type":"string","const":"PUMP"},"ratedHead":{"type":"number"},"tag":{"type":"string"}},"required":["nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"nodeType":{"type":"string","const":"VALVE"},"tag":{"type":"string"}},"required":["nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"flowRate":{"type":"number"},"nodeType":{"type":"string","const":"TERMINAL_EQUIPMENT"},"selections":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"leavingAirTemp":{"type":"number"},"productId":{"type":"string"},"quantity":{"type":"number"}},"required":["productId","quantity"],"additionalProperties":false}},"tag":{"type":"string"},"zoneId":{"type":"string"}},"required":["nodeType"],"additionalProperties":false}]},{"type":"object","properties":{"level":{"type":"number"},"point":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"}},"required":["x","y"],"additionalProperties":false}},"required":["level","point"],"additionalProperties":false}]},{"type":"null"}]}},{"type":"null"}]},"pipeTypes":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"insulation":{"anyOf":[{"type":"number"},{"type":"null"}]},"material":{"anyOf":[{"type":"string","enum":["STEEL","COPPER"]},{"type":"null"}]},"maxPressureDropRate":{"anyOf":[{"type":"number"},{"type":"null"}]},"maxVelocity":{"anyOf":[{"type":"number"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"registerTypes":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"flowRate":{"anyOf":[{"type":"number"},{"type":"null"}]},"flowType":{"type":"string","enum":["SUPPLY","RETURN","EXHAUST"]},"placementType":{"type":"string","enum":["CEILING","SIDEWALL"]},"pressureLoss":{"anyOf":[{"type":"number"},{"type":"null"}]},"size":{"type":"object","properties":{"height":{"type":"number"},"width":{"type":"number"}},"additionalProperties":false},"tag":{"anyOf":[{"type":"string"},{"type":"null"}]},"throw":{"anyOf":[{"type":"number"},{"type":"null"}]},"defaultType":{"anyOf":[{"type":"string","enum":["LARGE","NORMAL","SMALL"]},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"roofTypes":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"ashraeRoofTypeId":{"anyOf":[{"type":"string"},{"type":"null"}]},"color":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"surfaceAbsorptance":{"anyOf":[{"type":"number"},{"type":"null"}]},"uValue":{"anyOf":[{"type":"number"},{"type":"null"}]},"unconditionedCoolingTempF":{"anyOf":[{"type":"number"},{"type":"null"}]},"unconditionedHeatingTempF":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"sheetFiles":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"sheets":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"activeSheetFilePageId":{"anyOf":[{"type":"string"},{"type":"null"}]},"placements":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"cropBox":{"anyOf":[{"type":"object","properties":{"x1":{"type":"number"},"x2":{"type":"number"},"y1":{"type":"number"},"y2":{"type":"number"}},"additionalProperties":false},{"type":"null"}]},"isLocked":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"level":{"type":"number"},"rotation":{"anyOf":[{"type":"number"},{"type":"null"}]},"x":{"type":"number"},"y":{"type":"number"}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"sheetType":{"anyOf":[{"type":"string","enum":["Enlarged Floor Plan","Overall Floor Plan","Reflected Ceiling Plan","Mechanical Plan","Electrical Plan","Plumbing Plan","Section","Detail","Schedule","Cover","Other"]},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"slabTypes":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"color":{"anyOf":[{"type":"string"},{"type":"null"}]},"fFactor":{"anyOf":[{"type":"number"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"uValue":{"anyOf":[{"type":"number"},{"type":"null"}]},"unconditionedCoolingTempF":{"anyOf":[{"type":"number"},{"type":"null"}]},"unconditionedHeatingTempF":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"spaceTypes":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"coolingTemp":{"anyOf":[{"type":"number"},{"type":"null"}]},"equipmentLoad":{"anyOf":[{"type":"number"},{"type":"null"}]},"exhaustAch":{"anyOf":[{"type":"number"},{"type":"null"}]},"exhaustAreaReq":{"anyOf":[{"type":"number"},{"type":"null"}]},"ez":{"anyOf":[{"type":"number"},{"type":"null"}]},"heatingTemp":{"anyOf":[{"type":"number"},{"type":"null"}]},"infiltrationAchReq":{"anyOf":[{"type":"number"},{"type":"null"}]},"infiltrationAreaReq":{"anyOf":[{"type":"number"},{"type":"null"}]},"infiltrationLfReq":{"anyOf":[{"type":"number"},{"type":"null"}]},"infiltrationUseSeparateWinterReqs":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"infiltrationWinterAchReq":{"anyOf":[{"type":"number"},{"type":"null"}]},"infiltrationWinterAreaReq":{"anyOf":[{"type":"number"},{"type":"null"}]},"infiltrationWinterLfReq":{"anyOf":[{"type":"number"},{"type":"null"}]},"lightingCeilingLoadPercent":{"anyOf":[{"type":"number"},{"type":"null"}]},"lightingLoad":{"anyOf":[{"type":"number"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"nameSynonyms":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"nc":{"anyOf":[{"type":"number"},{"type":"null"}]},"peopleDensity":{"anyOf":[{"type":"number"},{"type":"null"}]},"peopleLatentLoad":{"anyOf":[{"type":"number"},{"type":"null"}]},"peopleSensibleLoad":{"anyOf":[{"type":"number"},{"type":"null"}]},"registerSpec":{"anyOf":[{"type":"object","propertyNames":{"type":"string","enum":["SUPPLY","RETURN","EXHAUST"]},"additionalProperties":{"anyOf":[{"type":"object","properties":{"maxCFM":{"anyOf":[{"type":"number"},{"type":"null"}]},"maxFPM":{"anyOf":[{"type":"number"},{"type":"null"}]},"maxNC":{"anyOf":[{"type":"number"},{"type":"null"}]},"registerModelId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"relativeHumidity":{"anyOf":[{"type":"number"},{"type":"null"}]},"supplyAreaReq":{"anyOf":[{"type":"number"},{"type":"null"}]},"supplyReq":{"anyOf":[{"type":"number"},{"type":"null"}]},"temperatureRange":{"anyOf":[{"type":"number"},{"type":"null"}]},"unitExhaustRate":{"anyOf":[{"type":"number"},{"type":"null"}]},"usageSchedule":{"anyOf":[{"minItems":24,"maxItems":24,"type":"array","items":{"type":"number"}},{"type":"null"}]},"ventilationAchReq":{"anyOf":[{"type":"number"},{"type":"null"}]},"ventilationAreaReq":{"anyOf":[{"type":"number"},{"type":"null"}]},"ventilationPeopleReq":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"spaces":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"designAirflowsByMode":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"airTransferIn":{"anyOf":[{"type":"number"},{"type":"null"}]},"airTransferOut":{"anyOf":[{"type":"number"},{"type":"null"}]},"exhaustAir":{"anyOf":[{"type":"number"},{"type":"null"}]},"outsideAir":{"anyOf":[{"type":"number"},{"type":"null"}]},"returnAir":{"anyOf":[{"type":"number"},{"type":"null"}]},"supplyAir":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"airflowRequirementsByLoadCondition":{"anyOf":[{"type":"object","propertyNames":{"type":"string","enum":["COOLING","HEATING"]},"additionalProperties":{"anyOf":[{"type":"object","properties":{"infiltrationAchReq":{"anyOf":[{"type":"number"},{"type":"null"}]},"infiltrationAreaReq":{"anyOf":[{"type":"number"},{"type":"null"}]},"infiltrationFlowRateReq":{"anyOf":[{"type":"number"},{"type":"null"}]},"infiltrationLfReq":{"anyOf":[{"type":"number"},{"type":"null"}]},"infiltrationReqMethod":{"anyOf":[{"type":"string","enum":["AREA","FLOW_RATE","PERIMETER","VOLUME"]},{"type":"null"}]},"ventilationReq":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"applyRoofLoadToCeiling":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"ceilingHeight":{"anyOf":[{"type":"number"},{"type":"null"}]},"creationSource":{"type":"string","enum":["API","API_REVIT","AUTO","LEGACY","MERGE","PASTE","POLYGON","RECTANGLE","SPLIT"]},"edges":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"applyLoadToCeiling":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"doors":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"doorTypeId":{"anyOf":[{"type":"string"},{"type":"null"}]},"height":{"type":"number"},"width":{"type":"number"},"x":{"type":"number"},"y":{"type":"number"}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"index":{"type":"number"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"surfaceTilt":{"anyOf":[{"type":"number"},{"type":"null"}]},"wallTypeId":{"anyOf":[{"type":"string"},{"type":"null"}]},"windows":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"bottom":{"anyOf":[{"type":"number"},{"type":"null"}]},"externalShading":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"externalShadingData":{"anyOf":[{"type":"object","properties":{"sideOverhangDepth":{"anyOf":[{"type":"number"},{"type":"null"}]},"sideOverhangOffset":{"anyOf":[{"type":"number"},{"type":"null"}]},"topOverhangDepth":{"anyOf":[{"type":"number"},{"type":"null"}]},"topOverhangOffset":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"height":{"type":"number"},"internalShading":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"internalShadingData":{"anyOf":[{"type":"object","properties":{"beamIAC0":{"anyOf":[{"type":"number"},{"type":"null"}]},"beamIAC60":{"anyOf":[{"type":"number"},{"type":"null"}]},"diffuseIAC":{"anyOf":[{"type":"number"},{"type":"null"}]},"radiantFraction":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"width":{"type":"number"},"windowTypeId":{"anyOf":[{"type":"string"},{"type":"null"}]},"x":{"type":"number"},"y":{"type":"number"}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"x1":{"type":"number"},"x2":{"type":"number"},"y1":{"type":"number"},"y2":{"type":"number"}},"additionalProperties":false},{"type":"null"}]}},"exhaustUnits":{"anyOf":[{"type":"number"},{"type":"null"}]},"infiltrationUseSeparateWinterReqs":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"level":{"type":"number"},"miscHeatingLoad":{"anyOf":[{"type":"number"},{"type":"null"}]},"miscLatentCoolingLoad":{"anyOf":[{"type":"number"},{"type":"null"}]},"miscSensibleCoolingLoad":{"anyOf":[{"type":"number"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"number":{"anyOf":[{"type":"string"},{"type":"null"}]},"occupancy":{"anyOf":[{"type":"number"},{"type":"null"}]},"revitId":{"anyOf":[{"type":"string"},{"type":"null"}]},"roofAzimuth":{"anyOf":[{"type":"number"},{"type":"null"}]},"roofPitch":{"anyOf":[{"type":"number"},{"type":"null"}]},"roofTypeId":{"anyOf":[{"type":"string"},{"type":"null"}]},"skylights":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"height":{"type":"number"},"rotation":{"anyOf":[{"type":"number"},{"type":"null"}]},"width":{"type":"number"},"windowTypeId":{"anyOf":[{"type":"string"},{"type":"null"}]},"x":{"type":"number"},"y":{"type":"number"}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"slabHeight":{"anyOf":[{"type":"number"},{"type":"null"}]},"slabTypeId":{"anyOf":[{"type":"string"},{"type":"null"}]},"spaceTypeId":{"anyOf":[{"type":"string"},{"type":"null"}]},"zoneId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"systems":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"diversityData":{"anyOf":[{"type":"object","properties":{"equipment":{"anyOf":[{"type":"number"},{"type":"null"}]},"lighting":{"anyOf":[{"type":"number"},{"type":"null"}]},"occupancy":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"color":{"anyOf":[{"type":"string"},{"type":"null"}]},"configured":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"wallTypes":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"ashraeWallTypeId":{"anyOf":[{"type":"string"},{"type":"null"}]},"belowGradeCoolingTempF":{"anyOf":[{"type":"number"},{"type":"null"}]},"belowGradeHeatingTempF":{"anyOf":[{"type":"number"},{"type":"null"}]},"color":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"surfaceAbsorptance":{"anyOf":[{"type":"number"},{"type":"null"}]},"uValue":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"windowTypes":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"ashraeWindowTypeId":{"anyOf":[{"type":"string"},{"type":"null"}]},"infiltrationAreaReq":{"anyOf":[{"type":"number"},{"type":"null"}]},"infiltrationLfReq":{"anyOf":[{"type":"number"},{"type":"null"}]},"infiltrationUseSeparateWinterReqs":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"infiltrationWinterAreaReq":{"anyOf":[{"type":"number"},{"type":"null"}]},"infiltrationWinterLfReq":{"anyOf":[{"type":"number"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"shgc":{"anyOf":[{"type":"number"},{"type":"null"}]},"uValue":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]},"zones":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"color":{"anyOf":[{"type":"string"},{"type":"null"}]},"configured":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"systemId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},{"type":"null"}]}},"additionalProperties":false},"ExpandedProjectWritePost":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"address":{"type":"string"},"airflowIncrement":{"type":"integer","minimum":1,"maximum":9007199254740991},"annotations":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"arrowX":{"type":"number"},"arrowY":{"type":"number"},"author":{"type":"string"},"color":{"type":"string"},"level":{"type":"number"},"text":{"type":"string"},"timestamp":{"type":"number"},"x":{"type":"number"},"y":{"type":"number"}},"required":["author","level","text","timestamp","x","y"],"additionalProperties":false}},"building":{"type":"object","properties":{"area":{"type":"number"},"ashraeBuildingTypeId":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"},"occupancy":{"type":"number"},"planRotation":{"type":"number"},"stories":{"type":"number"}},"additionalProperties":false},"climateZone":{"type":"string"},"constraints":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"description":{"type":"string"},"name":{"type":"string"}},"additionalProperties":false}},"constructionType":{"type":"string","enum":["New","Retrofit"]},"contacts":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"address":{"type":"string"},"company":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"},"role":{"type":"string"},"trade":{"type":"string"}},"additionalProperties":false}},"description":{"type":"string"},"drySide":{"type":"object","properties":{"fittings":{"type":"object","properties":{"CONVERGENT_WYE":{"type":"object","properties":{"branchLossCoefficient":{"type":"number"},"mainLossCoefficient":{"type":"number"}},"additionalProperties":false},"DIVERGENT_WYE":{"type":"object","properties":{"branchLossCoefficient":{"type":"number"},"mainLossCoefficient":{"type":"number"}},"additionalProperties":false},"ELBOW":{"type":"object","properties":{"lossCoefficient":{"type":"number"}},"additionalProperties":false},"EXPANSION_TRANSITION":{"type":"object","properties":{"lossCoefficient":{"type":"number"}},"additionalProperties":false},"REDUCTION_TRANSITION":{"type":"object","properties":{"lossCoefficient":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"flowColors":{"type":"object","propertyNames":{"type":"string","enum":["SUPPLY","RETURN","EXHAUST"]},"additionalProperties":{"type":"string"}},"sizingData":{"type":"object","properties":{"ductSizes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"ductSizeType":{"type":"string","const":"CIRCLE"},"height":{"type":"number"}},"required":["ductSizeType","height"],"additionalProperties":false},{"type":"object","properties":{"ductSizeType":{"type":"string","const":"RECTANGLE"},"height":{"type":"number"},"width":{"type":"number"}},"required":["ductSizeType","height","width"],"additionalProperties":false}]}},"ductSizingHash":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"equipmentModes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"description":{"type":"string"},"id":{"type":"string"},"loadCondition":{"type":"string","enum":["COOLING","HEATING"]},"name":{"type":"string"}},"required":["description","id","loadCondition","name"],"additionalProperties":false}},"iaqpOutdoorAirMerv":{"type":"integer","minimum":8,"maximum":15},"isHealthcare":{"type":"boolean"},"levels":{"type":"object","propertyNames":{"type":"number"},"additionalProperties":{"type":"object","properties":{"height":{"type":"number"}},"additionalProperties":false}},"maps":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"isLocked":{"type":"boolean"},"type":{"type":"string","enum":["roadmap","satellite","hybrid"]},"x":{"type":"number"},"xOffset":{"type":"number"},"y":{"type":"number"},"yOffset":{"type":"number"},"zoom":{"type":"number"}},"additionalProperties":false}},"metadata":{"type":"object","propertyNames":{"type":"string","minLength":1},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}},"name":{"type":"string"},"number":{"type":"string"},"outdoorContaminants":{"type":"object","propertyNames":{"type":"string","enum":["42101","42604","43502","43503","43551","43802","43814","43817","44201","45102","45201","45202","45300","45850","88101"]},"additionalProperties":{"type":"object","properties":{"autoValue":{"type":"number"},"isManuallySet":{"type":"boolean"},"selectedSiteId":{"type":"string"},"value":{"type":"number"}},"additionalProperties":false}},"pictureThumbnailURL":{"type":"string"},"pictureURL":{"type":"string"},"pictureVerticalPosition":{"type":"number"},"presentMode":{"type":"object","properties":{"hiddenSlides":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"projectType":{"type":"string","enum":["residential","commercial"]},"sheetMarkers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"}},"required":["x","y"],"additionalProperties":false}},"spaceTypeAutoAssignment":{"type":"object","properties":{"hvakrTemplates":{"type":"boolean"},"myTemplates":{"type":"boolean"}},"additionalProperties":false},"standards":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"description":{"type":"string"},"name":{"type":"string"}},"additionalProperties":false}},"status":{"type":"string","enum":["new","inProgress","inReview","done","archived"]},"takeoffModel":{"type":"string","enum":["V1","V2"]},"unitSystem":{"type":"string","enum":["IMPERIAL","METRIC"]},"utilityRates":{"type":"object","properties":{"electricRate":{"type":"number"},"gasRate":{"type":"number"}},"additionalProperties":false},"ventilationStandard":{"type":"string","enum":["ASHRAE 62.1 / 170 (2022)","ASHRAE 62.1 / 170 (2025)"]},"weatherSpec":{"type":"object","properties":{"coolDb":{"type":"number"},"coolPercent":{"type":"string","enum":["2","5","10","0.4"]},"coolWb":{"type":"number"},"heatDb":{"type":"number"},"heatPercent":{"type":"string","enum":["99","99.6"]},"selectedStationId":{"type":"string"}},"additionalProperties":false},"yearBuilt":{"type":"string"},"branchTypes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"lossCoefficient":{"type":"number"},"name":{"type":"string"}},"additionalProperties":false}},"deadlines":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"complete":{"type":"boolean"},"date":{"type":"number"},"name":{"type":"string"}},"required":["complete","date"],"additionalProperties":false}},"doorTypes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"openFraction":{"type":"number"},"seals":{"type":"boolean"},"surfaceAbsorptance":{"type":"number"},"uValue":{"type":"number"}},"additionalProperties":false}},"ductTypes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"color":{"type":"string"},"linerThickness":{"type":"number"},"maxHeight":{"type":"number"},"maxPressureDropRate":{"type":"number"},"maxVelocity":{"type":"number"},"name":{"type":"string"}},"additionalProperties":false}},"equipment":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"projectScope":{"type":"object","properties":{"type":{"type":"string","enum":["system","zone"]},"id":{"type":"string"}},"required":["type","id"],"additionalProperties":false},"components":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["OUTSIDE_AIR_INTAKE","ENERGY_RECOVERY_UNIT","RETURN_AIR_INTAKE","COOLING_COIL","HEATING_COIL","EQUIPMENT_INEFFICIENCY","HUMIDIFIER","DEHUMIDIFIER","EQUIPMENT_INLET","EQUIPMENT_OUTLET"]}},"required":["id","type"],"additionalProperties":false}},"componentConfigsByMode":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean"},"configuration":{"oneOf":[{"oneOf":[{"type":"object","properties":{"componentType":{"type":"string","const":"OUTSIDE_AIR_INTAKE"},"method":{"type":"string","const":"SUM_OF_SPACES"}},"required":["componentType","method"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"OUTSIDE_AIR_INTAKE"},"method":{"type":"string","const":"PERCENT"},"percentage":{"type":"number"}},"required":["componentType","method","percentage"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"OUTSIDE_AIR_INTAKE"},"method":{"type":"string","const":"CUSTOM"},"flowRate":{"type":"number"}},"required":["componentType","method","flowRate"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"OUTSIDE_AIR_INTAKE"},"method":{"type":"string","const":"MULTI_ZONE"}},"required":["componentType","method"],"additionalProperties":false}]},{"type":"object","properties":{"componentType":{"type":"string","const":"ENERGY_RECOVERY_UNIT"},"ductHeatGain":{"type":"number"},"ervWheelEffectiveness":{"type":"number"}},"required":["componentType"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"RETURN_AIR_INTAKE"},"ductHeatGain":{"type":"number"},"ductLeakagePercent":{"type":"number"},"reliefEnabled":{"type":"boolean"}},"required":["componentType","reliefEnabled"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"COOLING_COIL"},"targetTemperature":{"type":"number"},"type":{"anyOf":[{"type":"number","const":0},{"type":"number","const":1}]},"waterDeltaT":{"type":"number"}},"required":["componentType"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"HEATING_COIL"},"targetTemperature":{"type":"number"},"type":{"anyOf":[{"type":"number","const":0},{"type":"number","const":1},{"type":"number","const":2},{"type":"number","const":3}]},"waterDeltaT":{"type":"number"}},"required":["componentType"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"EQUIPMENT_INEFFICIENCY"},"sensibleHeatGain":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"POWER"},"power":{"type":"number"}},"required":["type","power"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"TEMPERATURE_DELTA"},"temperatureDelta":{"type":"number"}},"required":["type","temperatureDelta"],"additionalProperties":false}]}},"required":["componentType","sensibleHeatGain"],"additionalProperties":false}]}},"required":["enabled","configuration"],"additionalProperties":false}}},"ductHeatGain":{"type":"number"},"ductLeakagePercent":{"type":"number"},"miscInefficiencies":{"type":"number"},"pressureLoss":{"type":"number"},"inletData":{"type":"object","properties":{"enabled":{"type":"boolean"},"configuration":{"oneOf":[{"type":"object","properties":{"componentType":{"type":"string","const":"EQUIPMENT_INLET"},"decoupled":{"type":"boolean"},"method":{"type":"string","const":"SUM_OF_SPACES_OA"}},"required":["componentType","decoupled","method"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"EQUIPMENT_INLET"},"decoupled":{"type":"boolean"},"method":{"type":"string","const":"PERCENT_SUPPLY"},"percentage":{"type":"number"}},"required":["componentType","decoupled","method","percentage"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"EQUIPMENT_INLET"},"decoupled":{"type":"boolean"},"method":{"type":"string","const":"CUSTOM"},"flowRate":{"type":"number"}},"required":["componentType","decoupled","method","flowRate"],"additionalProperties":false}]}},"required":["enabled","configuration"],"additionalProperties":false},"dimensionData":{"type":"object","properties":{"inletSize":{"type":"string","enum":["6","8","10","12","14","16","24x16"]},"length":{"type":"number"},"width":{"type":"number"}},"additionalProperties":false},"energyConfiguration":{"type":"object","properties":{"schedule":{"type":"object","properties":{"occupiedHours":{"minItems":24,"maxItems":24,"type":"array","items":{"type":"number"}},"warmupHours":{"type":"number"},"warmupMultiplier":{"type":"number"}},"additionalProperties":false},"efficiency":{"type":"object","properties":{"heatingType":{"type":"string","enum":["heatPump","gasFurnace"]},"coolingSeer":{"type":"number"},"heatingCop":{"type":"number"},"heatingAfue":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false}},"required":["projectScope"],"additionalProperties":false}},"graph":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"allOf":[{"type":"object","properties":{"adjacencies":{"type":"array","items":{"allOf":[{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"adjacencyType":{"type":"string","const":"DUCT"},"ductSize":{"anyOf":[{"type":"object","properties":{"ductSizeType":{"type":"string","const":"CIRCLE"},"height":{"type":"number"}},"required":["ductSizeType","height"],"additionalProperties":false},{"type":"object","properties":{"ductSizeType":{"type":"string","const":"RECTANGLE"},"height":{"type":"number"},"width":{"type":"number"}},"required":["ductSizeType","height","width"],"additionalProperties":false}]},"ductTypeId":{"type":"string"}},"required":["adjacencyType"],"additionalProperties":false},{"type":"object","properties":{"adjacencyType":{"type":"string","const":"PIPE"},"pipeSize":{"type":"object","properties":{"nominalDiameter":{"type":"number"}},"required":["nominalDiameter"],"additionalProperties":false},"pipeTypeId":{"type":"string"}},"required":["adjacencyType"],"additionalProperties":false},{"type":"object","properties":{"adjacencyType":{"type":"string","const":"LINK"}},"required":["adjacencyType"],"additionalProperties":false}]}]}},"id":{"type":"string"}},"required":["adjacencies","id"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"flowRate":{"type":"number"},"flowType":{"type":"string","enum":["SUPPLY","RETURN","EXHAUST"]},"placementType":{"type":"string","enum":["CEILING","SIDEWALL"]},"pressureLoss":{"type":"number"},"size":{"type":"object","properties":{"height":{"type":"number"},"width":{"type":"number"}},"required":["height","width"],"additionalProperties":false},"tag":{"type":"string"},"throw":{"type":"number"},"rotation":{"type":"number"},"inletSize":{"type":"string"},"nodeType":{"type":"string","const":"REGISTER"},"registerModelId":{"type":"string"},"spaceIds":{"type":"array","items":{"type":"string"}}},"required":["flowType","placementType","size","nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"nodeType":{"type":"string","const":"TERMINAL_UNIT"},"selections":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"leavingAirTemp":{"type":"number"},"productId":{"type":"string"},"quantity":{"type":"number"}},"required":["productId","quantity"],"additionalProperties":false}},"zoneId":{"type":"string"}},"required":["nodeType","zoneId"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"nodeType":{"type":"string","const":"CENTRAL_UNIT"},"selections":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"leavingAirTemp":{"type":"number"},"productId":{"type":"string"},"quantity":{"type":"number"}},"required":["productId","quantity"],"additionalProperties":false}},"systemId":{"type":"string"}},"required":["nodeType","systemId"],"additionalProperties":false},{"type":"object","properties":{"customLossCoefficients":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"customPressureLosses":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"nodeType":{"type":"string","const":"FITTING"}},"required":["nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"flowType":{"type":"string","enum":["SUPPLY","RETURN","EXHAUST"]},"nodeType":{"type":"string","const":"PORTAL"}},"required":["flowType","nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"nodeType":{"type":"string","const":"AIR_CLEANER"},"productId":{"type":"string"},"selections":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"leavingAirTemp":{"type":"number"},"productId":{"type":"string"},"quantity":{"type":"number"}},"required":["productId","quantity"],"additionalProperties":false}}},"required":["nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"nodeType":{"type":"string","const":"PUMP"},"ratedHead":{"type":"number"},"tag":{"type":"string"}},"required":["nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"nodeType":{"type":"string","const":"VALVE"},"tag":{"type":"string"}},"required":["nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"flowRate":{"type":"number"},"nodeType":{"type":"string","const":"TERMINAL_EQUIPMENT"},"selections":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"leavingAirTemp":{"type":"number"},"productId":{"type":"string"},"quantity":{"type":"number"}},"required":["productId","quantity"],"additionalProperties":false}},"tag":{"type":"string"},"zoneId":{"type":"string"}},"required":["nodeType"],"additionalProperties":false}]},{"type":"object","properties":{"level":{"type":"number"},"point":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"}},"required":["x","y"],"additionalProperties":false}},"required":["level","point"],"additionalProperties":false}]}},"pipeTypes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"insulation":{"type":"number"},"material":{"type":"string","enum":["STEEL","COPPER"]},"maxPressureDropRate":{"type":"number"},"maxVelocity":{"type":"number"},"name":{"type":"string"}},"additionalProperties":false}},"registerTypes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"flowRate":{"type":"number"},"flowType":{"type":"string","enum":["SUPPLY","RETURN","EXHAUST"]},"placementType":{"type":"string","enum":["CEILING","SIDEWALL"]},"pressureLoss":{"type":"number"},"size":{"type":"object","properties":{"height":{"type":"number"},"width":{"type":"number"}},"required":["height","width"],"additionalProperties":false},"tag":{"type":"string"},"throw":{"type":"number"},"defaultType":{"type":"string","enum":["LARGE","NORMAL","SMALL"]},"name":{"type":"string"}},"required":["flowType","placementType","size"],"additionalProperties":false}},"roofTypes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"ashraeRoofTypeId":{"type":"string"},"color":{"type":"string"},"name":{"type":"string"},"surfaceAbsorptance":{"type":"number"},"uValue":{"type":"number"},"unconditionedCoolingTempF":{"type":"number"},"unconditionedHeatingTempF":{"type":"number"}},"additionalProperties":false}},"sheets":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"activeSheetFilePageId":{"type":"string"},"placements":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"cropBox":{"type":"object","properties":{"x1":{"type":"number"},"x2":{"type":"number"},"y1":{"type":"number"},"y2":{"type":"number"}},"required":["x1","x2","y1","y2"],"additionalProperties":false},"isLocked":{"type":"boolean"},"level":{"type":"number"},"rotation":{"type":"number"},"x":{"type":"number"},"y":{"type":"number"}},"required":["level","x","y"],"additionalProperties":false}},"sheetType":{"type":"string","enum":["Enlarged Floor Plan","Overall Floor Plan","Reflected Ceiling Plan","Mechanical Plan","Electrical Plan","Plumbing Plan","Section","Detail","Schedule","Cover","Other"]}},"additionalProperties":false}},"slabTypes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"color":{"type":"string"},"fFactor":{"type":"number"},"name":{"type":"string"},"uValue":{"type":"number"},"unconditionedCoolingTempF":{"type":"number"},"unconditionedHeatingTempF":{"type":"number"}},"additionalProperties":false}},"spaceTypes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"coolingTemp":{"type":"number"},"equipmentLoad":{"type":"number"},"exhaustAch":{"type":"number"},"exhaustAreaReq":{"type":"number"},"ez":{"type":"number"},"heatingTemp":{"type":"number"},"infiltrationAchReq":{"type":"number"},"infiltrationAreaReq":{"type":"number"},"infiltrationLfReq":{"type":"number"},"infiltrationUseSeparateWinterReqs":{"type":"boolean"},"infiltrationWinterAchReq":{"type":"number"},"infiltrationWinterAreaReq":{"type":"number"},"infiltrationWinterLfReq":{"type":"number"},"lightingCeilingLoadPercent":{"type":"number"},"lightingLoad":{"type":"number"},"name":{"type":"string"},"nameSynonyms":{"type":"array","items":{"type":"string"}},"nc":{"type":"number"},"peopleDensity":{"type":"number"},"peopleLatentLoad":{"type":"number"},"peopleSensibleLoad":{"type":"number"},"registerSpec":{"type":"object","propertyNames":{"type":"string","enum":["SUPPLY","RETURN","EXHAUST"]},"additionalProperties":{"type":"object","properties":{"maxCFM":{"type":"number"},"maxFPM":{"type":"number"},"maxNC":{"type":"number"},"registerModelId":{"type":"string"}},"additionalProperties":false}},"relativeHumidity":{"type":"number"},"supplyAreaReq":{"type":"number"},"supplyReq":{"type":"number"},"temperatureRange":{"type":"number"},"unitExhaustRate":{"type":"number"},"usageSchedule":{"minItems":24,"maxItems":24,"type":"array","items":{"type":"number"}},"ventilationAchReq":{"type":"number"},"ventilationAreaReq":{"type":"number"},"ventilationPeopleReq":{"type":"number"}},"additionalProperties":false}},"spaces":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"designAirflowsByMode":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"airTransferIn":{"type":"number"},"airTransferOut":{"type":"number"},"exhaustAir":{"type":"number"},"outsideAir":{"type":"number"},"returnAir":{"type":"number"},"supplyAir":{"type":"number"}},"additionalProperties":false}},"airflowRequirementsByLoadCondition":{"type":"object","propertyNames":{"type":"string","enum":["COOLING","HEATING"]},"additionalProperties":{"type":"object","properties":{"infiltrationAchReq":{"type":"number"},"infiltrationAreaReq":{"type":"number"},"infiltrationFlowRateReq":{"type":"number"},"infiltrationLfReq":{"type":"number"},"infiltrationReqMethod":{"type":"string","enum":["AREA","FLOW_RATE","PERIMETER","VOLUME"]},"ventilationReq":{"type":"number"}},"additionalProperties":false}},"applyRoofLoadToCeiling":{"type":"boolean"},"ceilingHeight":{"type":"number"},"creationSource":{"type":"string","enum":["API","API_REVIT","AUTO","LEGACY","MERGE","PASTE","POLYGON","RECTANGLE","SPLIT"]},"edges":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"applyLoadToCeiling":{"type":"boolean"},"doors":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"doorTypeId":{"type":"string"},"height":{"type":"number"},"width":{"type":"number"},"x":{"type":"number"},"y":{"type":"number"}},"required":["height","width","x","y"],"additionalProperties":false}},"index":{"type":"number"},"name":{"type":"string"},"surfaceTilt":{"type":"number"},"wallTypeId":{"type":"string"},"windows":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"bottom":{"type":"number"},"externalShading":{"type":"boolean"},"externalShadingData":{"type":"object","properties":{"sideOverhangDepth":{"type":"number"},"sideOverhangOffset":{"type":"number"},"topOverhangDepth":{"type":"number"},"topOverhangOffset":{"type":"number"}},"additionalProperties":false},"height":{"type":"number"},"internalShading":{"type":"boolean"},"internalShadingData":{"type":"object","properties":{"beamIAC0":{"type":"number"},"beamIAC60":{"type":"number"},"diffuseIAC":{"type":"number"},"radiantFraction":{"type":"number"}},"additionalProperties":false},"width":{"type":"number"},"windowTypeId":{"type":"string"},"x":{"type":"number"},"y":{"type":"number"}},"required":["height","width","x","y"],"additionalProperties":false}},"x1":{"type":"number"},"x2":{"type":"number"},"y1":{"type":"number"},"y2":{"type":"number"}},"required":["index","x1","x2","y1","y2"],"additionalProperties":false}},"exhaustUnits":{"type":"number"},"infiltrationUseSeparateWinterReqs":{"type":"boolean"},"level":{"type":"number"},"miscHeatingLoad":{"type":"number"},"miscLatentCoolingLoad":{"type":"number"},"miscSensibleCoolingLoad":{"type":"number"},"name":{"type":"string"},"number":{"type":"string"},"occupancy":{"type":"number"},"revitId":{"type":"string"},"roofAzimuth":{"type":"number"},"roofPitch":{"type":"number"},"roofTypeId":{"type":"string"},"skylights":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"height":{"type":"number"},"rotation":{"type":"number"},"width":{"type":"number"},"windowTypeId":{"type":"string"},"x":{"type":"number"},"y":{"type":"number"}},"required":["height","width","x","y"],"additionalProperties":false}},"slabHeight":{"type":"number"},"slabTypeId":{"type":"string"},"spaceTypeId":{"type":"string"},"zoneId":{"type":"string"}},"required":["creationSource","edges","level"],"additionalProperties":false}},"systems":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"diversityData":{"type":"object","properties":{"equipment":{"type":"number"},"lighting":{"type":"number"},"occupancy":{"type":"number"}},"additionalProperties":false},"color":{"type":"string"},"configured":{"type":"boolean"},"name":{"type":"string"}},"additionalProperties":false}},"wallTypes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"ashraeWallTypeId":{"type":"string"},"belowGradeCoolingTempF":{"type":"number"},"belowGradeHeatingTempF":{"type":"number"},"color":{"type":"string"},"name":{"type":"string"},"surfaceAbsorptance":{"type":"number"},"uValue":{"type":"number"}},"additionalProperties":false}},"windowTypes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"ashraeWindowTypeId":{"type":"string"},"infiltrationAreaReq":{"type":"number"},"infiltrationLfReq":{"type":"number"},"infiltrationUseSeparateWinterReqs":{"type":"boolean"},"infiltrationWinterAreaReq":{"type":"number"},"infiltrationWinterLfReq":{"type":"number"},"name":{"type":"string"},"shgc":{"type":"number"},"uValue":{"type":"number"}},"additionalProperties":false}},"zones":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"color":{"type":"string"},"configured":{"type":"boolean"},"name":{"type":"string"},"systemId":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false},"ProjectCalculations":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"message":{"type":"string"},"stack":{"type":"string"},"cause":{}},"required":["name","message"],"additionalProperties":false},"description":"Calculation diagnostics (not transport errors)."},"flags":{"type":"object","propertyNames":{"type":"string","enum":["NO_WEATHER_STATION_SELECTED","WEATHER_STATION_NOT_FOUND","NO_SPACES_DEFINED","NO_SPACES_IN_ZONE","NO_ZONES_IN_SYSTEM","COOLING_LOAD_FAILED","HEATING_LOAD_FAILED","COOLING_LOAD_INCOMPLETE","HEATING_LOAD_INCOMPLETE","AIRFLOWS_MISSING_LOADS","INFILTRATION_MISSING_SPACE_TYPE","INFILTRATION_MISSING_WEATHER_DATA","INFILTRATION_FAILED","EQUIPMENT_MISSING_WEATHER_DATA","EQUIPMENT_PSYCHROMETRICS_FAILED","EQUIPMENT_CENTRAL_UNIT_UNAVAILABLE","EQUIPMENT_OUTSIDE_AIR_UNAVAILABLE","EQUIPMENT_COMPONENT_SKIPPED","ENERGY_LOAD_FAILED","ENERGY_LOAD_INCOMPLETE","ENERGY_MISSING_SPACE_TYPE","ENERGY_MISSING_INDOOR_HUMIDITY","ENERGY_MISSING_AIRFLOWS","ENERGY_MISSING_SETPOINT","ENERGY_MISSING_EFFICIENCY"]},"additionalProperties":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"entityType":{"type":"string","const":"project"}},"required":["entityType"],"additionalProperties":false},{"type":"object","properties":{"componentId":{"type":"string"},"entityType":{"type":"string","enum":["space","zone","system","equipment"]},"id":{"type":"string"},"modeId":{"type":"string"}},"required":["entityType","id"],"additionalProperties":false}]}}},"loads":{"type":"object","properties":{"spaceCoolingLoads":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"external":{"type":"object","properties":{"doors":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"roof":{"type":"object","properties":{"ceilingPlenum":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"space":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"required":["ceilingPlenum","space"],"additionalProperties":false},"skylights":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"slab":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"walls":{"type":"object","properties":{"ceilingPlenum":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"space":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"required":["ceilingPlenum","space"],"additionalProperties":false},"windows":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"required":["doors","roof","skylights","slab","walls","windows"],"additionalProperties":false},"infiltration":{"type":"object","properties":{"latent":{"type":"object","properties":{"doors":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"general":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"windows":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"required":["doors","general","windows"],"additionalProperties":false},"sensible":{"type":"object","properties":{"doors":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"general":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"windows":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"required":["doors","general","windows"],"additionalProperties":false}},"required":["latent","sensible"],"additionalProperties":false},"internal":{"type":"object","properties":{"equipment":{"type":"array","items":{"type":"number"}},"lighting":{"type":"object","properties":{"ceilingPlenum":{"type":"array","items":{"type":"number"}},"space":{"type":"array","items":{"type":"number"}}},"required":["ceilingPlenum","space"],"additionalProperties":false},"misc":{"type":"object","properties":{"latent":{"type":"array","items":{"type":"number"}},"sensible":{"type":"array","items":{"type":"number"}}},"required":["latent","sensible"],"additionalProperties":false},"people":{"type":"object","properties":{"latent":{"type":"array","items":{"type":"number"}},"sensible":{"type":"array","items":{"type":"number"}}},"required":["latent","sensible"],"additionalProperties":false}},"required":["equipment","lighting","misc","people"],"additionalProperties":false},"ventilation":{"type":"object","properties":{"latent":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"sensible":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"required":["latent","sensible"],"additionalProperties":false}},"required":["external","infiltration","internal","ventilation"],"additionalProperties":false}},"spaceHeatingLoads":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"external":{"type":"object","properties":{"doors":{"type":"number"},"roof":{"type":"number"},"skylights":{"type":"number"},"slab":{"type":"number"},"total":{"type":"number"},"walls":{"type":"number"},"windows":{"type":"number"}},"required":["doors","roof","skylights","slab","total","walls","windows"],"additionalProperties":false},"infiltration":{"type":"object","properties":{"sensible":{"type":"object","properties":{"doors":{"type":"number"},"general":{"type":"number"},"total":{"type":"number"},"windows":{"type":"number"}},"required":["doors","general","total","windows"],"additionalProperties":false},"total":{"type":"number"}},"required":["sensible","total"],"additionalProperties":false},"internal":{"type":"object","properties":{"misc":{"type":"number"},"total":{"type":"number"}},"required":["misc","total"],"additionalProperties":false},"total":{"type":"number"},"ventilation":{"type":"object","properties":{"sensible":{"type":"number"},"total":{"type":"number"}},"required":["sensible","total"],"additionalProperties":false}},"required":["external","infiltration","internal","total","ventilation"],"additionalProperties":false}},"systemCoolingLoads":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"external":{"type":"object","properties":{"doors":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"roof":{"type":"object","properties":{"ceilingPlenum":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"space":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"required":["ceilingPlenum","space"],"additionalProperties":false},"skylights":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"slab":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"walls":{"type":"object","properties":{"ceilingPlenum":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"space":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"required":["ceilingPlenum","space"],"additionalProperties":false},"windows":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"required":["doors","roof","skylights","slab","walls","windows"],"additionalProperties":false},"infiltration":{"type":"object","properties":{"latent":{"type":"object","properties":{"doors":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"general":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"windows":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"required":["doors","general","windows"],"additionalProperties":false},"sensible":{"type":"object","properties":{"doors":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"general":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"windows":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"required":["doors","general","windows"],"additionalProperties":false}},"required":["latent","sensible"],"additionalProperties":false},"internal":{"type":"object","properties":{"equipment":{"type":"array","items":{"type":"number"}},"lighting":{"type":"object","properties":{"ceilingPlenum":{"type":"array","items":{"type":"number"}},"space":{"type":"array","items":{"type":"number"}}},"required":["ceilingPlenum","space"],"additionalProperties":false},"misc":{"type":"object","properties":{"latent":{"type":"array","items":{"type":"number"}},"sensible":{"type":"array","items":{"type":"number"}}},"required":["latent","sensible"],"additionalProperties":false},"people":{"type":"object","properties":{"latent":{"type":"array","items":{"type":"number"}},"sensible":{"type":"array","items":{"type":"number"}}},"required":["latent","sensible"],"additionalProperties":false}},"required":["equipment","lighting","misc","people"],"additionalProperties":false},"ventilation":{"type":"object","properties":{"latent":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"sensible":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"required":["latent","sensible"],"additionalProperties":false}},"required":["external","infiltration","internal","ventilation"],"additionalProperties":false}},"systemHeatingLoads":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"external":{"type":"object","properties":{"doors":{"type":"number"},"roof":{"type":"number"},"skylights":{"type":"number"},"slab":{"type":"number"},"total":{"type":"number"},"walls":{"type":"number"},"windows":{"type":"number"}},"required":["doors","roof","skylights","slab","total","walls","windows"],"additionalProperties":false},"infiltration":{"type":"object","properties":{"sensible":{"type":"object","properties":{"doors":{"type":"number"},"general":{"type":"number"},"total":{"type":"number"},"windows":{"type":"number"}},"required":["doors","general","total","windows"],"additionalProperties":false},"total":{"type":"number"}},"required":["sensible","total"],"additionalProperties":false},"internal":{"type":"object","properties":{"misc":{"type":"number"},"total":{"type":"number"}},"required":["misc","total"],"additionalProperties":false},"total":{"type":"number"},"ventilation":{"type":"object","properties":{"sensible":{"type":"number"},"total":{"type":"number"}},"required":["sensible","total"],"additionalProperties":false}},"required":["external","infiltration","internal","total","ventilation"],"additionalProperties":false}},"zoneCoolingLoads":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"external":{"type":"object","properties":{"doors":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"roof":{"type":"object","properties":{"ceilingPlenum":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"space":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"required":["ceilingPlenum","space"],"additionalProperties":false},"skylights":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"slab":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"walls":{"type":"object","properties":{"ceilingPlenum":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"space":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"required":["ceilingPlenum","space"],"additionalProperties":false},"windows":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"required":["doors","roof","skylights","slab","walls","windows"],"additionalProperties":false},"infiltration":{"type":"object","properties":{"latent":{"type":"object","properties":{"doors":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"general":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"windows":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"required":["doors","general","windows"],"additionalProperties":false},"sensible":{"type":"object","properties":{"doors":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"general":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"windows":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"required":["doors","general","windows"],"additionalProperties":false}},"required":["latent","sensible"],"additionalProperties":false},"internal":{"type":"object","properties":{"equipment":{"type":"array","items":{"type":"number"}},"lighting":{"type":"object","properties":{"ceilingPlenum":{"type":"array","items":{"type":"number"}},"space":{"type":"array","items":{"type":"number"}}},"required":["ceilingPlenum","space"],"additionalProperties":false},"misc":{"type":"object","properties":{"latent":{"type":"array","items":{"type":"number"}},"sensible":{"type":"array","items":{"type":"number"}}},"required":["latent","sensible"],"additionalProperties":false},"people":{"type":"object","properties":{"latent":{"type":"array","items":{"type":"number"}},"sensible":{"type":"array","items":{"type":"number"}}},"required":["latent","sensible"],"additionalProperties":false}},"required":["equipment","lighting","misc","people"],"additionalProperties":false},"ventilation":{"type":"object","properties":{"latent":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"sensible":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"required":["latent","sensible"],"additionalProperties":false}},"required":["external","infiltration","internal","ventilation"],"additionalProperties":false}},"zoneHeatingLoads":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"external":{"type":"object","properties":{"doors":{"type":"number"},"roof":{"type":"number"},"skylights":{"type":"number"},"slab":{"type":"number"},"total":{"type":"number"},"walls":{"type":"number"},"windows":{"type":"number"}},"required":["doors","roof","skylights","slab","total","walls","windows"],"additionalProperties":false},"infiltration":{"type":"object","properties":{"sensible":{"type":"object","properties":{"doors":{"type":"number"},"general":{"type":"number"},"total":{"type":"number"},"windows":{"type":"number"}},"required":["doors","general","total","windows"],"additionalProperties":false},"total":{"type":"number"}},"required":["sensible","total"],"additionalProperties":false},"internal":{"type":"object","properties":{"misc":{"type":"number"},"total":{"type":"number"}},"required":["misc","total"],"additionalProperties":false},"total":{"type":"number"},"ventilation":{"type":"object","properties":{"sensible":{"type":"number"},"total":{"type":"number"}},"required":["sensible","total"],"additionalProperties":false}},"required":["external","infiltration","internal","total","ventilation"],"additionalProperties":false}}},"required":["spaceCoolingLoads","spaceHeatingLoads","systemCoolingLoads","systemHeatingLoads","zoneCoolingLoads","zoneHeatingLoads"],"additionalProperties":false,"description":"Per-scope cooling and heating loads."},"registerSchedule":{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"string"},"flowType":{"type":"string","enum":["SUPPLY","RETURN","EXHAUST"]},"inletSize":{"type":"string"},"manufacturer":{"type":"string"},"model":{"type":"string"},"modelType":{"type":"string","enum":["ceilingSquare","ceilingLinear","sidewall"]},"quantity":{"type":"number"},"registerCFM":{"type":"number"},"registerFPM":{"type":"number"},"registerNC":{"type":"number"},"registerSize":{"type":"string"},"spaceName":{"type":"string"},"spaceNumber":{"type":"string"},"totalCFM":{"type":"number"}},"required":["configuration","flowType","inletSize","manufacturer","model","modelType","quantity","registerCFM","registerFPM","registerNC","registerSize","spaceName","spaceNumber","totalCFM"],"additionalProperties":false},"description":"Per-space register schedule rows."},"drySideGraph":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"allOf":[{"type":"object","properties":{"adjacencies":{"type":"array","items":{"anyOf":[{"allOf":[{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false},{"type":"object","properties":{"adjacencyType":{"type":"string","const":"DUCT"},"ductSize":{"anyOf":[{"type":"object","properties":{"ductSizeType":{"type":"string","const":"CIRCLE"},"height":{"type":"number"}},"required":["ductSizeType","height"],"additionalProperties":false},{"type":"object","properties":{"ductSizeType":{"type":"string","const":"RECTANGLE"},"height":{"type":"number"},"width":{"type":"number"}},"required":["ductSizeType","height","width"],"additionalProperties":false}]},"ductTypeId":{"type":"string"}},"required":["adjacencyType"],"additionalProperties":false},{"type":"object","properties":{"flowRate":{"type":"number"}},"additionalProperties":false}]},{"allOf":[{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false},{"type":"object","properties":{"adjacencyType":{"type":"string","const":"LINK"}},"required":["adjacencyType"],"additionalProperties":false}]}]}},"id":{"type":"string"}},"required":["adjacencies","id"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"flowRate":{"type":"number"},"flowType":{"type":"string","enum":["SUPPLY","RETURN","EXHAUST"]},"placementType":{"type":"string","enum":["CEILING","SIDEWALL"]},"pressureLoss":{"type":"number"},"size":{"type":"object","properties":{"height":{"type":"number"},"width":{"type":"number"}},"required":["height","width"],"additionalProperties":false},"tag":{"type":"string"},"throw":{"type":"number"},"rotation":{"type":"number"},"inletSize":{"type":"string"},"nodeType":{"type":"string","const":"REGISTER"},"registerModelId":{"type":"string"},"spaceIds":{"type":"array","items":{"type":"string"}}},"required":["flowType","placementType","size","nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"nodeType":{"type":"string","const":"TERMINAL_UNIT"},"selections":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"leavingAirTemp":{"type":"number"},"productId":{"type":"string"},"quantity":{"type":"number"}},"required":["productId","quantity"],"additionalProperties":false}},"zoneId":{"type":"string"}},"required":["nodeType","zoneId"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"nodeType":{"type":"string","const":"CENTRAL_UNIT"},"selections":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"leavingAirTemp":{"type":"number"},"productId":{"type":"string"},"quantity":{"type":"number"}},"required":["productId","quantity"],"additionalProperties":false}},"systemId":{"type":"string"}},"required":["nodeType","systemId"],"additionalProperties":false},{"type":"object","properties":{"customLossCoefficients":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"customPressureLosses":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"nodeType":{"type":"string","const":"FITTING"}},"required":["nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"flowType":{"type":"string","enum":["SUPPLY","RETURN","EXHAUST"]},"nodeType":{"type":"string","const":"PORTAL"}},"required":["flowType","nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"nodeType":{"type":"string","const":"AIR_CLEANER"},"productId":{"type":"string"},"selections":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"leavingAirTemp":{"type":"number"},"productId":{"type":"string"},"quantity":{"type":"number"}},"required":["productId","quantity"],"additionalProperties":false}}},"required":["nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"nodeType":{"type":"string","const":"PUMP"},"ratedHead":{"type":"number"},"tag":{"type":"string"}},"required":["nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"nodeType":{"type":"string","const":"VALVE"},"tag":{"type":"string"}},"required":["nodeType"],"additionalProperties":false},{"type":"object","properties":{"pressureLoss":{"type":"number"},"rotation":{"type":"number"},"flowRate":{"type":"number"},"nodeType":{"type":"string","const":"TERMINAL_EQUIPMENT"},"selections":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"leavingAirTemp":{"type":"number"},"productId":{"type":"string"},"quantity":{"type":"number"}},"required":["productId","quantity"],"additionalProperties":false}},"tag":{"type":"string"},"zoneId":{"type":"string"}},"required":["nodeType"],"additionalProperties":false}]},{"type":"object","properties":{"level":{"type":"number"},"point":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"}},"required":["x","y"],"additionalProperties":false}},"required":["level","point"],"additionalProperties":false},{"type":"object","properties":{"pressure":{"type":"number"}},"additionalProperties":false}]},"description":"Duct graph annotated with flow rates, duct sizes, and pressures."},"ventilation":{"type":"object","properties":{"project":{"type":"object","properties":{"requiredOutsideAirflowComponents":{"description":"ASHRAE 62.1 V_BZ components (people + area).","type":"object","properties":{"code":{"type":"object","properties":{"ach":{"type":"number"}},"required":["ach"],"additionalProperties":false},"load":{"type":"object","properties":{"area":{"type":"number"},"people":{"type":"number"},"total":{"type":"number"}},"required":["area","people","total"],"additionalProperties":false}},"required":["code","load"],"additionalProperties":false},"calculatedOutsideAirflow":{"description":"Code-calculated outside airflow V_OZ per condition.","type":"object","properties":{"cooling":{"type":"number"},"heating":{"type":"number"},"max":{"type":"number"}},"required":["cooling","heating","max"],"additionalProperties":false},"peopleOutdoorAirRate":{"description":"People outdoor air rate Rp (CFM/person). Aggregate scopes only.","type":"number"},"areaOutdoorAirRate":{"description":"Area outdoor air rate Ra (CFM/ft²). Aggregate scopes only.","type":"number"},"dominantSpaceTypeId":{"description":"ID of the space type contributing the greatest total Voz. Aggregate scopes only.","type":"string"},"iaqp":{"description":"ASHRAE 62.1 Indoor Air Quality Procedure results.","type":"object","properties":{"airCleanerCount":{"type":"number"},"cleaningAirflow":{"type":"number"},"co2":{"type":"object","properties":{"requiredOutsideAirflow":{"type":"number"},"controls":{"type":"boolean"}},"required":["requiredOutsideAirflow","controls"],"additionalProperties":false},"controllingCompoundId":{"type":"string"},"minimumOutsideAirflow":{"anyOf":[{"type":"number"},{"type":"string","const":"not achievable"}]},"minimumOutsideAirflowByCompound":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string","const":"not achievable"}]}}},"required":["airCleanerCount","cleaningAirflow","minimumOutsideAirflow"],"additionalProperties":false}},"additionalProperties":false,"description":"Ventilation results for a scope."},"spaces":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"requiredOutsideAirflowComponents":{"description":"ASHRAE 62.1 V_BZ components (people + area).","type":"object","properties":{"code":{"type":"object","properties":{"ach":{"type":"number"}},"required":["ach"],"additionalProperties":false},"load":{"type":"object","properties":{"area":{"type":"number"},"people":{"type":"number"},"total":{"type":"number"}},"required":["area","people","total"],"additionalProperties":false}},"required":["code","load"],"additionalProperties":false},"calculatedOutsideAirflow":{"description":"Code-calculated outside airflow V_OZ per condition.","type":"object","properties":{"cooling":{"type":"number"},"heating":{"type":"number"},"max":{"type":"number"}},"required":["cooling","heating","max"],"additionalProperties":false},"peopleOutdoorAirRate":{"description":"People outdoor air rate Rp (CFM/person). Aggregate scopes only.","type":"number"},"areaOutdoorAirRate":{"description":"Area outdoor air rate Ra (CFM/ft²). Aggregate scopes only.","type":"number"},"dominantSpaceTypeId":{"description":"ID of the space type contributing the greatest total Voz. Aggregate scopes only.","type":"string"},"iaqp":{"description":"ASHRAE 62.1 Indoor Air Quality Procedure results.","type":"object","properties":{"airCleanerCount":{"type":"number"},"cleaningAirflow":{"type":"number"},"co2":{"type":"object","properties":{"requiredOutsideAirflow":{"type":"number"},"controls":{"type":"boolean"}},"required":["requiredOutsideAirflow","controls"],"additionalProperties":false},"controllingCompoundId":{"type":"string"},"minimumOutsideAirflow":{"anyOf":[{"type":"number"},{"type":"string","const":"not achievable"}]},"minimumOutsideAirflowByCompound":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string","const":"not achievable"}]}}},"required":["airCleanerCount","cleaningAirflow","minimumOutsideAirflow"],"additionalProperties":false}},"additionalProperties":false,"description":"Ventilation results for a scope."}},"systems":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"requiredOutsideAirflowComponents":{"description":"ASHRAE 62.1 V_BZ components (people + area).","type":"object","properties":{"code":{"type":"object","properties":{"ach":{"type":"number"}},"required":["ach"],"additionalProperties":false},"load":{"type":"object","properties":{"area":{"type":"number"},"people":{"type":"number"},"total":{"type":"number"}},"required":["area","people","total"],"additionalProperties":false}},"required":["code","load"],"additionalProperties":false},"calculatedOutsideAirflow":{"description":"Code-calculated outside airflow V_OZ per condition.","type":"object","properties":{"cooling":{"type":"number"},"heating":{"type":"number"},"max":{"type":"number"}},"required":["cooling","heating","max"],"additionalProperties":false},"peopleOutdoorAirRate":{"description":"People outdoor air rate Rp (CFM/person). Aggregate scopes only.","type":"number"},"areaOutdoorAirRate":{"description":"Area outdoor air rate Ra (CFM/ft²). Aggregate scopes only.","type":"number"},"dominantSpaceTypeId":{"description":"ID of the space type contributing the greatest total Voz. Aggregate scopes only.","type":"string"},"iaqp":{"description":"ASHRAE 62.1 Indoor Air Quality Procedure results.","type":"object","properties":{"airCleanerCount":{"type":"number"},"cleaningAirflow":{"type":"number"},"co2":{"type":"object","properties":{"requiredOutsideAirflow":{"type":"number"},"controls":{"type":"boolean"}},"required":["requiredOutsideAirflow","controls"],"additionalProperties":false},"controllingCompoundId":{"type":"string"},"minimumOutsideAirflow":{"anyOf":[{"type":"number"},{"type":"string","const":"not achievable"}]},"minimumOutsideAirflowByCompound":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string","const":"not achievable"}]}}},"required":["airCleanerCount","cleaningAirflow","minimumOutsideAirflow"],"additionalProperties":false}},"additionalProperties":false,"description":"Ventilation results for a scope."}},"zones":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"requiredOutsideAirflowComponents":{"description":"ASHRAE 62.1 V_BZ components (people + area).","type":"object","properties":{"code":{"type":"object","properties":{"ach":{"type":"number"}},"required":["ach"],"additionalProperties":false},"load":{"type":"object","properties":{"area":{"type":"number"},"people":{"type":"number"},"total":{"type":"number"}},"required":["area","people","total"],"additionalProperties":false}},"required":["code","load"],"additionalProperties":false},"calculatedOutsideAirflow":{"description":"Code-calculated outside airflow V_OZ per condition.","type":"object","properties":{"cooling":{"type":"number"},"heating":{"type":"number"},"max":{"type":"number"}},"required":["cooling","heating","max"],"additionalProperties":false},"peopleOutdoorAirRate":{"description":"People outdoor air rate Rp (CFM/person). Aggregate scopes only.","type":"number"},"areaOutdoorAirRate":{"description":"Area outdoor air rate Ra (CFM/ft²). Aggregate scopes only.","type":"number"},"dominantSpaceTypeId":{"description":"ID of the space type contributing the greatest total Voz. Aggregate scopes only.","type":"string"},"iaqp":{"description":"ASHRAE 62.1 Indoor Air Quality Procedure results.","type":"object","properties":{"airCleanerCount":{"type":"number"},"cleaningAirflow":{"type":"number"},"co2":{"type":"object","properties":{"requiredOutsideAirflow":{"type":"number"},"controls":{"type":"boolean"}},"required":["requiredOutsideAirflow","controls"],"additionalProperties":false},"controllingCompoundId":{"type":"string"},"minimumOutsideAirflow":{"anyOf":[{"type":"number"},{"type":"string","const":"not achievable"}]},"minimumOutsideAirflowByCompound":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string","const":"not achievable"}]}}},"required":["airCleanerCount","cleaningAirflow","minimumOutsideAirflow"],"additionalProperties":false}},"additionalProperties":false,"description":"Ventilation results for a scope."}},"equipment":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"centralUnit":{"description":"Central-unit outdoor-air aggregates (V_OT, diversity, sum of spaces).","type":"object","properties":{"diversity":{"type":"number"},"outdoorIntakeMultiZone":{"type":"number"},"outdoorIntakeSumOfSpaces":{"type":"number"}},"required":["diversity","outdoorIntakeMultiZone","outdoorIntakeSumOfSpaces"],"additionalProperties":false}},"additionalProperties":false,"description":"Ventilation results for a piece of equipment."}}},"required":["spaces","systems","zones","equipment"],"additionalProperties":false,"description":"ASHRAE 62.1 ventilation results per scope and equipment."},"equipment":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"airflows":{"type":"object","properties":{"centralUnit":{"type":"object","properties":{"diversity":{"type":"number"},"outdoorIntakeMultiZone":{"type":"number"},"outdoorIntakeSumOfSpaces":{"type":"number"}},"required":["diversity","outdoorIntakeMultiZone","outdoorIntakeSumOfSpaces"],"additionalProperties":false},"raw":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false}}},"required":["raw"],"additionalProperties":false},"modes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"pipeline":{"type":"object","properties":{"componentResults":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"oneOf":[{"type":"object","properties":{"componentType":{"type":"string","const":"OUTSIDE_AIR_INTAKE"},"inputs":{"type":"object","properties":{"equipmentAir":{"type":"object","properties":{"flowRate":{"type":"number"},"psychrometrics":{"type":"object","properties":{"RH":{"type":"number"},"T_db":{"type":"number"},"T_wb":{"type":"number"},"W":{"type":"number"},"W_s":{"type":"number"},"W_sTwb":{"type":"number"},"elevation":{"type":"number"},"h":{"type":"number"},"p":{"type":"number"},"p_v":{"type":"number"},"p_ws":{"type":"number"},"p_wsTwb":{"type":"number"},"t_d":{"type":"number"},"v":{"type":"number"},"μ":{"type":"number"}},"required":["RH","T_db","T_wb","W","W_s","W_sTwb","elevation","h","p","p_v","p_ws","p_wsTwb","t_d","v","μ"],"additionalProperties":false}},"required":["flowRate","psychrometrics"],"additionalProperties":false},"outsideAir":{"type":"object","properties":{"flowRate":{"type":"number"},"psychrometrics":{"type":"object","properties":{"RH":{"type":"number"},"T_db":{"type":"number"},"T_wb":{"type":"number"},"W":{"type":"number"},"W_s":{"type":"number"},"W_sTwb":{"type":"number"},"elevation":{"type":"number"},"h":{"type":"number"},"p":{"type":"number"},"p_v":{"type":"number"},"p_ws":{"type":"number"},"p_wsTwb":{"type":"number"},"t_d":{"type":"number"},"v":{"type":"number"},"μ":{"type":"number"}},"required":["RH","T_db","T_wb","W","W_s","W_sTwb","elevation","h","p","p_v","p_ws","p_wsTwb","t_d","v","μ"],"additionalProperties":false}},"required":["flowRate","psychrometrics"],"additionalProperties":false}},"required":["outsideAir"],"additionalProperties":false},"outputs":{"type":"object","properties":{"equipmentAir":{"type":"object","properties":{"flowRate":{"type":"number"},"psychrometrics":{"type":"object","properties":{"RH":{"type":"number"},"T_db":{"type":"number"},"T_wb":{"type":"number"},"W":{"type":"number"},"W_s":{"type":"number"},"W_sTwb":{"type":"number"},"elevation":{"type":"number"},"h":{"type":"number"},"p":{"type":"number"},"p_v":{"type":"number"},"p_ws":{"type":"number"},"p_wsTwb":{"type":"number"},"t_d":{"type":"number"},"v":{"type":"number"},"μ":{"type":"number"}},"required":["RH","T_db","T_wb","W","W_s","W_sTwb","elevation","h","p","p_v","p_ws","p_wsTwb","t_d","v","μ"],"additionalProperties":false}},"required":["flowRate","psychrometrics"],"additionalProperties":false}},"required":["equipmentAir"],"additionalProperties":false}},"required":["componentType","inputs","outputs"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"ENERGY_RECOVERY_UNIT"},"inputs":{"type":"object","properties":{"equipmentAir":{"type":"object","properties":{"flowRate":{"type":"number"},"psychrometrics":{"type":"object","properties":{"RH":{"type":"number"},"T_db":{"type":"number"},"T_wb":{"type":"number"},"W":{"type":"number"},"W_s":{"type":"number"},"W_sTwb":{"type":"number"},"elevation":{"type":"number"},"h":{"type":"number"},"p":{"type":"number"},"p_v":{"type":"number"},"p_ws":{"type":"number"},"p_wsTwb":{"type":"number"},"t_d":{"type":"number"},"v":{"type":"number"},"μ":{"type":"number"}},"required":["RH","T_db","T_wb","W","W_s","W_sTwb","elevation","h","p","p_v","p_ws","p_wsTwb","t_d","v","μ"],"additionalProperties":false}},"required":["flowRate","psychrometrics"],"additionalProperties":false},"exhaustAir":{"type":"object","properties":{"flowRate":{"type":"number"},"psychrometrics":{"type":"object","properties":{"RH":{"type":"number"},"T_db":{"type":"number"},"T_wb":{"type":"number"},"W":{"type":"number"},"W_s":{"type":"number"},"W_sTwb":{"type":"number"},"elevation":{"type":"number"},"h":{"type":"number"},"p":{"type":"number"},"p_v":{"type":"number"},"p_ws":{"type":"number"},"p_wsTwb":{"type":"number"},"t_d":{"type":"number"},"v":{"type":"number"},"μ":{"type":"number"}},"required":["RH","T_db","T_wb","W","W_s","W_sTwb","elevation","h","p","p_v","p_ws","p_wsTwb","t_d","v","μ"],"additionalProperties":false}},"required":["flowRate","psychrometrics"],"additionalProperties":false}},"required":["equipmentAir"],"additionalProperties":false},"outputs":{"type":"object","properties":{"equipmentAir":{"type":"object","properties":{"flowRate":{"type":"number"},"psychrometrics":{"type":"object","properties":{"RH":{"type":"number"},"T_db":{"type":"number"},"T_wb":{"type":"number"},"W":{"type":"number"},"W_s":{"type":"number"},"W_sTwb":{"type":"number"},"elevation":{"type":"number"},"h":{"type":"number"},"p":{"type":"number"},"p_v":{"type":"number"},"p_ws":{"type":"number"},"p_wsTwb":{"type":"number"},"t_d":{"type":"number"},"v":{"type":"number"},"μ":{"type":"number"}},"required":["RH","T_db","T_wb","W","W_s","W_sTwb","elevation","h","p","p_v","p_ws","p_wsTwb","t_d","v","μ"],"additionalProperties":false}},"required":["flowRate","psychrometrics"],"additionalProperties":false},"exhaustAir":{"type":"object","properties":{"flowRate":{"type":"number"},"psychrometrics":{"type":"object","properties":{"RH":{"type":"number"},"T_db":{"type":"number"},"T_wb":{"type":"number"},"W":{"type":"number"},"W_s":{"type":"number"},"W_sTwb":{"type":"number"},"elevation":{"type":"number"},"h":{"type":"number"},"p":{"type":"number"},"p_v":{"type":"number"},"p_ws":{"type":"number"},"p_wsTwb":{"type":"number"},"t_d":{"type":"number"},"v":{"type":"number"},"μ":{"type":"number"}},"required":["RH","T_db","T_wb","W","W_s","W_sTwb","elevation","h","p","p_v","p_ws","p_wsTwb","t_d","v","μ"],"additionalProperties":false}},"required":["flowRate","psychrometrics"],"additionalProperties":false}},"required":["equipmentAir"],"additionalProperties":false}},"required":["componentType","inputs","outputs"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"RETURN_AIR_INTAKE"},"inputs":{"type":"object","properties":{"equipmentAir":{"type":"object","properties":{"flowRate":{"type":"number"},"psychrometrics":{"type":"object","properties":{"RH":{"type":"number"},"T_db":{"type":"number"},"T_wb":{"type":"number"},"W":{"type":"number"},"W_s":{"type":"number"},"W_sTwb":{"type":"number"},"elevation":{"type":"number"},"h":{"type":"number"},"p":{"type":"number"},"p_v":{"type":"number"},"p_ws":{"type":"number"},"p_wsTwb":{"type":"number"},"t_d":{"type":"number"},"v":{"type":"number"},"μ":{"type":"number"}},"required":["RH","T_db","T_wb","W","W_s","W_sTwb","elevation","h","p","p_v","p_ws","p_wsTwb","t_d","v","μ"],"additionalProperties":false}},"required":["flowRate","psychrometrics"],"additionalProperties":false},"returnAir":{"type":"object","properties":{"flowRate":{"type":"number"},"psychrometrics":{"type":"object","properties":{"RH":{"type":"number"},"T_db":{"type":"number"},"T_wb":{"type":"number"},"W":{"type":"number"},"W_s":{"type":"number"},"W_sTwb":{"type":"number"},"elevation":{"type":"number"},"h":{"type":"number"},"p":{"type":"number"},"p_v":{"type":"number"},"p_ws":{"type":"number"},"p_wsTwb":{"type":"number"},"t_d":{"type":"number"},"v":{"type":"number"},"μ":{"type":"number"}},"required":["RH","T_db","T_wb","W","W_s","W_sTwb","elevation","h","p","p_v","p_ws","p_wsTwb","t_d","v","μ"],"additionalProperties":false}},"required":["flowRate","psychrometrics"],"additionalProperties":false}},"additionalProperties":false},"outputs":{"type":"object","properties":{"equipmentAir":{"type":"object","properties":{"flowRate":{"type":"number"},"psychrometrics":{"type":"object","properties":{"RH":{"type":"number"},"T_db":{"type":"number"},"T_wb":{"type":"number"},"W":{"type":"number"},"W_s":{"type":"number"},"W_sTwb":{"type":"number"},"elevation":{"type":"number"},"h":{"type":"number"},"p":{"type":"number"},"p_v":{"type":"number"},"p_ws":{"type":"number"},"p_wsTwb":{"type":"number"},"t_d":{"type":"number"},"v":{"type":"number"},"μ":{"type":"number"}},"required":["RH","T_db","T_wb","W","W_s","W_sTwb","elevation","h","p","p_v","p_ws","p_wsTwb","t_d","v","μ"],"additionalProperties":false}},"required":["flowRate","psychrometrics"],"additionalProperties":false},"reliefAir":{"type":"object","properties":{"flowRate":{"type":"number"},"psychrometrics":{"type":"object","properties":{"RH":{"type":"number"},"T_db":{"type":"number"},"T_wb":{"type":"number"},"W":{"type":"number"},"W_s":{"type":"number"},"W_sTwb":{"type":"number"},"elevation":{"type":"number"},"h":{"type":"number"},"p":{"type":"number"},"p_v":{"type":"number"},"p_ws":{"type":"number"},"p_wsTwb":{"type":"number"},"t_d":{"type":"number"},"v":{"type":"number"},"μ":{"type":"number"}},"required":["RH","T_db","T_wb","W","W_s","W_sTwb","elevation","h","p","p_v","p_ws","p_wsTwb","t_d","v","μ"],"additionalProperties":false}},"required":["flowRate","psychrometrics"],"additionalProperties":false}},"required":["equipmentAir"],"additionalProperties":false}},"required":["componentType","inputs","outputs"],"additionalProperties":false},{"type":"object","properties":{"coilLoad":{"type":"object","properties":{"T_db":{"type":"number"},"T_wb":{"type":"number"},"m_w":{"type":"number"},"q":{"type":"number"}},"required":["T_db","T_wb","q"],"additionalProperties":false},"componentType":{"type":"string","const":"COOLING_COIL"},"inputs":{"type":"object","properties":{"equipmentAir":{"type":"object","properties":{"flowRate":{"type":"number"},"psychrometrics":{"type":"object","properties":{"RH":{"type":"number"},"T_db":{"type":"number"},"T_wb":{"type":"number"},"W":{"type":"number"},"W_s":{"type":"number"},"W_sTwb":{"type":"number"},"elevation":{"type":"number"},"h":{"type":"number"},"p":{"type":"number"},"p_v":{"type":"number"},"p_ws":{"type":"number"},"p_wsTwb":{"type":"number"},"t_d":{"type":"number"},"v":{"type":"number"},"μ":{"type":"number"}},"required":["RH","T_db","T_wb","W","W_s","W_sTwb","elevation","h","p","p_v","p_ws","p_wsTwb","t_d","v","μ"],"additionalProperties":false}},"required":["flowRate","psychrometrics"],"additionalProperties":false}},"required":["equipmentAir"],"additionalProperties":false},"outputs":{"type":"object","properties":{"equipmentAir":{"type":"object","properties":{"flowRate":{"type":"number"},"psychrometrics":{"type":"object","properties":{"RH":{"type":"number"},"T_db":{"type":"number"},"T_wb":{"type":"number"},"W":{"type":"number"},"W_s":{"type":"number"},"W_sTwb":{"type":"number"},"elevation":{"type":"number"},"h":{"type":"number"},"p":{"type":"number"},"p_v":{"type":"number"},"p_ws":{"type":"number"},"p_wsTwb":{"type":"number"},"t_d":{"type":"number"},"v":{"type":"number"},"μ":{"type":"number"}},"required":["RH","T_db","T_wb","W","W_s","W_sTwb","elevation","h","p","p_v","p_ws","p_wsTwb","t_d","v","μ"],"additionalProperties":false}},"required":["flowRate","psychrometrics"],"additionalProperties":false}},"required":["equipmentAir"],"additionalProperties":false},"sensibleCoilLoad":{"type":"object","properties":{"T_db":{"type":"number"},"T_wb":{"type":"number"},"m_w":{"type":"number"},"q":{"type":"number"}},"required":["T_db","T_wb","q"],"additionalProperties":false},"shr":{"type":"number"},"water":{"type":"object","properties":{"deltaT":{"type":"number"},"flowRate":{"type":"number"}},"additionalProperties":false}},"required":["coilLoad","componentType","inputs","outputs"],"additionalProperties":false},{"type":"object","properties":{"coilLoad":{"type":"object","properties":{"T_db":{"type":"number"},"T_wb":{"type":"number"},"m_w":{"type":"number"},"q":{"type":"number"}},"required":["T_db","T_wb","q"],"additionalProperties":false},"componentType":{"type":"string","const":"HEATING_COIL"},"inputs":{"type":"object","properties":{"equipmentAir":{"type":"object","properties":{"flowRate":{"type":"number"},"psychrometrics":{"type":"object","properties":{"RH":{"type":"number"},"T_db":{"type":"number"},"T_wb":{"type":"number"},"W":{"type":"number"},"W_s":{"type":"number"},"W_sTwb":{"type":"number"},"elevation":{"type":"number"},"h":{"type":"number"},"p":{"type":"number"},"p_v":{"type":"number"},"p_ws":{"type":"number"},"p_wsTwb":{"type":"number"},"t_d":{"type":"number"},"v":{"type":"number"},"μ":{"type":"number"}},"required":["RH","T_db","T_wb","W","W_s","W_sTwb","elevation","h","p","p_v","p_ws","p_wsTwb","t_d","v","μ"],"additionalProperties":false}},"required":["flowRate","psychrometrics"],"additionalProperties":false}},"required":["equipmentAir"],"additionalProperties":false},"outputs":{"type":"object","properties":{"equipmentAir":{"type":"object","properties":{"flowRate":{"type":"number"},"psychrometrics":{"type":"object","properties":{"RH":{"type":"number"},"T_db":{"type":"number"},"T_wb":{"type":"number"},"W":{"type":"number"},"W_s":{"type":"number"},"W_sTwb":{"type":"number"},"elevation":{"type":"number"},"h":{"type":"number"},"p":{"type":"number"},"p_v":{"type":"number"},"p_ws":{"type":"number"},"p_wsTwb":{"type":"number"},"t_d":{"type":"number"},"v":{"type":"number"},"μ":{"type":"number"}},"required":["RH","T_db","T_wb","W","W_s","W_sTwb","elevation","h","p","p_v","p_ws","p_wsTwb","t_d","v","μ"],"additionalProperties":false}},"required":["flowRate","psychrometrics"],"additionalProperties":false}},"required":["equipmentAir"],"additionalProperties":false},"water":{"type":"object","properties":{"deltaT":{"type":"number"},"flowRate":{"type":"number"}},"additionalProperties":false}},"required":["coilLoad","componentType","inputs","outputs"],"additionalProperties":false},{"type":"object","properties":{"componentType":{"type":"string","const":"EQUIPMENT_INEFFICIENCY"},"inputs":{"type":"object","properties":{"equipmentAir":{"type":"object","properties":{"flowRate":{"type":"number"},"psychrometrics":{"type":"object","properties":{"RH":{"type":"number"},"T_db":{"type":"number"},"T_wb":{"type":"number"},"W":{"type":"number"},"W_s":{"type":"number"},"W_sTwb":{"type":"number"},"elevation":{"type":"number"},"h":{"type":"number"},"p":{"type":"number"},"p_v":{"type":"number"},"p_ws":{"type":"number"},"p_wsTwb":{"type":"number"},"t_d":{"type":"number"},"v":{"type":"number"},"μ":{"type":"number"}},"required":["RH","T_db","T_wb","W","W_s","W_sTwb","elevation","h","p","p_v","p_ws","p_wsTwb","t_d","v","μ"],"additionalProperties":false}},"required":["flowRate","psychrometrics"],"additionalProperties":false}},"required":["equipmentAir"],"additionalProperties":false},"outputs":{"type":"object","properties":{"equipmentAir":{"type":"object","properties":{"flowRate":{"type":"number"},"psychrometrics":{"type":"object","properties":{"RH":{"type":"number"},"T_db":{"type":"number"},"T_wb":{"type":"number"},"W":{"type":"number"},"W_s":{"type":"number"},"W_sTwb":{"type":"number"},"elevation":{"type":"number"},"h":{"type":"number"},"p":{"type":"number"},"p_v":{"type":"number"},"p_ws":{"type":"number"},"p_wsTwb":{"type":"number"},"t_d":{"type":"number"},"v":{"type":"number"},"μ":{"type":"number"}},"required":["RH","T_db","T_wb","W","W_s","W_sTwb","elevation","h","p","p_v","p_ws","p_wsTwb","t_d","v","μ"],"additionalProperties":false}},"required":["flowRate","psychrometrics"],"additionalProperties":false}},"required":["equipmentAir"],"additionalProperties":false}},"required":["componentType","inputs","outputs"],"additionalProperties":false}]}},"decoupledAirStream":{"type":"object","properties":{"flowRate":{"type":"number"},"psychrometrics":{"type":"object","properties":{"RH":{"type":"number"},"T_db":{"type":"number"},"T_wb":{"type":"number"},"W":{"type":"number"},"W_s":{"type":"number"},"W_sTwb":{"type":"number"},"elevation":{"type":"number"},"h":{"type":"number"},"p":{"type":"number"},"p_v":{"type":"number"},"p_ws":{"type":"number"},"p_wsTwb":{"type":"number"},"t_d":{"type":"number"},"v":{"type":"number"},"μ":{"type":"number"}},"required":["RH","T_db","T_wb","W","W_s","W_sTwb","elevation","h","p","p_v","p_ws","p_wsTwb","t_d","v","μ"],"additionalProperties":false}},"required":["flowRate","psychrometrics"],"additionalProperties":false},"supplyInletAirStream":{"type":"object","properties":{"flowRate":{"type":"number"},"psychrometrics":{"type":"object","properties":{"RH":{"type":"number"},"T_db":{"type":"number"},"T_wb":{"type":"number"},"W":{"type":"number"},"W_s":{"type":"number"},"W_sTwb":{"type":"number"},"elevation":{"type":"number"},"h":{"type":"number"},"p":{"type":"number"},"p_v":{"type":"number"},"p_ws":{"type":"number"},"p_wsTwb":{"type":"number"},"t_d":{"type":"number"},"v":{"type":"number"},"μ":{"type":"number"}},"required":["RH","T_db","T_wb","W","W_s","W_sTwb","elevation","h","p","p_v","p_ws","p_wsTwb","t_d","v","μ"],"additionalProperties":false}},"required":["flowRate","psychrometrics"],"additionalProperties":false},"supplyOutletAirStream":{"type":"object","properties":{"flowRate":{"type":"number"},"psychrometrics":{"type":"object","properties":{"RH":{"type":"number"},"T_db":{"type":"number"},"T_wb":{"type":"number"},"W":{"type":"number"},"W_s":{"type":"number"},"W_sTwb":{"type":"number"},"elevation":{"type":"number"},"h":{"type":"number"},"p":{"type":"number"},"p_v":{"type":"number"},"p_ws":{"type":"number"},"p_wsTwb":{"type":"number"},"t_d":{"type":"number"},"v":{"type":"number"},"μ":{"type":"number"}},"required":["RH","T_db","T_wb","W","W_s","W_sTwb","elevation","h","p","p_v","p_ws","p_wsTwb","t_d","v","μ"],"additionalProperties":false}},"required":["flowRate","psychrometrics"],"additionalProperties":false}},"required":["componentResults"],"additionalProperties":false},"summary":{"type":"object","properties":{"airflows":{"type":"object","properties":{"asConfigured":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false},"withoutLeakage":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false}},"required":["asConfigured","withoutLeakage"],"additionalProperties":false},"coilTotals":{"type":"object","properties":{"coilGPM":{"type":"number"},"coilLoad":{"type":"number"},"sensibleCoilLoad":{"type":"number"}},"additionalProperties":false},"systemProcess":{"type":"object","properties":{"ductHeatGainOrLoss":{"type":"number"},"ductLeakage":{"type":"number"},"fanMotorHeatGain":{"type":"number"},"otherInefficiencies":{"type":"number"},"total":{"type":"number"}},"required":["fanMotorHeatGain","otherInefficiencies","total"],"additionalProperties":false}},"required":["airflows","systemProcess"],"additionalProperties":false}},"required":["pipeline","summary"],"additionalProperties":false}}},"additionalProperties":false},"description":"Per-equipment calculated outputs, keyed by equipment id."},"checksums":{"type":"object","properties":{"project":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"airflowDensity":{"type":"number"},"airflowLoadRatio":{"type":"number"},"exhaustAirflowDensity":{"type":"number"},"loadDensity":{"type":"number"},"loadDistribution":{"type":"number"},"oaAirflowDensity":{"type":"number"},"oaAirflowPerPerson":{"type":"number"},"oaFraction":{"type":"number"},"shr":{"type":"number"},"equipmentDensity":{"type":"number"},"lightingDensity":{"type":"number"},"spacePeakSumSensibleLoad":{"type":"number"},"spacePeakSumSupplyCFM":{"type":"number"},"spacePeakSumTotalLoad":{"type":"number"}},"additionalProperties":false}},"spaces":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"airflowDensity":{"type":"number"},"airflowLoadRatio":{"type":"number"},"exhaustAirflowDensity":{"type":"number"},"loadDensity":{"type":"number"},"loadDistribution":{"type":"number"},"oaAirflowDensity":{"type":"number"},"oaAirflowPerPerson":{"type":"number"},"oaFraction":{"type":"number"},"shr":{"type":"number"},"equipmentDensity":{"type":"number"},"lightingDensity":{"type":"number"},"spacePeakSumSensibleLoad":{"type":"number"},"spacePeakSumSupplyCFM":{"type":"number"},"spacePeakSumTotalLoad":{"type":"number"}},"additionalProperties":false}}},"systems":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"airflowDensity":{"type":"number"},"airflowLoadRatio":{"type":"number"},"exhaustAirflowDensity":{"type":"number"},"loadDensity":{"type":"number"},"loadDistribution":{"type":"number"},"oaAirflowDensity":{"type":"number"},"oaAirflowPerPerson":{"type":"number"},"oaFraction":{"type":"number"},"shr":{"type":"number"},"equipmentDensity":{"type":"number"},"lightingDensity":{"type":"number"},"spacePeakSumSensibleLoad":{"type":"number"},"spacePeakSumSupplyCFM":{"type":"number"},"spacePeakSumTotalLoad":{"type":"number"}},"additionalProperties":false}}},"zones":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"airflowDensity":{"type":"number"},"airflowLoadRatio":{"type":"number"},"exhaustAirflowDensity":{"type":"number"},"loadDensity":{"type":"number"},"loadDistribution":{"type":"number"},"oaAirflowDensity":{"type":"number"},"oaAirflowPerPerson":{"type":"number"},"oaFraction":{"type":"number"},"shr":{"type":"number"},"equipmentDensity":{"type":"number"},"lightingDensity":{"type":"number"},"spacePeakSumSensibleLoad":{"type":"number"},"spacePeakSumSupplyCFM":{"type":"number"},"spacePeakSumTotalLoad":{"type":"number"}},"additionalProperties":false}}},"equipment":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"airflowDensity":{"type":"number"},"airflowLoadRatio":{"type":"number"},"exhaustAirflowDensity":{"type":"number"},"loadDensity":{"type":"number"},"loadDistribution":{"type":"number"},"oaAirflowDensity":{"type":"number"},"oaAirflowPerPerson":{"type":"number"},"oaFraction":{"type":"number"},"shr":{"type":"number"}},"additionalProperties":false}}}},"required":["spaces","systems","zones","equipment"],"additionalProperties":false,"description":"Design checksums per scope and equipment."},"airflows":{"type":"object","properties":{"project":{"type":"object","properties":{"byMode":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"airflowDifferential":{"type":"object","properties":{"design":{"type":"number"},"required":{"type":"number"}},"required":["design","required"],"additionalProperties":false},"design":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false},"monthHour":{"type":"object","properties":{"hour":{"type":"number"},"month":{"type":"number"}},"required":["hour","month"],"additionalProperties":false},"required":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false},"spacePeaksSum":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false},"supplySources":{"type":"object","properties":{"codeRequiredSupply":{"type":"number"},"directAirSpaceSensible":{"type":"number"},"directOutsideAir":{"type":"number"},"loadRequiredSupply":{"type":"number"},"totalSpaceSensible":{"type":"number"}},"required":["codeRequiredSupply","directAirSpaceSensible","directOutsideAir","loadRequiredSupply","totalSpaceSensible"],"additionalProperties":false}},"required":["airflowDifferential","design","required","spacePeaksSum","supplySources"],"additionalProperties":false}},"calculatedOutsideAirflow":{"type":"object","properties":{"cooling":{"type":"number"},"heating":{"type":"number"},"max":{"type":"number"}},"required":["cooling","heating","max"],"additionalProperties":false},"max":{"type":"object","properties":{"airflowDifferential":{"type":"object","properties":{"design":{"type":"number"},"required":{"type":"number"}},"required":["design","required"],"additionalProperties":false},"design":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false},"required":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false}},"required":["airflowDifferential","design","required"],"additionalProperties":false},"requiredOutsideAirflowComponents":{"type":"object","properties":{"code":{"type":"object","properties":{"ach":{"type":"number"}},"required":["ach"],"additionalProperties":false},"load":{"type":"object","properties":{"area":{"type":"number"},"people":{"type":"number"},"total":{"type":"number"}},"required":["area","people","total"],"additionalProperties":false}},"required":["code","load"],"additionalProperties":false}},"required":["byMode","calculatedOutsideAirflow","max","requiredOutsideAirflowComponents"],"additionalProperties":false},"spaces":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"byMode":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"airflowDifferential":{"type":"object","properties":{"design":{"type":"number"},"required":{"type":"number"}},"required":["design","required"],"additionalProperties":false},"design":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false},"monthHour":{"type":"object","properties":{"hour":{"type":"number"},"month":{"type":"number"}},"required":["hour","month"],"additionalProperties":false},"required":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false},"spacePeaksSum":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false},"supplySources":{"type":"object","properties":{"codeRequiredSupply":{"type":"number"},"directAirSpaceSensible":{"type":"number"},"directOutsideAir":{"type":"number"},"loadRequiredSupply":{"type":"number"},"totalSpaceSensible":{"type":"number"}},"required":["codeRequiredSupply","directAirSpaceSensible","directOutsideAir","loadRequiredSupply","totalSpaceSensible"],"additionalProperties":false}},"required":["airflowDifferential","design","required","spacePeaksSum","supplySources"],"additionalProperties":false}},"calculatedOutsideAirflow":{"type":"object","properties":{"cooling":{"type":"number"},"heating":{"type":"number"},"max":{"type":"number"}},"required":["cooling","heating","max"],"additionalProperties":false},"max":{"type":"object","properties":{"airflowDifferential":{"type":"object","properties":{"design":{"type":"number"},"required":{"type":"number"}},"required":["design","required"],"additionalProperties":false},"design":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false},"required":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false}},"required":["airflowDifferential","design","required"],"additionalProperties":false},"requiredOutsideAirflowComponents":{"type":"object","properties":{"code":{"type":"object","properties":{"ach":{"type":"number"}},"required":["ach"],"additionalProperties":false},"load":{"type":"object","properties":{"area":{"type":"number"},"people":{"type":"number"},"total":{"type":"number"}},"required":["area","people","total"],"additionalProperties":false}},"required":["code","load"],"additionalProperties":false}},"required":["byMode","calculatedOutsideAirflow","max","requiredOutsideAirflowComponents"],"additionalProperties":false}},"systems":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"byMode":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"airflowDifferential":{"type":"object","properties":{"design":{"type":"number"},"required":{"type":"number"}},"required":["design","required"],"additionalProperties":false},"design":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false},"monthHour":{"type":"object","properties":{"hour":{"type":"number"},"month":{"type":"number"}},"required":["hour","month"],"additionalProperties":false},"required":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false},"spacePeaksSum":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false},"supplySources":{"type":"object","properties":{"codeRequiredSupply":{"type":"number"},"directAirSpaceSensible":{"type":"number"},"directOutsideAir":{"type":"number"},"loadRequiredSupply":{"type":"number"},"totalSpaceSensible":{"type":"number"}},"required":["codeRequiredSupply","directAirSpaceSensible","directOutsideAir","loadRequiredSupply","totalSpaceSensible"],"additionalProperties":false}},"required":["airflowDifferential","design","required","spacePeaksSum","supplySources"],"additionalProperties":false}},"calculatedOutsideAirflow":{"type":"object","properties":{"cooling":{"type":"number"},"heating":{"type":"number"},"max":{"type":"number"}},"required":["cooling","heating","max"],"additionalProperties":false},"max":{"type":"object","properties":{"airflowDifferential":{"type":"object","properties":{"design":{"type":"number"},"required":{"type":"number"}},"required":["design","required"],"additionalProperties":false},"design":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false},"required":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false}},"required":["airflowDifferential","design","required"],"additionalProperties":false},"requiredOutsideAirflowComponents":{"type":"object","properties":{"code":{"type":"object","properties":{"ach":{"type":"number"}},"required":["ach"],"additionalProperties":false},"load":{"type":"object","properties":{"area":{"type":"number"},"people":{"type":"number"},"total":{"type":"number"}},"required":["area","people","total"],"additionalProperties":false}},"required":["code","load"],"additionalProperties":false}},"required":["byMode","calculatedOutsideAirflow","max","requiredOutsideAirflowComponents"],"additionalProperties":false}},"zones":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"byMode":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"airflowDifferential":{"type":"object","properties":{"design":{"type":"number"},"required":{"type":"number"}},"required":["design","required"],"additionalProperties":false},"design":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false},"monthHour":{"type":"object","properties":{"hour":{"type":"number"},"month":{"type":"number"}},"required":["hour","month"],"additionalProperties":false},"required":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false},"spacePeaksSum":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false},"supplySources":{"type":"object","properties":{"codeRequiredSupply":{"type":"number"},"directAirSpaceSensible":{"type":"number"},"directOutsideAir":{"type":"number"},"loadRequiredSupply":{"type":"number"},"totalSpaceSensible":{"type":"number"}},"required":["codeRequiredSupply","directAirSpaceSensible","directOutsideAir","loadRequiredSupply","totalSpaceSensible"],"additionalProperties":false}},"required":["airflowDifferential","design","required","spacePeaksSum","supplySources"],"additionalProperties":false}},"calculatedOutsideAirflow":{"type":"object","properties":{"cooling":{"type":"number"},"heating":{"type":"number"},"max":{"type":"number"}},"required":["cooling","heating","max"],"additionalProperties":false},"max":{"type":"object","properties":{"airflowDifferential":{"type":"object","properties":{"design":{"type":"number"},"required":{"type":"number"}},"required":["design","required"],"additionalProperties":false},"design":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false},"required":{"type":"object","properties":{"exhaust":{"type":"number"},"outside":{"type":"number"},"relief":{"type":"number"},"return":{"type":"number"},"supply":{"type":"number"}},"required":["exhaust","outside","relief","return","supply"],"additionalProperties":false}},"required":["airflowDifferential","design","required"],"additionalProperties":false},"requiredOutsideAirflowComponents":{"type":"object","properties":{"code":{"type":"object","properties":{"ach":{"type":"number"}},"required":["ach"],"additionalProperties":false},"load":{"type":"object","properties":{"area":{"type":"number"},"people":{"type":"number"},"total":{"type":"number"}},"required":["area","people","total"],"additionalProperties":false}},"required":["code","load"],"additionalProperties":false}},"required":["byMode","calculatedOutsideAirflow","max","requiredOutsideAirflowComponents"],"additionalProperties":false}}},"required":["spaces","systems","zones"],"additionalProperties":false,"description":"Design and required airflows per scope."}},"required":["errors","flags"],"additionalProperties":false,"description":"Selected calculation sections from a single calculator run."},"JobCreate":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string","enum":["export","auto-group","check","auto-takeoff"],"description":"Job kind: export (async PDF/CSV/ZIP generation), auto-group (sync zoning/system grouping), check (sync validation), auto-takeoff (async floor-plan extraction)."},"definition":{"description":"Export definition slug. Required when type is \"export\".","type":"string","enum":["load-calculation","basis-of-design","ventilation-csv","hourly-loads-csv"]},"name":{"description":"Export name (export jobs); defaults to the definition name.","type":"string"},"displayUnitSystemId":{"description":"Unit system for export jobs; defaults to IMPERIAL.","type":"string","enum":["IMPERIAL","METRIC"]},"scope":{"description":"Auto-group scope. Required when type is \"auto-group\": \"spaces\" groups spaces into zones, \"zones\" groups zones into systems.","type":"string","enum":["spaces","zones"]},"entityIds":{"description":"Auto-group: when set, only group these specific entities instead of all ungrouped ones.","type":"array","items":{"type":"string","minLength":1}},"confidence":{"description":"Auto-takeoff: minimum detection confidence (0–1).","type":"number"},"levels":{"description":"Auto-takeoff: building levels to run on; omit for all.","type":"array","items":{"type":"number"}},"roofTypeId":{"description":"Auto-takeoff: roof type assigned to detected roofs.","type":"string"},"slabTypeId":{"description":"Auto-takeoff: slab type assigned to detected slabs.","type":"string"},"wallTypeId":{"description":"Auto-takeoff: wall type assigned to detected walls.","type":"string"},"windowTypeId":{"description":"Auto-takeoff: window type assigned to detected windows.","type":"string"}},"required":["type"],"additionalProperties":false,"description":"Request body to create a job."},"Job":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"jobId":{"type":"string","description":"Job id; use it to poll GET."},"status":{"type":"string","enum":["queued","running","completed","failed"],"description":"Job status. Sync jobs return \"completed\" immediately; async jobs return \"queued\" — poll GET until the status leaves queued/running."},"error":{"description":"Job-level error message, when the job failed.","type":"string"},"type":{"type":"string","const":"export"},"result":{"type":"object","properties":{"exportId":{"type":"string","description":"ID of the created export."},"export":{"description":"The linked export; present on GET once the doc exists.","type":"object","properties":{"id":{"type":"string","description":"Export id."},"name":{"type":"string","description":"Display name of the export."},"status":{"type":"string","enum":["pending","completed","failed"],"description":"Export generation status. Poll GET until the status leaves \"pending\"."},"downloadUrl":{"description":"Signed download URL. Present only when status is \"completed\".","type":"string"},"date":{"type":"number","description":"Creation timestamp (Unix milliseconds)."},"outputFileType":{"description":"File type of the generated export (PDF, CSV, DOCX, ZIP, XML, or JSON).","type":"string","enum":["PDF","CSV","DOCX","ZIP","XML","JSON"]},"progress":{"description":"Generation progress (0–1), when reported.","type":"number"}},"required":["id","name","status","date"],"additionalProperties":false}},"required":["exportId"],"additionalProperties":false,"description":"Result of an export job."}},"required":["jobId","status","type"],"additionalProperties":false},{"type":"object","properties":{"jobId":{"type":"string","description":"Job id; use it to poll GET."},"status":{"type":"string","enum":["queued","running","completed","failed"],"description":"Job status. Sync jobs return \"completed\" immediately; async jobs return \"queued\" — poll GET until the status leaves queued/running."},"error":{"description":"Job-level error message, when the job failed.","type":"string"},"type":{"type":"string","const":"auto-group"},"result":{"type":"object","properties":{"created":{"type":"number","description":"Number of new zones/systems created."},"assigned":{"type":"number","description":"Number of entities assigned to a group."}},"required":["created","assigned"],"additionalProperties":false,"description":"Result of an auto-group job."}},"required":["jobId","status","type"],"additionalProperties":false},{"type":"object","properties":{"jobId":{"type":"string","description":"Job id; use it to poll GET."},"status":{"type":"string","enum":["queued","running","completed","failed"],"description":"Job status. Sync jobs return \"completed\" immediately; async jobs return \"queued\" — poll GET until the status leaves queued/running."},"error":{"description":"Job-level error message, when the job failed.","type":"string"},"type":{"type":"string","const":"check"},"result":{"type":"object","properties":{"passed":{"type":"boolean","description":"Whether the project passed all checks."},"summary":{"type":"object","properties":{"errors":{"type":"number"},"warnings":{"type":"number"},"info":{"type":"number"}},"required":["errors","warnings","info"],"additionalProperties":false,"description":"Finding counts by severity."},"tiers":{"type":"array","items":{"type":"object","properties":{"tier":{"anyOf":[{"type":"number","const":1},{"type":"number","const":2},{"type":"number","const":3}],"description":"Check tier (1–3)."},"label":{"type":"string","description":"Human-readable tier label."},"passed":{"type":"boolean","description":"Whether every check in the tier passed."},"findings":{"type":"array","items":{"type":"object","properties":{"tier":{"anyOf":[{"type":"number","const":1},{"type":"number","const":2},{"type":"number","const":3}],"description":"Check tier (1–3)."},"severity":{"type":"string","enum":["error","warning","info"],"description":"Severity of a project-check finding."},"message":{"type":"string","description":"Human-readable description."},"entityType":{"description":"Type of the entity the finding applies to.","type":"string","enum":["space","zone","system","equipment"]},"entityId":{"description":"ID of the entity.","type":"string"},"entityName":{"description":"Display name of the entity.","type":"string"}},"required":["tier","severity","message"],"additionalProperties":false,"description":"A single project-check finding."}}},"required":["tier","label","passed","findings"],"additionalProperties":false,"description":"Results for one tier of the project check."}}},"required":["passed","summary","tiers"],"additionalProperties":false,"description":"Result of a check job (tiered findings + summary)."}},"required":["jobId","status","type"],"additionalProperties":false},{"type":"object","properties":{"jobId":{"type":"string","description":"Job id; use it to poll GET."},"status":{"type":"string","enum":["queued","running","completed","failed"],"description":"Job status. Sync jobs return \"completed\" immediately; async jobs return \"queued\" — poll GET until the status leaves queued/running."},"error":{"description":"Job-level error message, when the job failed.","type":"string"},"type":{"type":"string","const":"auto-takeoff"},"result":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["failed_precondition","timed_out"],"description":"Machine-readable failure code."},"message":{"type":"string","description":"Human-readable failure description."}},"required":["code","message"],"additionalProperties":false,"description":"Error detail on a failed auto-takeoff job."}},"additionalProperties":false,"description":"Result of an auto-takeoff job."}},"required":["jobId","status","type"],"additionalProperties":false},{"type":"object","properties":{"jobId":{"type":"string","description":"Job id; use it to poll GET."},"status":{"type":"string","enum":["queued","running","completed","failed"],"description":"Job status. Sync jobs return \"completed\" immediately; async jobs return \"queued\" — poll GET until the status leaves queued/running."},"error":{"description":"Job-level error message, when the job failed.","type":"string"},"type":{"type":"string","const":"sheet-upload"},"result":{"type":"object","properties":{"sheetFileId":{"type":"string","description":"ID of the uploaded sheet file."},"sourceFileName":{"type":"string","description":"Normalized uploaded filename."},"name":{"description":"Optional display name supplied at upload.","type":"string"},"readyForTakeoff":{"description":"Present on completed jobs; true when at least one page is actively placed.","type":"boolean"},"pagesProcessed":{"type":"number","description":"Number of pages extracted from the uploaded PDF."},"placedSheets":{"type":"number","description":"Distinct active sheets placed from this upload."},"pages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Sheet-file page id."},"pageNumber":{"type":"number","description":"One-based page number in the uploaded PDF."},"sheetNumber":{"description":"Sheet number detected from the page title block.","type":"string"},"sheetType":{"description":"Detected sheet type, such as Overall Floor Plan.","type":"string"},"detectedLevel":{"description":"Building level detected from the page title block.","type":"number"},"scale":{"description":"Detected drawing scale.","type":"number"},"status":{"type":"string","enum":["queued","running","completed","failed"],"description":"Public processing state for this page. A failed page makes the parent sheet-upload job fail."},"error":{"description":"Page processing failure, when status is failed.","type":"string"},"placed":{"type":"boolean","description":"Whether this page is the active, placed page for its sheet."}},"required":["id","pageNumber","status","placed"],"additionalProperties":false,"description":"An actionable page from a sheet-upload job."}}},"required":["sheetFileId","sourceFileName","pagesProcessed","placedSheets","pages"],"additionalProperties":false,"description":"Live result for a sheet-upload job."}},"required":["jobId","status","type"],"additionalProperties":false}],"description":"A v0 API job."},"SheetUploadJob":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobId":{"type":"string"},"type":{"type":"string","const":"sheet-upload"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object","properties":{"sheetFileId":{"type":"string"},"sourceFileName":{"type":"string"},"name":{"type":"string"},"readyForTakeoff":{"type":"boolean"},"pagesProcessed":{"type":"integer","minimum":0,"maximum":9007199254740991},"placedSheets":{"type":"integer","minimum":0,"maximum":9007199254740991},"pages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"pageNumber":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"sheetNumber":{"type":"string"},"sheetType":{"type":"string"},"detectedLevel":{"type":"number"},"scale":{"type":"number"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"error":{"type":"string"},"placed":{"type":"boolean"}},"required":["id","pageNumber","status","placed"],"additionalProperties":false}}},"required":["sheetFileId","sourceFileName","pagesProcessed","placedSheets","pages"],"additionalProperties":false},"error":{"type":"string"}},"required":["jobId","type","status"],"additionalProperties":false},"CheckReport":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"passed":{"type":"boolean","description":"Whether the project passed all checks."},"summary":{"type":"object","properties":{"errors":{"type":"number"},"warnings":{"type":"number"},"info":{"type":"number"}},"required":["errors","warnings","info"],"additionalProperties":false,"description":"Finding counts by severity."},"tiers":{"type":"array","items":{"type":"object","properties":{"tier":{"anyOf":[{"type":"number","const":1},{"type":"number","const":2},{"type":"number","const":3}],"description":"Check tier (1–3)."},"label":{"type":"string","description":"Human-readable tier label."},"passed":{"type":"boolean","description":"Whether every check in the tier passed."},"findings":{"type":"array","items":{"type":"object","properties":{"tier":{"anyOf":[{"type":"number","const":1},{"type":"number","const":2},{"type":"number","const":3}],"description":"Check tier (1–3)."},"severity":{"type":"string","enum":["error","warning","info"],"description":"Severity of a project-check finding."},"message":{"type":"string","description":"Human-readable description."},"entityType":{"description":"Type of the entity the finding applies to.","type":"string","enum":["space","zone","system","equipment"]},"entityId":{"description":"ID of the entity.","type":"string"},"entityName":{"description":"Display name of the entity.","type":"string"}},"required":["tier","severity","message"],"additionalProperties":false,"description":"A single project-check finding."}}},"required":["tier","label","passed","findings"],"additionalProperties":false,"description":"Results for one tier of the project check."}}},"required":["passed","summary","tiers"],"additionalProperties":false,"description":"Result of a check job (tiered findings + summary)."},"Export":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","description":"Export id."},"name":{"type":"string","description":"Display name of the export."},"status":{"type":"string","enum":["pending","completed","failed"],"description":"Export generation status. Poll GET until the status leaves \"pending\"."},"downloadUrl":{"description":"Signed download URL. Present only when status is \"completed\".","type":"string"},"date":{"type":"number","description":"Creation timestamp (Unix milliseconds)."},"outputFileType":{"description":"File type of the generated export (PDF, CSV, DOCX, ZIP, XML, or JSON).","type":"string","enum":["PDF","CSV","DOCX","ZIP","XML","JSON"]},"progress":{"description":"Generation progress (0–1), when reported.","type":"number"}},"required":["id","name","status","date"],"additionalProperties":false,"description":"A generated (or in-progress) project export."},"RevitData":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectAddress":{"anyOf":[{"type":"string"},{"type":"null"}]},"projectName":{"anyOf":[{"type":"string"},{"type":"null"}]},"projectRotationDegrees":{"type":"number"},"revitSpaces":{"type":"array","items":{"type":"object","properties":{"area":{"type":"number"},"boundaries":{"type":"array","items":{"type":"array","items":{"type":"object","properties":{"x1":{"type":"number"},"y1":{"type":"number"},"x2":{"type":"number"},"y2":{"type":"number"}},"required":["x1","y1","x2","y2"],"additionalProperties":false}}},"levelElevation":{"type":"number"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"number":{"anyOf":[{"type":"string"},{"type":"null"}]},"unboundedHeight":{"type":"number"},"uniqueId":{"type":"string"},"volume":{"type":"number"}},"required":["area","boundaries","levelElevation","name","number","unboundedHeight","uniqueId","volume"],"additionalProperties":false}}},"required":["projectAddress","projectName","projectRotationDegrees","revitSpaces"],"additionalProperties":false},"Error":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["invalid_request","validation_failed","unauthenticated","permission_denied","not_found","method_not_allowed","conflict","rate_limited","internal"],"description":"Stable machine-readable error code. One of: invalid_request (malformed request), validation_failed (body failed schema validation, see details), unauthenticated (missing/invalid token), permission_denied (authenticated but lacking license/role/org access), not_found, method_not_allowed, conflict (e.g. idempotency replay in flight), rate_limited (see Retry-After), internal."},"message":{"type":"string","description":"Human-readable description of the error."},"details":{"description":"Optional structured detail. For validation_failed this holds the Zod issues array."}},"required":["code","message"],"additionalProperties":false,"description":"The error payload."},"requestId":{"type":"string","description":"Request correlation id, also returned in the X-Request-Id header."}},"required":["error","requestId"],"additionalProperties":false,"description":"Standard v0 API error envelope."},"Product":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","description":"Product id."},"name":{"type":"string","description":"Product name."},"manufacturer":{"description":"Manufacturer name.","type":"string"},"model":{"description":"Model number or identifier.","type":"string"},"description":{"description":"Product description.","type":"string"},"type":{"description":"Dry-side node type the product represents (e.g. terminal unit, central unit).","type":"string"},"price":{"description":"Product price in USD.","type":"number"},"imageUrl":{"description":"Product image URL.","type":"string"},"specifications":{"description":"Manufacturer specifications (free-form key/value).","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"files":{"description":"Attached product files, keyed by id.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"name":{"type":"string","description":"File name."},"url":{"type":"string","description":"Download URL."}},"required":["name","url"],"additionalProperties":false,"description":"A product file attachment."}}},"required":["id","name"],"additionalProperties":false,"description":"A catalog product."},"Me":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string","description":"User id."},"email":{"type":"string","description":"User email."},"firstName":{"description":"Given name.","type":"string"},"lastName":{"description":"Family name.","type":"string"},"license":{"type":"string","enum":["enterprise","payPerProject","solo","team","university"],"description":"License tier."}},"required":["id","email","license"],"additionalProperties":false,"description":"The authenticated user."},"organizations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Organization id."},"name":{"description":"Organization name.","type":"string"},"domain":{"description":"Organization email domain.","type":"string"},"role":{"anyOf":[{"type":"number","const":1},{"type":"number","const":7},{"type":"number","const":10}],"description":"The caller's role in this organization."}},"required":["id","role"],"additionalProperties":false,"description":"An organization membership."},"description":"Organizations the caller is a member of."},"plan":{"type":"object","properties":{"license":{"type":"string","enum":["enterprise","payPerProject","solo","team","university"],"description":"License tier."},"apiAccess":{"type":"boolean","description":"Whether the plan includes programmatic API access."}},"required":["license","apiAccess"],"additionalProperties":false,"description":"Plan entitlements."},"rateLimit":{"type":"object","properties":{"limitPerMinute":{"type":"number","description":"Requests allowed per minute for this caller."}},"required":["limitPerMinute"],"additionalProperties":false,"description":"Rate-limit budget."}},"required":["user","organizations","plan","rateLimit"],"additionalProperties":false,"description":"The authenticated caller, their orgs, plan, and rate limit."}},"securitySchemes":{"accessToken":{"type":"http","scheme":"bearer"}}},"security":[{"accessToken":[]}]}