{
  "openapi": "3.1.0",
  "info": {
    "title": "Buildplan API v1",
    "version": "1.0.0",
    "description": "Formal HTTP API contract for the Airtable-backed Buildplan API v1. Generated from Zod route and DTO schemas; architecture context lives in EventCatalog."
  },
  "servers": [
    {
      "url": "/",
      "description": "Current host"
    },
    {
      "url": "https://api.mybuildplan.ai",
      "description": "Production"
    }
  ],
  "tags": [
    {
      "name": "system-maintenance",
      "description": "Admin and repair operations. Not part of the steward workflow. For Revit projections the normal path is: approved ParameterKey → auto-created draft → steward PATCH → approve."
    }
  ],
  "paths": {
    "/api/v1/bim-ontology/object-classes": {
      "get": {
        "operationId": "listObjectClasses",
        "tags": [
          "BIM Ontology / Object Classes"
        ],
        "summary": "List object classes for offline BIM classification",
        "description": "Returns the ObjectClass single-parent tree (ADR-0046) for cacheable Revit classification. Public identities are domain_id values: items[].id and parentId never contain Airtable record IDs. Query view=flat|tree (default flat) controls representation only; root and maxDepth select the node set. root accepts domain_id or handle. maxDepth is relative to the selected root (or to ontology roots when root is omitted). Each item exposes parentId (string|null) and hasChildren (true when children exist in the full filtered graph, even if maxDepth truncates them). Tree view nests children[] recursively with deterministic id ordering. items contain no timestamps; generatedAt and ontologyVersion live outside items so clients can hash items deterministically. revitCategory is a singular 1:1 binding object (or null) with builtinName, builtinCategoryInt, and status. When status is not current, builtinName and builtinCategoryInt are null. This ObjectClass binding is separate from parameter-projection category scope (RevitCategoryScopeResolver / category-scope/resolve). When parent cycles or other graph corruption exist, the list still returns 200 with healthy classes in items[] and excluded classes named in diagnostics[].",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ObjectClass",
          "useCase": "ListObjectClassesUseCase",
          "domainEvents": [],
          "domainErrors": [
            "ObjectClassGraphNodeIdentityMissingError",
            "ObjectClassNotFoundError"
          ]
        },
        "parameters": [
          {
            "in": "query",
            "name": "view",
            "schema": {
              "type": "string",
              "enum": [
                "flat",
                "tree"
              ],
              "default": "flat"
            },
            "description": "Response representation only. flat (default) returns a sorted array; tree nests children[] recursively."
          },
          {
            "in": "query",
            "name": "root",
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "Optional traversal start (domain_id or handle). When omitted, traversal begins at ontology roots."
          },
          {
            "in": "query",
            "name": "maxDepth",
            "schema": {
              "type": "integer",
              "minimum": 0
            },
            "description": "Optional relative depth bound from root (or from ontology roots when root is omitted). 0 returns only the start node(s)."
          },
          {
            "in": "query",
            "name": "includeInactive",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "When true, include archived object classes; otherwise only approved classes are returned."
          }
        ],
        "responses": {
          "200": {
            "description": "Deterministic object-class list (flat or tree) returned",
            "headers": {
              "ETag": {
                "description": "Same opaque value as ontologyVersion; changes when the returned class payload changes.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ontologyVersion": {
                      "type": "string"
                    },
                    "generatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                    },
                    "count": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/__schema0"
                      }
                    },
                    "diagnostics": {
                      "description": "Corrupt or cyclic ObjectClasses excluded from items so cold-start can proceed.",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "objectClassId": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "objectClassId",
                          "message"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "ontologyVersion",
                    "generatedAt",
                    "count",
                    "items"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "304": {
            "description": "Ontology payload unchanged for the supplied If-None-Match value"
          },
          "400": {
            "description": "Invalid query parameter",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          },
          "404": {
            "description": "Unknown root object class",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          },
          "500": {
            "description": "ObjectClass list unavailable (e.g. missing graph identity). Cyclic classes degrade into diagnostics[] on 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "createObjectClass",
        "tags": [
          "BIM Ontology / Object Classes"
        ],
        "summary": "Create a root object class (no parent)",
        "description": "Creates a draft ObjectClass with no parent — a tree root (ADR-0046, ADR-0050). Child create remains POST /object-classes/actions/add-child; this endpoint rejects a supplied parent with HTTP 400. Optional singular classifications match Add Child (uniformat, masterformat, objectClassCode, revitCategory). Optional description and synonyms are steward text written on create (same as Add Child). Persists then emits ObjectClassParentGraphChanged so handlers fill depth 0, path, and is_leaf. Does not write root_object_class. Requires Idempotency-Key. Identifiers in the body are domain_id (ADR-0048), never rec…. Returns 202 Accepted immediately; processing continues and the outcome is written to script_log.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ObjectClass",
          "useCase": "ObjectClassWorkflowUseCases",
          "domainEvents": [
            "ObjectClassParentGraphChanged"
          ],
          "domainErrors": [
            "ObjectClassWorkflowFailedError"
          ]
        },
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1
                  },
                  "userId": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "revitCategory": {
                    "description": "Classification domain_id (preferred). Airtable rec… ids are deprecated during transition. Revit may also be builtinName.",
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "maxItems": 1,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      }
                    ]
                  },
                  "uniformat": {
                    "description": "Classification domain_id (preferred). Airtable rec… ids are deprecated during transition. Revit may also be builtinName.",
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "maxItems": 1,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      }
                    ]
                  },
                  "masterformat": {
                    "description": "Classification domain_id (preferred). Airtable rec… ids are deprecated during transition. Revit may also be builtinName.",
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "maxItems": 1,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      }
                    ]
                  },
                  "objectClassCode": {
                    "description": "Classification domain_id (preferred). Airtable rec… ids are deprecated during transition. Revit may also be builtinName.",
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "maxItems": 1,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      }
                    ]
                  },
                  "revitMakeUnique": {
                    "type": "boolean"
                  },
                  "uniformatMakeUnique": {
                    "type": "boolean"
                  },
                  "masterformatMakeUnique": {
                    "type": "boolean"
                  },
                  "objectClassCodeMakeUnique": {
                    "type": "boolean"
                  },
                  "description": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "synonyms": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "parentObjectClassIds": {},
                  "parentObjectClassId": {},
                  "parentId": {}
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Create-root accepted; processing continues and the outcome is written to script_log.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation error, missing Idempotency-Key, or a parent was supplied",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/object-classes/sync-all": {
      "post": {
        "operationId": "syncAllObjectClasses",
        "tags": [
          "BIM Ontology / Object Classes"
        ],
        "summary": "Sync the full object-class hierarchy",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ObjectClass",
          "useCase": "ObjectClassWorkflowUseCases",
          "domainEvents": [],
          "domainErrors": [
            "ObjectClassDomainError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Object-class hierarchy sync completed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/object-classes/{key}/actions/approve": {
      "post": {
        "operationId": "approveObjectClass",
        "tags": [
          "BIM Ontology / Object Classes"
        ],
        "summary": "Approve an object class",
        "description": "Type A lifecycle transition (ADR-0050). Requires every ancestor to be approved and Uniformat, Masterformat, ObjectClass code, and Revit category present (explicit or inherited). HTTP 409 names the blocking ancestor or missing classification. `:key` is domain_id or handle.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ObjectClass",
          "useCase": "ApproveObjectClassUseCase",
          "domainEvents": [],
          "domainErrors": [
            "ObjectClassActiveAncestorInvariantError",
            "ObjectClassClassificationIncompleteError",
            "InvalidObjectClassStatusTransitionError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Object class approved",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          },
          "409": {
            "description": "Conflict: a named ancestor is not approved, or required classification is incomplete (Uniformat, Masterformat, ObjectClass code, or Revit category missing on this class and its ancestry).",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "const": false
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {
                          "type": "object",
                          "properties": {
                            "objectClassId": {
                              "type": "string"
                            },
                            "objectClassName": {
                              "type": "string"
                            },
                            "blockingAncestor": {
                              "description": "Named ancestor that is not approved (HTTP 409).",
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "name": {
                                  "type": "string"
                                },
                                "status": {
                                  "type": "string",
                                  "enum": [
                                    "draft",
                                    "approved",
                                    "archived"
                                  ]
                                }
                              },
                              "required": [
                                "id",
                                "status"
                              ],
                              "additionalProperties": false
                            },
                            "missingClassificationKind": {
                              "description": "Required classification missing on this class and its ancestry (HTTP 409).",
                              "type": "string",
                              "enum": [
                                "uniformat",
                                "masterformat",
                                "object_class_codes",
                                "revit_categories"
                              ]
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "success",
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/object-classes/{key}/actions/archive": {
      "post": {
        "operationId": "archiveObjectClass",
        "tags": [
          "BIM Ontology / Object Classes"
        ],
        "summary": "Archive an object class (cascades to descendants)",
        "description": "Type A lifecycle transition (ADR-0050). Archives the seed and its subtree. `:key` is domain_id or handle.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ObjectClass",
          "useCase": "ArchiveObjectClassUseCase",
          "domainEvents": [],
          "domainErrors": [
            "InvalidObjectClassStatusTransitionError",
            "ObjectClassNotFoundError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Object class archived",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/object-classes/{key}/sync-hierarchy": {
      "post": {
        "operationId": "syncObjectClassHierarchy",
        "tags": [
          "BIM Ontology / Object Classes"
        ],
        "summary": "Sync hierarchy state for an object class",
        "description": "Type B recompute. `:key` is domain_id or handle (ADR-0048), never an Airtable rec id.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ObjectClass",
          "useCase": "ObjectClassWorkflowUseCases",
          "domainEvents": [],
          "domainErrors": [
            "ObjectClassDomainError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "recomputeWholeTree": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Object-class hierarchy sync completed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/object-classes/{key}/sync-rendered-param-templates": {
      "post": {
        "operationId": "syncObjectClassRenderedParamTemplates",
        "tags": [
          "BIM Ontology / Object Classes"
        ],
        "summary": "Sync rendered parameter templates for an object class",
        "description": "Type B recompute. `:key` is domain_id or handle (ADR-0048), never an Airtable rec id.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ObjectClass",
          "useCase": "ObjectClassWorkflowUseCases",
          "domainEvents": [],
          "domainErrors": [
            "ObjectClassDomainError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "recomputeSubtree": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Rendered parameter template sync completed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/object-classes/{key}/sync-classification-inheritance": {
      "post": {
        "operationId": "syncObjectClassClassificationInheritance",
        "tags": [
          "BIM Ontology / Object Classes"
        ],
        "summary": "Sync classification push-overwrite for an object class",
        "description": "Type B recompute (ADR-0050 / B6). Singular classifications (Uniformat, Masterformat, ObjectClass codes, Revit): infer make-unique then fill *_direct down until the next unique source. `:key` is domain_id or handle (ADR-0048). Seeded demote records ObjectClassDemoted per class that loses a required kind.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ObjectClass",
          "useCase": "DemoteObjectClassesThatLostClassificationUseCase",
          "domainEvents": [
            "ObjectClassDemoted"
          ],
          "domainErrors": [
            "ObjectClassDomainError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "recomputeWholeTree": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Classification inheritance sync completed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/object-classes/{key}/revit-category": {
      "put": {
        "operationId": "setObjectClassRevitCategory",
        "tags": [
          "BIM Ontology / Object Classes"
        ],
        "summary": "Set ObjectClass ↔ Revit category binding (1:1)",
        "description": "Full replacement of the authored object_classes.revit_categories link (PUT semantics; at most one). Path key accepts ObjectClass domain_id or handle. Body revitCategory is a Revit category domain_id or builtinName (e.g. OST_PlumbingFixtures), or null to clear. Response data.revitCategory is the singular binding object. This authors BuildPlan classification binding only — it is not parameter-projection category scope and does not populate builtInCategories on projections. Requires Idempotency-Key.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ObjectClass",
          "useCase": "SetObjectClassRevitCategoryUseCase",
          "domainEvents": [],
          "domainErrors": [
            "ObjectClassRevitCategoryNotFoundError",
            "RevitCategoryRefsNotFoundError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "ObjectClass domain_id or handle."
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "revitCategory": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Revit category domain_id or builtinName (e.g. OST_PlumbingFixtures). null clears the authored link."
                  },
                  "makeUnique": {
                    "description": "When true, this class is the make-unique source for Revit category (C keep-assignment).",
                    "type": "boolean"
                  }
                },
                "required": [
                  "revitCategory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Revit category binding replaced",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "objectClassId": {
                          "type": "string"
                        },
                        "objectClassKey": {
                          "type": "string"
                        },
                        "revitCategory": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "builtinName": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "builtinCategoryInt": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": -9007199254740991,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "status": {
                                  "type": "string",
                                  "enum": [
                                    "current",
                                    "stale",
                                    "needs_review",
                                    "unresolved"
                                  ]
                                },
                                "source": {
                                  "type": "string",
                                  "enum": [
                                    "authored",
                                    "inherited"
                                  ]
                                },
                                "reviewReason": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "builtinName",
                                "builtinCategoryInt",
                                "status"
                              ],
                              "additionalProperties": false,
                              "description": "Singular 1:1 Revit category binding. When status !== current, builtinName and builtinCategoryInt are null."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "objectClassId",
                        "objectClassKey",
                        "revitCategory"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Validation error or missing Idempotency-Key",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          },
          "404": {
            "description": "ObjectClass or Revit category not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/object-classes/actions/delete": {
      "post": {
        "operationId": "deleteObjectClasses",
        "tags": [
          "BIM Ontology / Object Classes"
        ],
        "summary": "Delete object-class nodes",
        "description": "sourceObjectClassIds / targetObjectClassId / parentObjectClassIds are ObjectClass domain_id values (handle also accepted). Airtable rec… ids remain accepted during transition and are logged as deprecated. Returns 202 Accepted immediately; processing continues and the outcome is written to script_log.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ObjectClass",
          "useCase": "ObjectClassWorkflowUseCases",
          "domainEvents": [
            "ObjectClassParentGraphChanged"
          ],
          "domainErrors": [
            "ObjectClassWorkflowFailedError",
            "ObjectClassKeepDataRequiredError",
            "ObjectClassParentIdentityMissingError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sourceObjectClassIds": {
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "description": "ObjectClass domain_id values (preferred). Handle also accepted. Airtable rec… ids are deprecated during transition."
                  },
                  "includeChildren": {
                    "type": "boolean"
                  },
                  "userId": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "sourceObjectClassIds"
                ],
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Object-class graph action completed. Accepted immediately; processing continues and the outcome is written to script_log / last_script_status.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/object-classes/actions/move": {
      "post": {
        "operationId": "moveObjectClasses",
        "tags": [
          "BIM Ontology / Object Classes"
        ],
        "summary": "Move object-class nodes",
        "description": "sourceObjectClassIds / targetObjectClassId / parentObjectClassIds are ObjectClass domain_id values (handle also accepted). Airtable rec… ids remain accepted during transition and are logged as deprecated. Returns 202 Accepted immediately; processing continues and the outcome is written to script_log.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ObjectClass",
          "useCase": "ObjectClassWorkflowUseCases",
          "domainEvents": [
            "ObjectClassParentGraphChanged"
          ],
          "domainErrors": [
            "ObjectClassWorkflowFailedError",
            "ObjectClassKeepDataRequiredError",
            "ObjectClassParentIdentityMissingError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sourceObjectClassIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "description": "ObjectClass domain_id values (preferred). Handle also accepted. Airtable rec… ids are deprecated during transition."
                  },
                  "targetObjectClassId": {
                    "type": "string",
                    "minLength": 1,
                    "description": "ObjectClass domain_id (preferred) or handle. Airtable rec… ids are deprecated during transition."
                  },
                  "includeChildren": {
                    "type": "boolean"
                  },
                  "makeUnique": {
                    "default": false,
                    "type": "boolean"
                  },
                  "userId": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "sourceObjectClassIds",
                  "targetObjectClassId"
                ],
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Object-class graph action completed. Accepted immediately; processing continues and the outcome is written to script_log / last_script_status.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/object-classes/actions/merge": {
      "post": {
        "operationId": "mergeObjectClasses",
        "tags": [
          "BIM Ontology / Object Classes"
        ],
        "summary": "Merge object-class nodes (keepData source|target required)",
        "description": "sourceObjectClassIds / targetObjectClassId / parentObjectClassIds are ObjectClass domain_id values (handle also accepted). Airtable rec… ids remain accepted during transition and are logged as deprecated. Returns 202 Accepted immediately; processing continues and the outcome is written to script_log.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ObjectClass",
          "useCase": "ObjectClassWorkflowUseCases",
          "domainEvents": [
            "ObjectClassParentGraphChanged"
          ],
          "domainErrors": [
            "ObjectClassWorkflowFailedError",
            "ObjectClassKeepDataRequiredError",
            "ObjectClassParentIdentityMissingError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sourceObjectClassIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "description": "ObjectClass domain_id values (preferred). Handle also accepted. Airtable rec… ids are deprecated during transition."
                  },
                  "targetObjectClassId": {
                    "type": "string",
                    "minLength": 1,
                    "description": "ObjectClass domain_id (preferred) or handle. Airtable rec… ids are deprecated during transition."
                  },
                  "keepData": {
                    "type": "string",
                    "enum": [
                      "source",
                      "target"
                    ]
                  },
                  "userId": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "sourceObjectClassIds",
                  "targetObjectClassId",
                  "keepData"
                ],
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Object-class graph action completed. Accepted immediately; processing continues and the outcome is written to script_log / last_script_status.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/object-classes/actions/copy": {
      "post": {
        "operationId": "copyObjectClasses",
        "tags": [
          "BIM Ontology / Object Classes"
        ],
        "summary": "Copy object-class nodes",
        "description": "sourceObjectClassIds / targetObjectClassId / parentObjectClassIds are ObjectClass domain_id values (handle also accepted). Airtable rec… ids remain accepted during transition and are logged as deprecated. Returns 202 Accepted immediately; processing continues and the outcome is written to script_log.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ObjectClass",
          "useCase": "ObjectClassWorkflowUseCases",
          "domainEvents": [
            "ObjectClassParentGraphChanged"
          ],
          "domainErrors": [
            "ObjectClassWorkflowFailedError",
            "ObjectClassKeepDataRequiredError",
            "ObjectClassParentIdentityMissingError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sourceObjectClassIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "description": "ObjectClass domain_id values (preferred). Handle also accepted. Airtable rec… ids are deprecated during transition."
                  },
                  "targetObjectClassId": {
                    "type": "string",
                    "minLength": 1,
                    "description": "ObjectClass domain_id (preferred) or handle. Airtable rec… ids are deprecated during transition."
                  },
                  "includeChildren": {
                    "default": false,
                    "type": "boolean"
                  },
                  "makeUnique": {
                    "default": false,
                    "type": "boolean"
                  },
                  "userId": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "sourceObjectClassIds",
                  "targetObjectClassId"
                ],
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Object-class graph action completed. Accepted immediately; processing continues and the outcome is written to script_log / last_script_status.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/object-classes/actions/add-child": {
      "post": {
        "operationId": "addObjectClassChild",
        "tags": [
          "BIM Ontology / Object Classes"
        ],
        "summary": "Add a child object-class node",
        "description": "Creates a draft child under the given parent. Requires Idempotency-Key. sourceObjectClassIds / targetObjectClassId / parentObjectClassIds are ObjectClass domain_id values (handle also accepted). Airtable rec… ids remain accepted during transition and are logged as deprecated. Classification refs prefer domain_id (rec… deprecated). Optional uniformat, masterformat, objectClassCode, revitCategory, description, and synonyms are authored on the new child. Returns 202 Accepted immediately; processing continues and the outcome is written to script_log.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ObjectClass",
          "useCase": "ObjectClassWorkflowUseCases",
          "domainEvents": [
            "ObjectClassParentGraphChanged"
          ],
          "domainErrors": [
            "ObjectClassWorkflowFailedError",
            "ObjectClassKeepDataRequiredError",
            "ObjectClassParentIdentityMissingError"
          ]
        },
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "parentObjectClassIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "description": "ObjectClass domain_id values (preferred). Handle also accepted. Airtable rec… ids are deprecated during transition."
                  },
                  "childName": {
                    "type": "string"
                  },
                  "userId": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "revitCategory": {
                    "description": "Classification domain_id (preferred). Airtable rec… ids are deprecated during transition. Revit may also be builtinName.",
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "maxItems": 1,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      }
                    ]
                  },
                  "uniformat": {
                    "description": "Classification domain_id (preferred). Airtable rec… ids are deprecated during transition. Revit may also be builtinName.",
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "maxItems": 1,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      }
                    ]
                  },
                  "masterformat": {
                    "description": "Classification domain_id (preferred). Airtable rec… ids are deprecated during transition. Revit may also be builtinName.",
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "maxItems": 1,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      }
                    ]
                  },
                  "objectClassCode": {
                    "description": "Classification domain_id (preferred). Airtable rec… ids are deprecated during transition. Revit may also be builtinName.",
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "maxItems": 1,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      }
                    ]
                  },
                  "revitMakeUnique": {
                    "type": "boolean"
                  },
                  "uniformatMakeUnique": {
                    "type": "boolean"
                  },
                  "masterformatMakeUnique": {
                    "type": "boolean"
                  },
                  "objectClassCodeMakeUnique": {
                    "type": "boolean"
                  },
                  "description": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "synonyms": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "parentObjectClassIds"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Add-child accepted. Accepted immediately; processing continues and the outcome is written to script_log / last_script_status.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/parameter-specs": {
      "get": {
        "operationId": "listParameterSpecs",
        "tags": [
          "BIM Ontology / Parameter Dictionary"
        ],
        "summary": "List canonical parameter specifications",
        "description": "revitSpecTypeIds are BuildPlan domain_id links into revit_spec_types. revitSpecForgeTypeIds are the version-pinned ForgeTypeId strings from those linked rows (forge_type_id). Empty revitSpecForgeTypeIds means non-Revit or forge_type_id not filled; multiple values may appear when multiple Revit versions are linked.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "useCase": "ListBimOntologyReferencesUseCase",
          "query": "Open question",
          "domainEvents": [],
          "domainErrors": [],
          "aggregate": "ParameterSpec"
        },
        "responses": {
          "200": {
            "description": "ParameterSpec references returned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "handle": {
                            "type": "string"
                          },
                          "dataType": {
                            "type": "string",
                            "enum": [
                              "string",
                              "number",
                              "boolean",
                              "string[]",
                              "number[]"
                            ]
                          },
                          "isMeasurable": {
                            "type": "boolean"
                          },
                          "unitSystem": {
                            "type": "string",
                            "enum": [
                              "imperial",
                              "metric",
                              "both",
                              "na"
                            ]
                          },
                          "revitSpecTypeIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Linked RevitSpecType domain_id values (BuildPlan identities)."
                          },
                          "revitSpecForgeTypeIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Version-pinned Revit ForgeTypeId strings from linked revit_spec_types.forge_type_id. Empty when non-Revit or unfilled."
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "handle",
                          "dataType",
                          "isMeasurable",
                          "unitSystem",
                          "revitSpecTypeIds",
                          "revitSpecForgeTypeIds"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "page": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "page": {
                          "type": "number",
                          "const": 0
                        },
                        "limit": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "hasNextPage": {
                          "type": "boolean",
                          "const": false
                        }
                      },
                      "required": [
                        "total",
                        "page",
                        "limit",
                        "hasNextPage"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "items",
                    "page"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "BIM Ontology reference catalog unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/parameter-controls": {
      "get": {
        "operationId": "listParameterControls",
        "tags": [
          "BIM Ontology / Parameter Dictionary"
        ],
        "summary": "List canonical parameter controls",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "useCase": "ListBimOntologyReferencesUseCase",
          "query": "Open question",
          "domainEvents": [],
          "domainErrors": [],
          "aggregate": "ParameterControl"
        },
        "responses": {
          "200": {
            "description": "ParameterControl references returned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "handle": {
                            "type": "string"
                          },
                          "supportsMultiple": {
                            "type": "boolean"
                          },
                          "requiresOptions": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "handle",
                          "supportsMultiple",
                          "requiresOptions"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "page": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "page": {
                          "type": "number",
                          "const": 0
                        },
                        "limit": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "hasNextPage": {
                          "type": "boolean",
                          "const": false
                        }
                      },
                      "required": [
                        "total",
                        "page",
                        "limit",
                        "hasNextPage"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "items",
                    "page"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "BIM Ontology reference catalog unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/parameter-groups": {
      "get": {
        "operationId": "listParameterGroups",
        "tags": [
          "BIM Ontology / Parameter Dictionary"
        ],
        "summary": "List canonical parameter groups",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "useCase": "ListBimOntologyReferencesUseCase",
          "query": "Open question",
          "domainEvents": [],
          "domainErrors": [],
          "aggregate": "ParameterGroup"
        },
        "responses": {
          "200": {
            "description": "ParameterGroup references returned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "page": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "page": {
                          "type": "number",
                          "const": 0
                        },
                        "limit": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "hasNextPage": {
                          "type": "boolean",
                          "const": false
                        }
                      },
                      "required": [
                        "total",
                        "page",
                        "limit",
                        "hasNextPage"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "items",
                    "page"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "BIM Ontology reference catalog unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "createParameterGroup",
        "tags": [
          "BIM Ontology / Parameter Dictionary"
        ],
        "summary": "Create a canonical parameter group",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ParameterGroup",
          "useCase": "CreateParameterGroupUseCase",
          "domainEvents": [
            "ParameterGroupChanged"
          ],
          "domainErrors": [
            "ParameterKeyDomainError",
            "ApplicationError"
          ]
        },
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Parameter group created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Canonical identity conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Domain rule rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Parameter authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/units": {
      "get": {
        "operationId": "listUnits",
        "tags": [
          "BIM Ontology / Parameter Dictionary"
        ],
        "summary": "List canonical BIM Ontology units",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "useCase": "ListBimOntologyReferencesUseCase",
          "query": "Open question",
          "domainEvents": [],
          "domainErrors": [],
          "aggregate": "Unit"
        },
        "responses": {
          "200": {
            "description": "Unit references returned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "symbol": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "symbol"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "page": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "page": {
                          "type": "number",
                          "const": 0
                        },
                        "limit": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "hasNextPage": {
                          "type": "boolean",
                          "const": false
                        }
                      },
                      "required": [
                        "total",
                        "page",
                        "limit",
                        "hasNextPage"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "items",
                    "page"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "BIM Ontology reference catalog unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/parameter-specs/missing-complete-revit-spec-types": {
      "get": {
        "operationId": "listParameterSpecsMissingCompleteRevitSpecType",
        "tags": [
          "BIM Ontology / Parameter Dictionary",
          "system-maintenance"
        ],
        "summary": "List ParameterSpecs missing a complete Revit spec type",
        "description": "System-maintenance coverage check. Returns every parameter_specs row with no revit_spec_types row that has both forge_type_id and storage_type. gap=unmapped when no revit_spec_types row links the spec; gap=incomplete when a linked row is missing forge_type_id and/or storage_type. Not a write path. Parameter specs are authored in Airtable (no POST /parameter-specs).",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-internal": true,
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "useCase": "ListParameterSpecsMissingCompleteRevitSpecTypeUseCase",
          "query": "Open question",
          "domainEvents": [],
          "domainErrors": [],
          "aggregate": "ParameterSpec"
        },
        "responses": {
          "200": {
            "description": "ParameterSpecs missing a complete Revit spec type",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "handle": {
                            "type": "string"
                          },
                          "mappedRevitSpecTypeIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "gap": {
                            "type": "string",
                            "enum": [
                              "unmapped",
                              "incomplete"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "handle",
                          "mappedRevitSpecTypeIds",
                          "gap"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "page": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "page": {
                          "type": "number",
                          "const": 0
                        },
                        "limit": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "hasNextPage": {
                          "type": "boolean",
                          "const": false
                        }
                      },
                      "required": [
                        "total",
                        "page",
                        "limit",
                        "hasNextPage"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "items",
                    "page"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "BIM Ontology coverage check unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/parameter-keys": {
      "get": {
        "operationId": "listParameterKeys",
        "tags": [
          "BIM Ontology / Parameter Dictionary"
        ],
        "summary": "List ParameterKeys",
        "description": "Lists catalog ParameterKeys through the collection query kernel (limit/offset, eq filters, domainId sort). Operators beyond eq, select, and search are rejected by QueryPolicy. Filter lifecycleStatus=eq.approved for vetted merge targets. ObjectClass offerability is via class-parameters / effective-parameters — not parameter_keys.usages.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ParameterKey",
          "useCase": "ListParameterKeysUseCase",
          "domainEvents": [],
          "domainErrors": [
            "ParameterKeyDomainError",
            "ApplicationError"
          ]
        },
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            },
            "description": "Page size (CollectionQuery)."
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            },
            "description": "Numeric offset into the filtered candidate set."
          },
          {
            "in": "query",
            "name": "lifecycleStatus",
            "schema": {
              "type": "string"
            },
            "description": "PostgREST-style eq filter only, e.g. eq.approved. Duplicate filters AND together. Unknown operators are rejected by QueryPolicy."
          },
          {
            "in": "query",
            "name": "parameterSpecId",
            "schema": {
              "type": "string"
            },
            "description": "PostgREST-style eq filter only, e.g. eq.<parameterSpecDomainId>. Resolved to a linked record in the query adapter."
          },
          {
            "in": "query",
            "name": "order",
            "schema": {
              "type": "string",
              "default": "domainId.asc"
            },
            "description": "Sort order. Allow-listed field: domainId (asc or desc). Default domainId.asc."
          }
        ],
        "responses": {
          "200": {
            "description": "Parameter keys returned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "handle": {
                            "type": "string"
                          },
                          "description": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "usages": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "variant_option",
                                "product_spec",
                                "bim_parameter",
                                "mfg_takeoff",
                                "qto_takeoff"
                              ]
                            },
                            "description": "Legacy catalog usages on ParameterKey; may be empty. ObjectClass offerability is via class-parameters / effective-parameters, not usages."
                          },
                          "parameterSpecId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "parameterControlId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "parameterGroupId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "parameterValueGroupIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "lifecycleStatus": {
                            "type": "string",
                            "enum": [
                              "draft",
                              "active",
                              "approved",
                              "archived"
                            ]
                          },
                          "isSystem": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "handle",
                          "description",
                          "usages",
                          "parameterSpecId",
                          "parameterControlId",
                          "parameterGroupId",
                          "parameterValueGroupIds",
                          "lifecycleStatus",
                          "isSystem"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "page": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "description": "Exact filtered count when the adapter finished scanning; omitted on partial scans.",
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "page": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "limit": {
                          "type": "integer",
                          "exclusiveMinimum": 0,
                          "maximum": 9007199254740991
                        },
                        "hasNextPage": {
                          "type": "boolean"
                        },
                        "nextOffset": {
                          "description": "Offset to request the next page. Prefer this over offset+limit when present.",
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "page",
                        "limit",
                        "hasNextPage"
                      ],
                      "additionalProperties": false
                    },
                    "hydrateSkipCount": {
                      "description": "Candidates examined on this page that failed domain hydrate (soft-skipped).",
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "diagnostics": {
                      "description": "Per-row hydrate skip reasons for this page (lifecycle invariant, unresolved links, etc.).",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "parameterKeyId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "reason": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "parameterKeyId",
                          "handle",
                          "reason"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "items",
                    "page"
                  ],
                  "additionalProperties": false,
                  "description": "ParameterKey catalog page. ObjectClass offerability is via class-parameters/effective-parameters; parameter_keys.usages may be empty."
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Canonical identity conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Domain rule rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Parameter authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "createParameterKey",
        "tags": [
          "BIM Ontology / Parameter Dictionary"
        ],
        "summary": "Create a ParameterKey",
        "description": "Creates a draft ParameterKey. Activate for visible unvetted use (e.g. scraped product_spec). Approve is the stewardship gate (spec + control required) and is legal from draft or active. ParameterKeyApproved ensures a linked draft RevitParameterProjection only when usages includes bim_parameter.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ParameterKey",
          "useCase": "CreateParameterKeyUseCase",
          "domainEvents": [
            "ParameterKeyCreated"
          ],
          "domainErrors": [
            "ParameterKeyDomainError",
            "ApplicationError"
          ]
        },
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1
                  },
                  "handle": {
                    "type": "string",
                    "minLength": 1
                  },
                  "description": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "usages": {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "variant_option",
                        "product_spec",
                        "bim_parameter",
                        "mfg_takeoff",
                        "qto_takeoff"
                      ]
                    }
                  },
                  "parameterSpecId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "parameterControlId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "parameterGroupId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "parameterValueGroupIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Parameter key created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "handle": {
                          "type": "string"
                        },
                        "description": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "usages": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "variant_option",
                              "product_spec",
                              "bim_parameter",
                              "mfg_takeoff",
                              "qto_takeoff"
                            ]
                          },
                          "description": "Legacy catalog usages on ParameterKey; may be empty. ObjectClass offerability is via class-parameters / effective-parameters, not usages."
                        },
                        "parameterSpecId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "parameterControlId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "parameterGroupId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "parameterValueGroupIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "lifecycleStatus": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "active",
                            "approved",
                            "archived"
                          ]
                        },
                        "isSystem": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "handle",
                        "description",
                        "usages",
                        "parameterSpecId",
                        "parameterControlId",
                        "parameterGroupId",
                        "parameterValueGroupIds",
                        "lifecycleStatus",
                        "isSystem"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Canonical identity conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Domain rule rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Parameter authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/parameter-keys/{id}": {
      "get": {
        "operationId": "getParameterKey",
        "tags": [
          "BIM Ontology / Parameter Dictionary"
        ],
        "summary": "Get a ParameterKey",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ParameterKey",
          "useCase": "GetParameterKeyUseCase",
          "domainEvents": [],
          "domainErrors": [
            "ParameterKeyDomainError",
            "ApplicationError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Parameter key returned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "handle": {
                          "type": "string"
                        },
                        "description": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "usages": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "variant_option",
                              "product_spec",
                              "bim_parameter",
                              "mfg_takeoff",
                              "qto_takeoff"
                            ]
                          },
                          "description": "Legacy catalog usages on ParameterKey; may be empty. ObjectClass offerability is via class-parameters / effective-parameters, not usages."
                        },
                        "parameterSpecId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "parameterControlId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "parameterGroupId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "parameterValueGroupIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "lifecycleStatus": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "active",
                            "approved",
                            "archived"
                          ]
                        },
                        "isSystem": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "handle",
                        "description",
                        "usages",
                        "parameterSpecId",
                        "parameterControlId",
                        "parameterGroupId",
                        "parameterValueGroupIds",
                        "lifecycleStatus",
                        "isSystem"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Canonical identity conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Domain rule rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Parameter authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "deleteParameterKey",
        "tags": [
          "BIM Ontology / Parameter Dictionary"
        ],
        "summary": "Delete a ParameterKey",
        "description": "Hard-deletes a ParameterKey by domain_id (ADR-0048). Cascade-deletes the linked Revit parameter projection — the only path that deletes a projection rather than archiving it. Refuses with 409 when class_parameter assignments still exist unless deleteAssignments=true, which hard-deletes those assignment rows (direct and rendered) before the key. Idempotent: an already-deleted key returns 204.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ParameterKey",
          "useCase": "DeleteParameterKeyUseCase",
          "domainEvents": [
            "ParameterKeyDeleted"
          ],
          "domainErrors": [
            "ParameterKeyDomainError",
            "ApplicationError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "deleteAssignments",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "When true, hard-deletes blocking class_parameter rows before deleting the key. Default false refuses with 409."
          }
        ],
        "responses": {
          "204": {
            "description": "Parameter key deleted (idempotent if already gone)"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Blocked by class_parameter assignments; details.blockingAssignments lists domain_ids",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Domain rule rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Parameter authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/parameter-keys/{id}/actions/update": {
      "post": {
        "operationId": "updateParameterKey",
        "tags": [
          "BIM Ontology / Parameter Dictionary"
        ],
        "summary": "Update a canonical parameter key",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ParameterKey",
          "useCase": "UpdateParameterKeyUseCase",
          "domainEvents": [
            "ParameterKeyUpdated"
          ],
          "domainErrors": [
            "ParameterKeyDomainError",
            "ApplicationError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1
                  },
                  "description": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "parameterSpecId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "parameterControlId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "usages": {
                    "anyOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "variant_option",
                            "product_spec",
                            "bim_parameter",
                            "mfg_takeoff",
                            "qto_takeoff"
                          ]
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Parameter key updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "handle": {
                          "type": "string"
                        },
                        "description": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "usages": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "variant_option",
                              "product_spec",
                              "bim_parameter",
                              "mfg_takeoff",
                              "qto_takeoff"
                            ]
                          },
                          "description": "Legacy catalog usages on ParameterKey; may be empty. ObjectClass offerability is via class-parameters / effective-parameters, not usages."
                        },
                        "parameterSpecId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "parameterControlId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "parameterGroupId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "parameterValueGroupIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "lifecycleStatus": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "active",
                            "approved",
                            "archived"
                          ]
                        },
                        "isSystem": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "handle",
                        "description",
                        "usages",
                        "parameterSpecId",
                        "parameterControlId",
                        "parameterGroupId",
                        "parameterValueGroupIds",
                        "lifecycleStatus",
                        "isSystem"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Canonical identity conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Domain rule rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Parameter authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/parameter-keys/{id}/actions/activate": {
      "post": {
        "operationId": "activateParameterKey",
        "tags": [
          "BIM Ontology / Parameter Dictionary"
        ],
        "summary": "Activate a canonical parameter key",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ParameterKey",
          "useCase": "ActivateParameterKeyUseCase",
          "domainEvents": [
            "ParameterKeyActivated"
          ],
          "domainErrors": [
            "ParameterKeyDomainError",
            "ApplicationError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Parameter key activated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "handle": {
                          "type": "string"
                        },
                        "description": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "usages": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "variant_option",
                              "product_spec",
                              "bim_parameter",
                              "mfg_takeoff",
                              "qto_takeoff"
                            ]
                          },
                          "description": "Legacy catalog usages on ParameterKey; may be empty. ObjectClass offerability is via class-parameters / effective-parameters, not usages."
                        },
                        "parameterSpecId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "parameterControlId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "parameterGroupId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "parameterValueGroupIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "lifecycleStatus": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "active",
                            "approved",
                            "archived"
                          ]
                        },
                        "isSystem": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "handle",
                        "description",
                        "usages",
                        "parameterSpecId",
                        "parameterControlId",
                        "parameterGroupId",
                        "parameterValueGroupIds",
                        "lifecycleStatus",
                        "isSystem"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Canonical identity conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Domain rule rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Parameter authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/parameter-keys/{id}/actions/approve": {
      "post": {
        "operationId": "approveParameterKey",
        "tags": [
          "BIM Ontology / Parameter Dictionary"
        ],
        "summary": "Approve a canonical parameter key",
        "description": "Stewardship gate: spec + control required. Legal from draft or active. Projection ensure runs only when usages includes bim_parameter.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ParameterKey",
          "useCase": "ApproveParameterKeyUseCase",
          "domainEvents": [
            "ParameterKeyApproved"
          ],
          "domainErrors": [
            "ParameterKeyDomainError",
            "ApplicationError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Parameter key approved",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "handle": {
                          "type": "string"
                        },
                        "description": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "usages": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "variant_option",
                              "product_spec",
                              "bim_parameter",
                              "mfg_takeoff",
                              "qto_takeoff"
                            ]
                          },
                          "description": "Legacy catalog usages on ParameterKey; may be empty. ObjectClass offerability is via class-parameters / effective-parameters, not usages."
                        },
                        "parameterSpecId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "parameterControlId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "parameterGroupId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "parameterValueGroupIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "lifecycleStatus": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "active",
                            "approved",
                            "archived"
                          ]
                        },
                        "isSystem": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "handle",
                        "description",
                        "usages",
                        "parameterSpecId",
                        "parameterControlId",
                        "parameterGroupId",
                        "parameterValueGroupIds",
                        "lifecycleStatus",
                        "isSystem"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Canonical identity conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Domain rule rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Parameter authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/parameter-keys/{id}/actions/archive": {
      "post": {
        "operationId": "archiveParameterKey",
        "tags": [
          "BIM Ontology / Parameter Dictionary"
        ],
        "summary": "Archive a canonical parameter key",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ParameterKey",
          "useCase": "ArchiveParameterKeyUseCase",
          "domainEvents": [
            "ParameterKeyArchived"
          ],
          "domainErrors": [
            "ParameterKeyDomainError",
            "ApplicationError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Parameter key archived",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "handle": {
                          "type": "string"
                        },
                        "description": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "usages": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "variant_option",
                              "product_spec",
                              "bim_parameter",
                              "mfg_takeoff",
                              "qto_takeoff"
                            ]
                          },
                          "description": "Legacy catalog usages on ParameterKey; may be empty. ObjectClass offerability is via class-parameters / effective-parameters, not usages."
                        },
                        "parameterSpecId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "parameterControlId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "parameterGroupId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "parameterValueGroupIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "lifecycleStatus": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "active",
                            "approved",
                            "archived"
                          ]
                        },
                        "isSystem": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "handle",
                        "description",
                        "usages",
                        "parameterSpecId",
                        "parameterControlId",
                        "parameterGroupId",
                        "parameterValueGroupIds",
                        "lifecycleStatus",
                        "isSystem"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Canonical identity conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Domain rule rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Parameter authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/parameter-keys/{id}/group": {
      "put": {
        "operationId": "assignParameterKeyToGroup",
        "tags": [
          "BIM Ontology / Parameter Dictionary"
        ],
        "summary": "Assign a parameter key to its canonical group",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ParameterKey",
          "useCase": "AssignParameterKeyToGroupUseCase",
          "domainEvents": [
            "ParameterKeyUpdated"
          ],
          "domainErrors": [
            "ParameterKeyDomainError",
            "ApplicationError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "parameterGroupId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "parameterGroupId"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Parameter group assignment updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "handle": {
                          "type": "string"
                        },
                        "description": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "usages": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "variant_option",
                              "product_spec",
                              "bim_parameter",
                              "mfg_takeoff",
                              "qto_takeoff"
                            ]
                          },
                          "description": "Legacy catalog usages on ParameterKey; may be empty. ObjectClass offerability is via class-parameters / effective-parameters, not usages."
                        },
                        "parameterSpecId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "parameterControlId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "parameterGroupId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "parameterValueGroupIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "lifecycleStatus": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "active",
                            "approved",
                            "archived"
                          ]
                        },
                        "isSystem": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "handle",
                        "description",
                        "usages",
                        "parameterSpecId",
                        "parameterControlId",
                        "parameterGroupId",
                        "parameterValueGroupIds",
                        "lifecycleStatus",
                        "isSystem"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Canonical identity conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Domain rule rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Parameter authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/parameter-groups/{id}/actions/update": {
      "post": {
        "operationId": "updateParameterGroup",
        "tags": [
          "BIM Ontology / Parameter Dictionary"
        ],
        "summary": "Update a canonical parameter group",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ParameterGroup",
          "useCase": "UpdateParameterGroupUseCase",
          "domainEvents": [
            "ParameterGroupChanged"
          ],
          "domainErrors": [
            "ParameterKeyDomainError",
            "ApplicationError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Parameter group updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Canonical identity conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Domain rule rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Parameter authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/parameter-values": {
      "post": {
        "operationId": "createParameterValue",
        "tags": [
          "BIM Ontology / Parameter Dictionary"
        ],
        "summary": "Create a canonical parameter value",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ParameterValue",
          "useCase": "CreateParameterValueUseCase",
          "domainEvents": [],
          "domainErrors": [
            "ParameterKeyDomainError",
            "ApplicationError"
          ]
        },
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "parameterKeyId": {
                    "type": "string",
                    "minLength": 1
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1
                  },
                  "code": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "quantityValues": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "value": {
                          "type": "number"
                        },
                        "unitId": {
                          "type": "string",
                          "minLength": 1
                        },
                        "role": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "primary min",
                            "primary max",
                            "alternate",
                            "alternate min",
                            "alternate max",
                            "modifier"
                          ]
                        }
                      },
                      "required": [
                        "value",
                        "unitId",
                        "role"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "parameterKeyId",
                  "name"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Parameter value created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "parameterKeyId": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "code": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "quantityValues": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "value": {
                                "type": "number"
                              },
                              "unitId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "primary",
                                  "primary min",
                                  "primary max",
                                  "alternate",
                                  "alternate min",
                                  "alternate max",
                                  "modifier"
                                ]
                              }
                            },
                            "required": [
                              "value",
                              "unitId",
                              "role"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "parameterKeyId",
                        "name",
                        "code",
                        "quantityValues"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Canonical identity conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Domain rule rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Parameter authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/parameter-values/{id}": {
      "put": {
        "operationId": "updateParameterValue",
        "tags": [
          "BIM Ontology / Parameter Dictionary"
        ],
        "summary": "Replace authored parameter value fields",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ParameterValue",
          "useCase": "UpdateParameterValueUseCase",
          "domainEvents": [],
          "domainErrors": [
            "ParameterKeyDomainError",
            "ApplicationError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "parameterKeyId": {
                    "type": "string",
                    "minLength": 1
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1
                  },
                  "code": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "quantityValues": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "value": {
                          "type": "number"
                        },
                        "unitId": {
                          "type": "string",
                          "minLength": 1
                        },
                        "role": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "primary min",
                            "primary max",
                            "alternate",
                            "alternate min",
                            "alternate max",
                            "modifier"
                          ]
                        }
                      },
                      "required": [
                        "value",
                        "unitId",
                        "role"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "parameterKeyId",
                  "name"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Parameter value updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "parameterKeyId": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "code": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "quantityValues": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "value": {
                                "type": "number"
                              },
                              "unitId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "primary",
                                  "primary min",
                                  "primary max",
                                  "alternate",
                                  "alternate min",
                                  "alternate max",
                                  "modifier"
                                ]
                              }
                            },
                            "required": [
                              "value",
                              "unitId",
                              "role"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "parameterKeyId",
                        "name",
                        "code",
                        "quantityValues"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Canonical identity conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Domain rule rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Parameter authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/object-classes/{key}/parameters": {
      "get": {
        "operationId": "listClassParameters",
        "tags": [
          "BIM Ontology / Class Parameters"
        ],
        "summary": "List direct, inherited, or subtree class parameters",
        "description": "The key path parameter is ObjectClass.handle, not domain_id. Default (`extent=self`, `includeInherited=false`) returns authored assignments at this class only (governance/edit). `includeInherited=true` adds ancestor assignments in a simpler list shape; it overlaps the self+ancestors coverage of `GET /object-classes/{key}/effective-parameters`, which is the canonical plugin target for resolved self+ancestors (inheritance path, conflicts, revitProjectionReadiness). Prefer effective-parameters for that UX. `extent=subtree` returns direct assignments on this class and all descendants (`includeInherited` is ignored).",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ClassParameter",
          "useCase": "ListClassParametersUseCase",
          "domainEvents": [],
          "domainErrors": [
            "ParameterKeyNotBindableError",
            "InheritedClassParameterReadOnlyError",
            "RenderedClassParameterReadOnlyError",
            "LegacyUnknownClassParameterReadOnlyError",
            "ClassParameterInheritanceMirrorConflictError",
            "ParameterValueNotFoundError",
            "ParameterValueDoesNotBelongToKeyError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          },
          {
            "in": "query",
            "name": "includeInherited",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "When extent=self, include ancestor assignments. Overlaps effective-parameters for self+ancestors; prefer effective-parameters for plugin dropdowns."
          },
          {
            "in": "query",
            "name": "extent",
            "schema": {
              "type": "string",
              "enum": [
                "self",
                "subtree"
              ],
              "default": "self"
            },
            "description": "self = this class (optionally + ancestors via includeInherited). subtree = direct assignments on this class and all descendants."
          }
        ],
        "responses": {
          "200": {
            "description": "Class parameters returned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "objectClassId": {
                            "type": "string"
                          },
                          "objectClassKey": {
                            "type": "string"
                          },
                          "parameterKeyId": {
                            "type": "string"
                          },
                          "parameterKey": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "type": "string"
                                  },
                                  "handle": {
                                    "type": "string"
                                  },
                                  "name": {
                                    "type": "string"
                                  },
                                  "description": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "id",
                                  "handle",
                                  "name",
                                  "description"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "isRequired": {
                            "type": "boolean"
                          },
                          "inheritanceMode": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "unique",
                                  "apply_to_descendants"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "childBehavior": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "inherit",
                                  "override",
                                  "suppress"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "provenance": {
                            "type": "string",
                            "enum": [
                              "direct",
                              "rendered",
                              "legacy_unknown",
                              "inherited"
                            ],
                            "description": "Persisted assignment origin, or inherited for a computed ancestor assignment.",
                            "readOnly": true
                          },
                          "readOnly": {
                            "type": "boolean",
                            "description": "Only direct assignments permit DELETE and allowed-value mutation.",
                            "readOnly": true
                          },
                          "inheritedFromObjectClassId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "allowedValues": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "parameterValueId": {
                                  "type": "string"
                                },
                                "isDefault": {
                                  "type": "boolean"
                                },
                                "isNominal": {
                                  "type": "boolean"
                                },
                                "sortOrder": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": -9007199254740991,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "id",
                                "parameterValueId",
                                "isDefault",
                                "isNominal",
                                "sortOrder"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "id",
                          "objectClassId",
                          "objectClassKey",
                          "parameterKeyId",
                          "parameterKey",
                          "isRequired",
                          "inheritanceMode",
                          "childBehavior",
                          "provenance",
                          "readOnly",
                          "inheritedFromObjectClassId",
                          "allowedValues"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "page": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "page": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "limit": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "hasNextPage": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "total",
                        "page",
                        "limit",
                        "hasNextPage"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "items",
                    "page"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Object class, key, or assignment not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Assignment or allowed-value conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Assignment rule rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Class parameter authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/object-classes/{key}/parameters/{parameterKeyId}": {
      "put": {
        "operationId": "upsertClassParameter",
        "tags": [
          "BIM Ontology / Class Parameters"
        ],
        "summary": "Create, replace, or explicitly promote a class parameter to direct",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ClassParameter",
          "useCase": "UpsertClassParameterUseCase",
          "domainEvents": [
            "ClassParameterAssigned",
            "ClassParameterAssignmentUpdated"
          ],
          "domainErrors": [
            "ParameterKeyNotBindableError",
            "InheritedClassParameterReadOnlyError",
            "RenderedClassParameterReadOnlyError",
            "LegacyUnknownClassParameterReadOnlyError",
            "ClassParameterInheritanceMirrorConflictError",
            "ParameterValueNotFoundError",
            "ParameterValueDoesNotBelongToKeyError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          },
          {
            "in": "path",
            "name": "parameterKeyId",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "isRequired": {
                    "type": "boolean"
                  },
                  "inheritanceMode": {
                    "type": "string",
                    "enum": [
                      "unique",
                      "apply_to_descendants"
                    ]
                  },
                  "childBehavior": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "inherit",
                          "override",
                          "suppress"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "userId": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "isRequired",
                  "inheritanceMode"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Class parameter replaced",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "objectClassId": {
                          "type": "string"
                        },
                        "objectClassKey": {
                          "type": "string"
                        },
                        "parameterKeyId": {
                          "type": "string"
                        },
                        "parameterKey": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "handle": {
                                  "type": "string"
                                },
                                "name": {
                                  "type": "string"
                                },
                                "description": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "id",
                                "handle",
                                "name",
                                "description"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "isRequired": {
                          "type": "boolean"
                        },
                        "inheritanceMode": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "unique",
                                "apply_to_descendants"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "childBehavior": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "inherit",
                                "override",
                                "suppress"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "provenance": {
                          "type": "string",
                          "enum": [
                            "direct",
                            "rendered",
                            "legacy_unknown",
                            "inherited"
                          ],
                          "description": "Persisted assignment origin, or inherited for a computed ancestor assignment.",
                          "readOnly": true
                        },
                        "readOnly": {
                          "type": "boolean",
                          "description": "Only direct assignments permit DELETE and allowed-value mutation.",
                          "readOnly": true
                        },
                        "inheritedFromObjectClassId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "allowedValues": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "parameterValueId": {
                                "type": "string"
                              },
                              "isDefault": {
                                "type": "boolean"
                              },
                              "isNominal": {
                                "type": "boolean"
                              },
                              "sortOrder": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": -9007199254740991,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "id",
                              "parameterValueId",
                              "isDefault",
                              "isNominal",
                              "sortOrder"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "objectClassId",
                        "objectClassKey",
                        "parameterKeyId",
                        "parameterKey",
                        "isRequired",
                        "inheritanceMode",
                        "childBehavior",
                        "provenance",
                        "readOnly",
                        "inheritedFromObjectClassId",
                        "allowedValues"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "201": {
            "description": "Class parameter created at the requested URI",
            "headers": {
              "Location": {
                "description": "URI of the newly created class-parameter assignment",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "objectClassId": {
                          "type": "string"
                        },
                        "objectClassKey": {
                          "type": "string"
                        },
                        "parameterKeyId": {
                          "type": "string"
                        },
                        "parameterKey": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "handle": {
                                  "type": "string"
                                },
                                "name": {
                                  "type": "string"
                                },
                                "description": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "id",
                                "handle",
                                "name",
                                "description"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "isRequired": {
                          "type": "boolean"
                        },
                        "inheritanceMode": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "unique",
                                "apply_to_descendants"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "childBehavior": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "inherit",
                                "override",
                                "suppress"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "provenance": {
                          "type": "string",
                          "enum": [
                            "direct",
                            "rendered",
                            "legacy_unknown",
                            "inherited"
                          ],
                          "description": "Persisted assignment origin, or inherited for a computed ancestor assignment.",
                          "readOnly": true
                        },
                        "readOnly": {
                          "type": "boolean",
                          "description": "Only direct assignments permit DELETE and allowed-value mutation.",
                          "readOnly": true
                        },
                        "inheritedFromObjectClassId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "allowedValues": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "parameterValueId": {
                                "type": "string"
                              },
                              "isDefault": {
                                "type": "boolean"
                              },
                              "isNominal": {
                                "type": "boolean"
                              },
                              "sortOrder": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": -9007199254740991,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "id",
                              "parameterValueId",
                              "isDefault",
                              "isNominal",
                              "sortOrder"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "objectClassId",
                        "objectClassKey",
                        "parameterKeyId",
                        "parameterKey",
                        "isRequired",
                        "inheritanceMode",
                        "childBehavior",
                        "provenance",
                        "readOnly",
                        "inheritedFromObjectClassId",
                        "allowedValues"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Object class, key, or assignment not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Assignment or allowed-value conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Assignment rule rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Class parameter authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "unassignClassParameter",
        "tags": [
          "BIM Ontology / Class Parameters"
        ],
        "summary": "Remove a direct class-parameter assignment",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ClassParameter",
          "useCase": "UnassignClassParameterUseCase",
          "domainEvents": [
            "ClassParameterUnassigned"
          ],
          "domainErrors": [
            "ParameterKeyNotBindableError",
            "InheritedClassParameterReadOnlyError",
            "RenderedClassParameterReadOnlyError",
            "LegacyUnknownClassParameterReadOnlyError",
            "ClassParameterInheritanceMirrorConflictError",
            "ParameterValueNotFoundError",
            "ParameterValueDoesNotBelongToKeyError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          },
          {
            "in": "path",
            "name": "parameterKeyId",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Direct assignment removed"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Object class, key, or assignment not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Assignment or allowed-value conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Assignment rule rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Class parameter authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/object-classes/actions/assign-parameters": {
      "post": {
        "operationId": "assignClassParameters",
        "tags": [
          "BIM Ontology / Class Parameters"
        ],
        "summary": "Assign parameter keys to object classes in bulk",
        "description": "Creates or updates every ParameterKey × ObjectClass pair through the canonical single-binding authoring workflow.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ClassParameter",
          "useCase": "BulkAssignClassParametersUseCase",
          "domainEvents": [
            "ClassParameterAssigned",
            "ClassParameterAssignmentUpdated"
          ],
          "domainErrors": [
            "ParameterKeyNotBindableError",
            "InheritedClassParameterReadOnlyError",
            "RenderedClassParameterReadOnlyError",
            "LegacyUnknownClassParameterReadOnlyError",
            "ClassParameterInheritanceMirrorConflictError",
            "ParameterValueNotFoundError",
            "ParameterValueDoesNotBelongToKeyError"
          ]
        },
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "parameterKeyIds": {
                    "minItems": 1,
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "objectClassKeys": {
                    "minItems": 1,
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "isRequired": {
                    "default": false,
                    "type": "boolean"
                  },
                  "inheritanceMode": {
                    "type": "string",
                    "enum": [
                      "unique",
                      "apply_to_descendants"
                    ]
                  },
                  "userId": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "parameterKeyIds",
                  "objectClassKeys",
                  "inheritanceMode"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Class parameters assigned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "parameterKeyId": {
                                "type": "string"
                              },
                              "parameterKey": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string"
                                      },
                                      "handle": {
                                        "type": "string"
                                      },
                                      "name": {
                                        "type": "string"
                                      },
                                      "description": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "handle",
                                      "name",
                                      "description"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "isRequired": {
                                "type": "boolean"
                              },
                              "inheritanceMode": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "enum": [
                                      "unique",
                                      "apply_to_descendants"
                                    ]
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "childBehavior": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "enum": [
                                      "inherit",
                                      "override",
                                      "suppress"
                                    ]
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "string",
                                "enum": [
                                  "direct",
                                  "rendered",
                                  "legacy_unknown",
                                  "inherited"
                                ],
                                "description": "Persisted assignment origin, or inherited for a computed ancestor assignment.",
                                "readOnly": true
                              },
                              "readOnly": {
                                "type": "boolean",
                                "description": "Only direct assignments permit DELETE and allowed-value mutation.",
                                "readOnly": true
                              },
                              "inheritedFromObjectClassId": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "allowedValues": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string"
                                    },
                                    "parameterValueId": {
                                      "type": "string"
                                    },
                                    "isDefault": {
                                      "type": "boolean"
                                    },
                                    "isNominal": {
                                      "type": "boolean"
                                    },
                                    "sortOrder": {
                                      "anyOf": [
                                        {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "parameterValueId",
                                    "isDefault",
                                    "isNominal",
                                    "sortOrder"
                                  ],
                                  "additionalProperties": false
                                }
                              }
                            },
                            "required": [
                              "id",
                              "objectClassId",
                              "objectClassKey",
                              "parameterKeyId",
                              "parameterKey",
                              "isRequired",
                              "inheritanceMode",
                              "childBehavior",
                              "provenance",
                              "readOnly",
                              "inheritedFromObjectClassId",
                              "allowedValues"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "createdCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "updatedCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "items",
                        "createdCount",
                        "updatedCount"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Object class, key, or assignment not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Assignment or allowed-value conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Assignment rule rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Class parameter authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/object-classes/{key}/parameters/{parameterKeyId}/allowed-values": {
      "put": {
        "operationId": "replaceClassParameterAllowedValues",
        "tags": [
          "BIM Ontology / Class Parameters"
        ],
        "summary": "Fully replace allowed values for a direct class parameter",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ClassParameter",
          "useCase": "ReplaceClassParameterAllowedValuesUseCase",
          "domainEvents": [
            "ClassParameterAllowedValuesReplaced"
          ],
          "domainErrors": [
            "ParameterKeyNotBindableError",
            "InheritedClassParameterReadOnlyError",
            "RenderedClassParameterReadOnlyError",
            "LegacyUnknownClassParameterReadOnlyError",
            "ClassParameterInheritanceMirrorConflictError",
            "ParameterValueNotFoundError",
            "ParameterValueDoesNotBelongToKeyError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          },
          {
            "in": "path",
            "name": "parameterKeyId",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "allowedValues": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "parameterValueId": {
                          "type": "string",
                          "minLength": 1
                        },
                        "isDefault": {
                          "type": "boolean"
                        },
                        "isNominal": {
                          "type": "boolean"
                        },
                        "sortOrder": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "parameterValueId",
                        "isDefault",
                        "isNominal",
                        "sortOrder"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "allowedValues"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Allowed values replaced",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "objectClassId": {
                          "type": "string"
                        },
                        "objectClassKey": {
                          "type": "string"
                        },
                        "parameterKeyId": {
                          "type": "string"
                        },
                        "parameterKey": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "handle": {
                                  "type": "string"
                                },
                                "name": {
                                  "type": "string"
                                },
                                "description": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "id",
                                "handle",
                                "name",
                                "description"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "isRequired": {
                          "type": "boolean"
                        },
                        "inheritanceMode": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "unique",
                                "apply_to_descendants"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "childBehavior": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "inherit",
                                "override",
                                "suppress"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "provenance": {
                          "type": "string",
                          "enum": [
                            "direct",
                            "rendered",
                            "legacy_unknown",
                            "inherited"
                          ],
                          "description": "Persisted assignment origin, or inherited for a computed ancestor assignment.",
                          "readOnly": true
                        },
                        "readOnly": {
                          "type": "boolean",
                          "description": "Only direct assignments permit DELETE and allowed-value mutation.",
                          "readOnly": true
                        },
                        "inheritedFromObjectClassId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "allowedValues": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "parameterValueId": {
                                "type": "string"
                              },
                              "isDefault": {
                                "type": "boolean"
                              },
                              "isNominal": {
                                "type": "boolean"
                              },
                              "sortOrder": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": -9007199254740991,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "id",
                              "parameterValueId",
                              "isDefault",
                              "isNominal",
                              "sortOrder"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "objectClassId",
                        "objectClassKey",
                        "parameterKeyId",
                        "parameterKey",
                        "isRequired",
                        "inheritanceMode",
                        "childBehavior",
                        "provenance",
                        "readOnly",
                        "inheritedFromObjectClassId",
                        "allowedValues"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Object class, key, or assignment not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Assignment or allowed-value conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Assignment rule rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Class parameter authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/object-classes/{key}/parameters/{parameterKeyId}/actions/validate-allowed-values": {
      "post": {
        "operationId": "validateClassParameterAllowedValues",
        "tags": [
          "BIM Ontology / Class Parameters"
        ],
        "summary": "Validate persisted class-parameter allowed values without writing",
        "description": "Type B B3 (ADR-0047). `:key` is ObjectClass.handle; `:parameterKeyId` is ParameterKey domain_id. Validates the assignment already stored on this ObjectClass × ParameterKey pair.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ClassParameter",
          "useCase": "ValidateClassParameterAllowedValuesUseCase",
          "domainEvents": [],
          "domainErrors": [
            "ParameterKeyNotBindableError",
            "InheritedClassParameterReadOnlyError",
            "RenderedClassParameterReadOnlyError",
            "LegacyUnknownClassParameterReadOnlyError",
            "ClassParameterInheritanceMirrorConflictError",
            "ParameterValueNotFoundError",
            "ParameterValueDoesNotBelongToKeyError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          },
          {
            "in": "path",
            "name": "parameterKeyId",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Allowed values are valid",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "classParameterId": {
                          "type": "string"
                        },
                        "valid": {
                          "type": "boolean",
                          "const": true
                        },
                        "allowedValueCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "classParameterId",
                        "valid",
                        "allowedValueCount"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Object class, key, or assignment not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Assignment or allowed-value conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Assignment rule rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Class parameter authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/object-classes/{key}/effective-parameters": {
      "get": {
        "operationId": "getEffectiveParameterSet",
        "tags": [
          "BIM Ontology / Class Parameters"
        ],
        "summary": "Resolve effective parameters for one object class",
        "description": "Canonical self+ancestors read for the Revit plugin (resolution, inheritance path, conflicts, revitProjectionReadiness). The key path parameter is ObjectClass.handle, not domain_id. Only includeArchived and explain are accepted; unknown query parameters return 400. Overlaps `GET /object-classes/{key}/parameters?includeInherited=true` (simpler list shape); prefer this endpoint for plugin target dropdowns. For descendant coverage use `GET /object-classes/{key}/parameters?extent=subtree`.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ClassParameter",
          "useCase": "ResolveEffectiveParameterSetUseCase",
          "domainEvents": [],
          "domainErrors": [
            "EffectiveParameterGraphCycleError",
            "EffectiveParameterObjectClassNotFoundError",
            "InvalidCategoryParameterInheritanceConfigurationError",
            "ObjectClassGraphNodeIdentityMissingError",
            "ObjectClassParentIdentityMissingError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          },
          {
            "in": "query",
            "name": "includeArchived",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Include archived ParameterKeys for audit reads; drafts remain excluded."
          },
          {
            "in": "query",
            "name": "explain",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Include per-key resolution and suppression explanations."
          }
        ],
        "responses": {
          "200": {
            "description": "Effective parameter resolution returned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "objectClassId": {
                          "type": "string"
                        },
                        "objectClassKey": {
                          "type": "string"
                        },
                        "parameters": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "parameterKey": {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "type": "string"
                                  },
                                  "handle": {
                                    "type": "string"
                                  },
                                  "name": {
                                    "type": "string"
                                  },
                                  "description": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "lifecycleStatus": {
                                    "type": "string",
                                    "enum": [
                                      "draft",
                                      "active",
                                      "approved",
                                      "archived"
                                    ]
                                  },
                                  "isApproved": {
                                    "type": "boolean"
                                  },
                                  "parameterSpecId": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "parameterControlId": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "id",
                                  "handle",
                                  "name",
                                  "description",
                                  "lifecycleStatus",
                                  "isApproved",
                                  "parameterSpecId",
                                  "parameterControlId"
                                ],
                                "additionalProperties": false
                              },
                              "binding": {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "type": "string"
                                  },
                                  "isRequired": {
                                    "type": "boolean"
                                  },
                                  "inheritanceMode": {
                                    "type": "string",
                                    "enum": [
                                      "unique",
                                      "apply_to_descendants"
                                    ]
                                  },
                                  "childBehavior": {
                                    "type": "string",
                                    "enum": [
                                      "inherit",
                                      "override",
                                      "suppress"
                                    ]
                                  }
                                },
                                "required": [
                                  "id",
                                  "isRequired",
                                  "inheritanceMode",
                                  "childBehavior"
                                ],
                                "additionalProperties": false
                              },
                              "allowedValues": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "parameterValueId": {
                                      "type": "string"
                                    },
                                    "value": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "isDefault": {
                                      "type": "boolean"
                                    },
                                    "isNominal": {
                                      "type": "boolean"
                                    },
                                    "sortOrder": {
                                      "anyOf": [
                                        {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "parameterValueId",
                                    "value",
                                    "isDefault",
                                    "isNominal",
                                    "sortOrder"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "group": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string"
                                      },
                                      "name": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "name"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "revitProjection": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string"
                                      },
                                      "status": {
                                        "type": "string",
                                        "enum": [
                                          "draft",
                                          "approved",
                                          "archived"
                                        ]
                                      },
                                      "definition": {
                                        "type": "object",
                                        "properties": {
                                          "form": {
                                            "type": "string",
                                            "enum": [
                                              "shared",
                                              "family_local",
                                              "project_local",
                                              "built_in",
                                              "legacy_unknown"
                                            ]
                                          },
                                          "sharedGuid": {
                                            "anyOf": [
                                              {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          },
                                          "builtInParameterName": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "form",
                                          "sharedGuid",
                                          "builtInParameterName"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "familyApplication": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "bindingKind": {
                                                "type": "string",
                                                "enum": [
                                                  "instance",
                                                  "type"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "bindingKind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "projectBinding": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "bindingKind": {
                                                "type": "string",
                                                "enum": [
                                                  "instance",
                                                  "type"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "bindingKind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "status",
                                      "definition",
                                      "familyApplication",
                                      "projectBinding"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "inheritanceSource": {
                                "type": "object",
                                "properties": {
                                  "objectClassId": {
                                    "type": "string"
                                  },
                                  "objectClassKey": {
                                    "type": "string"
                                  },
                                  "pathObjectClassIds": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "pathObjectClassKeys": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "distance": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "objectClassId",
                                  "objectClassKey",
                                  "pathObjectClassIds",
                                  "pathObjectClassKeys",
                                  "distance"
                                ],
                                "additionalProperties": false
                              },
                              "resolution": {
                                "type": "string",
                                "enum": [
                                  "direct",
                                  "inherited",
                                  "override"
                                ]
                              },
                              "explanation": {
                                "type": "string"
                              },
                              "revitProjectionReadiness": {
                                "type": "object",
                                "properties": {
                                  "ready": {
                                    "type": "boolean"
                                  },
                                  "reasons": {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "enum": [
                                        "KEY_NOT_ACTIVE",
                                        "KEY_NOT_APPROVED",
                                        "KEY_NOT_BIM_PARAMETER",
                                        "MISSING_SPEC",
                                        "MISSING_CONTROL",
                                        "PARAMETER_PROJECTION_MISSING",
                                        "MULTIPLE_PARAMETER_PROJECTIONS",
                                        "PARAMETER_PROJECTION_NOT_APPROVED"
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "ready",
                                  "reasons"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "parameterKey",
                              "binding",
                              "allowedValues",
                              "group",
                              "revitProjection",
                              "inheritanceSource",
                              "resolution",
                              "explanation",
                              "revitProjectionReadiness"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "explanations": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "parameterKeyId": {
                                "type": "string"
                              },
                              "resolution": {
                                "type": "string",
                                "enum": [
                                  "direct",
                                  "inherited",
                                  "override",
                                  "suppressed"
                                ]
                              },
                              "winningBindingId": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "sourceObjectClassId": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "sourceObjectClassKey": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "pathObjectClassKeys": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "suppressedByBindingId": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "explanation": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "parameterKeyId",
                              "resolution",
                              "winningBindingId",
                              "sourceObjectClassId",
                              "sourceObjectClassKey",
                              "pathObjectClassKeys",
                              "suppressedByBindingId",
                              "explanation"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "objectClassId",
                        "objectClassKey",
                        "parameters",
                        "explanations"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Object class not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Ontology graph or persisted binding configuration conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Malformed ObjectClass graph or persisted inheritance configuration",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Effective parameter resolution unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/object-classes/effective-parameters/resolve": {
      "post": {
        "operationId": "resolveEffectiveParameterSets",
        "tags": [
          "BIM Ontology / Class Parameters"
        ],
        "summary": "Resolve per-class effective sets and a conflict-safe merged union",
        "description": "Bulk endpoint for resolving expected/effective parameters for multiple classes. objectClassKeys contains ObjectClass.handle values, not domain_id values.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "ClassParameter",
          "useCase": "ResolveEffectiveParameterSetsUseCase",
          "domainEvents": [],
          "domainErrors": [
            "EffectiveParameterGraphCycleError",
            "EffectiveParameterObjectClassNotFoundError",
            "InvalidCategoryParameterInheritanceConfigurationError",
            "ObjectClassGraphNodeIdentityMissingError",
            "ObjectClassParentIdentityMissingError"
          ]
        },
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "objectClassKeys": {
                    "minItems": 1,
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "includeArchived": {
                    "default": false,
                    "type": "boolean"
                  },
                  "explain": {
                    "default": false,
                    "type": "boolean"
                  }
                },
                "required": [
                  "objectClassKeys"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Effective parameter resolution returned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "perClass": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "objectClassId": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "parameters": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "parameterKey": {
                                      "type": "object",
                                      "properties": {
                                        "id": {
                                          "type": "string"
                                        },
                                        "handle": {
                                          "type": "string"
                                        },
                                        "name": {
                                          "type": "string"
                                        },
                                        "description": {
                                          "anyOf": [
                                            {
                                              "type": "string"
                                            },
                                            {
                                              "type": "null"
                                            }
                                          ]
                                        },
                                        "lifecycleStatus": {
                                          "type": "string",
                                          "enum": [
                                            "draft",
                                            "active",
                                            "approved",
                                            "archived"
                                          ]
                                        },
                                        "isApproved": {
                                          "type": "boolean"
                                        },
                                        "parameterSpecId": {
                                          "anyOf": [
                                            {
                                              "type": "string"
                                            },
                                            {
                                              "type": "null"
                                            }
                                          ]
                                        },
                                        "parameterControlId": {
                                          "anyOf": [
                                            {
                                              "type": "string"
                                            },
                                            {
                                              "type": "null"
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "id",
                                        "handle",
                                        "name",
                                        "description",
                                        "lifecycleStatus",
                                        "isApproved",
                                        "parameterSpecId",
                                        "parameterControlId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "binding": {
                                      "type": "object",
                                      "properties": {
                                        "id": {
                                          "type": "string"
                                        },
                                        "isRequired": {
                                          "type": "boolean"
                                        },
                                        "inheritanceMode": {
                                          "type": "string",
                                          "enum": [
                                            "unique",
                                            "apply_to_descendants"
                                          ]
                                        },
                                        "childBehavior": {
                                          "type": "string",
                                          "enum": [
                                            "inherit",
                                            "override",
                                            "suppress"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "id",
                                        "isRequired",
                                        "inheritanceMode",
                                        "childBehavior"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "allowedValues": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "parameterValueId": {
                                            "type": "string"
                                          },
                                          "value": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          },
                                          "isDefault": {
                                            "type": "boolean"
                                          },
                                          "isNominal": {
                                            "type": "boolean"
                                          },
                                          "sortOrder": {
                                            "anyOf": [
                                              {
                                                "type": "integer",
                                                "minimum": -9007199254740991,
                                                "maximum": 9007199254740991
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "parameterValueId",
                                          "value",
                                          "isDefault",
                                          "isNominal",
                                          "sortOrder"
                                        ],
                                        "additionalProperties": false
                                      }
                                    },
                                    "group": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "id": {
                                              "type": "string"
                                            },
                                            "name": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "id",
                                            "name"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "revitProjection": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "id": {
                                              "type": "string"
                                            },
                                            "status": {
                                              "type": "string",
                                              "enum": [
                                                "draft",
                                                "approved",
                                                "archived"
                                              ]
                                            },
                                            "definition": {
                                              "type": "object",
                                              "properties": {
                                                "form": {
                                                  "type": "string",
                                                  "enum": [
                                                    "shared",
                                                    "family_local",
                                                    "project_local",
                                                    "built_in",
                                                    "legacy_unknown"
                                                  ]
                                                },
                                                "sharedGuid": {
                                                  "anyOf": [
                                                    {
                                                      "type": "string",
                                                      "format": "uuid",
                                                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                    },
                                                    {
                                                      "type": "null"
                                                    }
                                                  ]
                                                },
                                                "builtInParameterName": {
                                                  "anyOf": [
                                                    {
                                                      "type": "string"
                                                    },
                                                    {
                                                      "type": "null"
                                                    }
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "form",
                                                "sharedGuid",
                                                "builtInParameterName"
                                              ],
                                              "additionalProperties": false
                                            },
                                            "familyApplication": {
                                              "anyOf": [
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "bindingKind": {
                                                      "type": "string",
                                                      "enum": [
                                                        "instance",
                                                        "type"
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "bindingKind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            },
                                            "projectBinding": {
                                              "anyOf": [
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "bindingKind": {
                                                      "type": "string",
                                                      "enum": [
                                                        "instance",
                                                        "type"
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "bindingKind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            }
                                          },
                                          "required": [
                                            "id",
                                            "status",
                                            "definition",
                                            "familyApplication",
                                            "projectBinding"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "inheritanceSource": {
                                      "type": "object",
                                      "properties": {
                                        "objectClassId": {
                                          "type": "string"
                                        },
                                        "objectClassKey": {
                                          "type": "string"
                                        },
                                        "pathObjectClassIds": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "pathObjectClassKeys": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "distance": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        }
                                      },
                                      "required": [
                                        "objectClassId",
                                        "objectClassKey",
                                        "pathObjectClassIds",
                                        "pathObjectClassKeys",
                                        "distance"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "resolution": {
                                      "type": "string",
                                      "enum": [
                                        "direct",
                                        "inherited",
                                        "override"
                                      ]
                                    },
                                    "explanation": {
                                      "type": "string"
                                    },
                                    "revitProjectionReadiness": {
                                      "type": "object",
                                      "properties": {
                                        "ready": {
                                          "type": "boolean"
                                        },
                                        "reasons": {
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "enum": [
                                              "KEY_NOT_ACTIVE",
                                              "KEY_NOT_APPROVED",
                                              "KEY_NOT_BIM_PARAMETER",
                                              "MISSING_SPEC",
                                              "MISSING_CONTROL",
                                              "PARAMETER_PROJECTION_MISSING",
                                              "MULTIPLE_PARAMETER_PROJECTIONS",
                                              "PARAMETER_PROJECTION_NOT_APPROVED"
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "ready",
                                        "reasons"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "parameterKey",
                                    "binding",
                                    "allowedValues",
                                    "group",
                                    "revitProjection",
                                    "inheritanceSource",
                                    "resolution",
                                    "explanation",
                                    "revitProjectionReadiness"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "explanations": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "parameterKeyId": {
                                      "type": "string"
                                    },
                                    "resolution": {
                                      "type": "string",
                                      "enum": [
                                        "direct",
                                        "inherited",
                                        "override",
                                        "suppressed"
                                      ]
                                    },
                                    "winningBindingId": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "sourceObjectClassId": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "sourceObjectClassKey": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "pathObjectClassKeys": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "suppressedByBindingId": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "explanation": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "parameterKeyId",
                                    "resolution",
                                    "winningBindingId",
                                    "sourceObjectClassId",
                                    "sourceObjectClassKey",
                                    "pathObjectClassKeys",
                                    "suppressedByBindingId",
                                    "explanation"
                                  ],
                                  "additionalProperties": false
                                }
                              }
                            },
                            "required": [
                              "objectClassId",
                              "objectClassKey",
                              "parameters",
                              "explanations"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "mergedUnion": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "parameterKey": {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "type": "string"
                                  },
                                  "handle": {
                                    "type": "string"
                                  },
                                  "name": {
                                    "type": "string"
                                  },
                                  "description": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "lifecycleStatus": {
                                    "type": "string",
                                    "enum": [
                                      "draft",
                                      "active",
                                      "approved",
                                      "archived"
                                    ]
                                  },
                                  "isApproved": {
                                    "type": "boolean"
                                  },
                                  "parameterSpecId": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "parameterControlId": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "id",
                                  "handle",
                                  "name",
                                  "description",
                                  "lifecycleStatus",
                                  "isApproved",
                                  "parameterSpecId",
                                  "parameterControlId"
                                ],
                                "additionalProperties": false
                              },
                              "binding": {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "type": "string"
                                  },
                                  "isRequired": {
                                    "type": "boolean"
                                  },
                                  "inheritanceMode": {
                                    "type": "string",
                                    "enum": [
                                      "unique",
                                      "apply_to_descendants"
                                    ]
                                  },
                                  "childBehavior": {
                                    "type": "string",
                                    "enum": [
                                      "inherit",
                                      "override",
                                      "suppress"
                                    ]
                                  }
                                },
                                "required": [
                                  "id",
                                  "isRequired",
                                  "inheritanceMode",
                                  "childBehavior"
                                ],
                                "additionalProperties": false
                              },
                              "allowedValues": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "parameterValueId": {
                                      "type": "string"
                                    },
                                    "value": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "isDefault": {
                                      "type": "boolean"
                                    },
                                    "isNominal": {
                                      "type": "boolean"
                                    },
                                    "sortOrder": {
                                      "anyOf": [
                                        {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "parameterValueId",
                                    "value",
                                    "isDefault",
                                    "isNominal",
                                    "sortOrder"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "group": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string"
                                      },
                                      "name": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "name"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "revitProjection": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string"
                                      },
                                      "status": {
                                        "type": "string",
                                        "enum": [
                                          "draft",
                                          "approved",
                                          "archived"
                                        ]
                                      },
                                      "definition": {
                                        "type": "object",
                                        "properties": {
                                          "form": {
                                            "type": "string",
                                            "enum": [
                                              "shared",
                                              "family_local",
                                              "project_local",
                                              "built_in",
                                              "legacy_unknown"
                                            ]
                                          },
                                          "sharedGuid": {
                                            "anyOf": [
                                              {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          },
                                          "builtInParameterName": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "form",
                                          "sharedGuid",
                                          "builtInParameterName"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "familyApplication": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "bindingKind": {
                                                "type": "string",
                                                "enum": [
                                                  "instance",
                                                  "type"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "bindingKind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "projectBinding": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "bindingKind": {
                                                "type": "string",
                                                "enum": [
                                                  "instance",
                                                  "type"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "bindingKind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "status",
                                      "definition",
                                      "familyApplication",
                                      "projectBinding"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "inheritanceSource": {
                                "type": "object",
                                "properties": {
                                  "objectClassId": {
                                    "type": "string"
                                  },
                                  "objectClassKey": {
                                    "type": "string"
                                  },
                                  "pathObjectClassIds": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "pathObjectClassKeys": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "distance": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "objectClassId",
                                  "objectClassKey",
                                  "pathObjectClassIds",
                                  "pathObjectClassKeys",
                                  "distance"
                                ],
                                "additionalProperties": false
                              },
                              "resolution": {
                                "type": "string",
                                "enum": [
                                  "direct",
                                  "inherited",
                                  "override"
                                ]
                              },
                              "explanation": {
                                "type": "string"
                              },
                              "revitProjectionReadiness": {
                                "type": "object",
                                "properties": {
                                  "ready": {
                                    "type": "boolean"
                                  },
                                  "reasons": {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "enum": [
                                        "KEY_NOT_ACTIVE",
                                        "KEY_NOT_APPROVED",
                                        "KEY_NOT_BIM_PARAMETER",
                                        "MISSING_SPEC",
                                        "MISSING_CONTROL",
                                        "PARAMETER_PROJECTION_MISSING",
                                        "MULTIPLE_PARAMETER_PROJECTIONS",
                                        "PARAMETER_PROJECTION_NOT_APPROVED"
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "ready",
                                  "reasons"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "parameterKey",
                              "binding",
                              "allowedValues",
                              "group",
                              "revitProjection",
                              "inheritanceSource",
                              "resolution",
                              "explanation",
                              "revitProjectionReadiness"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "conflicts": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "parameterKeyId": {
                                "type": "string"
                              },
                              "objectClassKeys": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "explanations": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            },
                            "required": [
                              "parameterKeyId",
                              "objectClassKeys",
                              "explanations"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "perClass",
                        "mergedUnion",
                        "conflicts"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Object class not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Ontology graph or persisted binding configuration conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Malformed ObjectClass graph or persisted inheritance configuration",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Effective parameter resolution unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/revit/parameter-projections": {
      "get": {
        "operationId": "listRevitParameterProjections",
        "tags": [
          "BIM Ontology / Revit Parameter Projection"
        ],
        "summary": "List Revit parameter projections",
        "description": "Steward collection read through the query kernel (parseCollectionQuery → QueryPolicy → ForQueryingCollections). Filter projectionStatus=eq.draft for the draft queue; parameterKeyId=eq.<domain_id> and discipline=eq.<value> are also allowed. Sort domainId asc/desc. Offset pagination via limit/offset. Envelope { items, page } (total optional). Linked parameterKeyId is resolved in the query adapter so rec ids never leave the adapter (ADR-0048). Not a system-maintenance endpoint.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "RevitParameterProjection",
          "useCase": "ListRevitParameterProjectionsUseCase",
          "domainEvents": [],
          "domainErrors": [
            "QueryValidationError",
            "QueryRuntimeError"
          ]
        },
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            },
            "description": "Page size (CollectionQuery)."
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            },
            "description": "Numeric offset into the filtered candidate set."
          },
          {
            "in": "query",
            "name": "projectionStatus",
            "schema": {
              "type": "string"
            },
            "description": "PostgREST-style eq filter only, e.g. eq.draft. Duplicate filters AND together."
          },
          {
            "in": "query",
            "name": "parameterKeyId",
            "schema": {
              "type": "string"
            },
            "description": "PostgREST-style eq filter only, e.g. eq.<parameterKeyDomainId>. Resolved to a linked record in the query adapter."
          },
          {
            "in": "query",
            "name": "discipline",
            "schema": {
              "type": "string"
            },
            "description": "PostgREST-style eq filter only, e.g. eq.Common."
          },
          {
            "in": "query",
            "name": "order",
            "schema": {
              "type": "string",
              "default": "domainId.asc"
            },
            "description": "Sort order. Allow-listed field: domainId (asc or desc). Default domainId.asc."
          }
        ],
        "responses": {
          "200": {
            "description": "Paged steward projection list",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "parameterKeyId": {
                            "type": "string"
                          },
                          "projectionStatus": {
                            "type": "string",
                            "enum": [
                              "draft",
                              "approved",
                              "archived"
                            ]
                          },
                          "discipline": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "guid": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "revitName": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "parameterKeyId",
                          "projectionStatus",
                          "discipline",
                          "guid",
                          "revitName"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "page": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "page": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "limit": {
                          "type": "integer",
                          "exclusiveMinimum": 0,
                          "maximum": 9007199254740991
                        },
                        "hasNextPage": {
                          "type": "boolean"
                        },
                        "nextOffset": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "page",
                        "limit",
                        "hasNextPage"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "items",
                    "page"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Projection list unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "createRevitParameterProjection",
        "tags": [
          "BIM Ontology / Revit Parameter Projection",
          "system-maintenance"
        ],
        "summary": "Create a Revit parameter projection",
        "description": "Not part of the steward workflow. The normal path is: approved ParameterKey → auto-created draft → steward PATCH → approve. Maintenance / drift-repair path for Revit parameter projections. Primary creation path is ParameterKey approve: ParameterKeyApproved handlers call EnsureRevitProjectionForParameterKeyUseCase and create a draft projection. Create write enum is shared | family_local | built_in. project_local and legacy_unknown are read-only (not creatable). `global` is not accepted — use response scope.kind. Optional sharedGuid on shared create seeds a known GUID (409 SHARED_GUID_CONFLICT on duplicate). built_in requires builtInParameterName and null familyApplication/projectBinding. Soft-idempotent: when a projection already exists for the ParameterKey and the requested identity matches, returns 200 with the existing row. When an existing projection identity mismatches (definitionForm / sharedGuid / builtInParameterName), returns 409 REVIT_PROJECTION_IDENTITY_CONFLICT. Response includes definitionForm (alias of definition.form), definition.builtInParameterName, top-level revitUiGroup.groupTypeId (ForgeTypeId `autodesk.parameter.group:…`, fallback `autodesk.parameter.group:data-1.0.0`), scope.kind, and builtInCategories (null until a Revit-availability source exists).",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-internal": true,
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "RevitParameterProjection",
          "useCase": "CreateRevitParameterProjectionUseCase",
          "domainEvents": [
            "RevitParameterProjectionCreated"
          ],
          "domainErrors": [
            "RevitParameterProjectionInvariantError",
            "RevitProjectionAuthoringError",
            "ObjectClassMissingRevitCategoryError",
            "ProjectParameterCategoryScopeEmptyError",
            "MalformedRevitCategoryDataError"
          ]
        },
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "parameterKeyId": {
                    "type": "string",
                    "minLength": 1
                  },
                  "definitionForm": {
                    "type": "string",
                    "enum": [
                      "shared",
                      "family_local",
                      "built_in"
                    ]
                  },
                  "revitSpecTypeId": {
                    "type": "string",
                    "minLength": 1
                  },
                  "storageType": {
                    "type": "string",
                    "enum": [
                      "Double",
                      "Integer",
                      "String",
                      "ElementId",
                      "None"
                    ]
                  },
                  "familyApplication": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "bindingKind": {
                            "type": "string",
                            "enum": [
                              "instance",
                              "type"
                            ]
                          }
                        },
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "projectBinding": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "bindingKind": {
                            "type": "string",
                            "enum": [
                              "instance",
                              "type"
                            ]
                          }
                        },
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "bindingKindPreference": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "instance",
                          "type"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "revitPrimaryUsage": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "family",
                          "project"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "isSystem": {
                    "type": "boolean"
                  },
                  "visibilityFlags": {
                    "type": "object",
                    "properties": {
                      "isVisible": {
                        "type": "boolean"
                      },
                      "isUserModifiable": {
                        "type": "boolean"
                      },
                      "hidesWhenNoValue": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "isVisible",
                      "isUserModifiable",
                      "hidesWhenNoValue"
                    ],
                    "additionalProperties": false
                  },
                  "discipline": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Common",
                          "Structural",
                          "Electrical",
                          "HVAC",
                          "Infrastructure",
                          "Piping",
                          "Energy"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "tooltipDescription": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "revitNameOverride": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "sharedGuid": {
                    "type": "string",
                    "format": "uuid",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  },
                  "builtInParameterName": {
                    "type": "string",
                    "pattern": "^[A-Z][A-Z0-9_]+$"
                  }
                },
                "required": [
                  "parameterKeyId",
                  "definitionForm",
                  "revitSpecTypeId",
                  "storageType",
                  "familyApplication",
                  "projectBinding",
                  "visibilityFlags"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Existing projection returned (soft-idempotent identity match)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "parameterKeyId": {
                          "type": "string"
                        },
                        "definition": {
                          "type": "object",
                          "properties": {
                            "form": {
                              "type": "string",
                              "enum": [
                                "shared",
                                "family_local",
                                "project_local",
                                "built_in",
                                "legacy_unknown"
                              ]
                            },
                            "guid": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "builtInParameterName": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "form",
                            "guid",
                            "builtInParameterName"
                          ],
                          "additionalProperties": false
                        },
                        "definitionForm": {
                          "type": "string",
                          "enum": [
                            "shared",
                            "family_local",
                            "project_local",
                            "built_in",
                            "legacy_unknown"
                          ],
                          "description": "Alias of definition.form for clients that pin the top-level field. Always equals definition.form."
                        },
                        "revitName": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "revitNameSource": {
                          "type": "string",
                          "enum": [
                            "derived",
                            "override"
                          ]
                        },
                        "revitNameOverridden": {
                          "type": "boolean"
                        },
                        "sharedParameterFileGroup": {
                          "type": "object",
                          "properties": {
                            "parameterGroupId": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "name": {
                              "type": "string"
                            },
                            "sortOrder": {
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "parameterGroupId",
                            "name",
                            "sortOrder"
                          ],
                          "additionalProperties": false
                        },
                        "revitUiGroup": {
                          "type": "object",
                          "properties": {
                            "parameterGroupId": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "groupTypeId": {
                              "type": "string",
                              "description": "Revit UI property-palette groupTypeId in ForgeTypeId format `autodesk.parameter.group:…` (e.g. `autodesk.parameter.group:identityData-1.0.0`). When the canonical ParameterGroup has no valid Revit UI groupTypeId, the response uses the pinned fallback `autodesk.parameter.group:data-1.0.0` and sets usedFallback=true. Top-level on projection read shapes; also may appear nested under package familyApplication/projectBinding."
                            },
                            "usedFallback": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "parameterGroupId",
                            "groupTypeId",
                            "usedFallback"
                          ],
                          "additionalProperties": false,
                          "description": "Derived Revit UI parameter group. groupTypeId is the stable Forge group identity used by the plugin."
                        },
                        "familyApplication": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "bindingKind": {
                                  "type": "string",
                                  "enum": [
                                    "instance",
                                    "type"
                                  ]
                                }
                              },
                              "required": [
                                "bindingKind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "projectBinding": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "bindingKind": {
                                  "type": "string",
                                  "enum": [
                                    "instance",
                                    "type"
                                  ]
                                }
                              },
                              "required": [
                                "bindingKind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "bindingKindPreference": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "instance",
                                "type"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "revitPrimaryUsage": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "family",
                                "project"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "isSystem": {
                          "type": "boolean"
                        },
                        "resolvedCategoryScope": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "projectionId": {
                                  "type": "string"
                                },
                                "parameterKeyId": {
                                  "type": "string"
                                },
                                "sharedGuid": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "categories": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "builtinName": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "builtinCategoryInt": {
                                        "anyOf": [
                                          {
                                            "type": "integer",
                                            "minimum": -9007199254740991,
                                            "maximum": 9007199254740991
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "forgeTypeId": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "displayName": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "builtinName",
                                      "builtinCategoryInt",
                                      "forgeTypeId",
                                      "displayName"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "contributingObjectClasses": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "objectClassId": {
                                        "type": "string"
                                      },
                                      "objectClassKey": {
                                        "type": "string"
                                      },
                                      "categories": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "builtinName": {
                                              "anyOf": [
                                                {
                                                  "type": "string"
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            },
                                            "builtinCategoryInt": {
                                              "anyOf": [
                                                {
                                                  "type": "integer",
                                                  "minimum": -9007199254740991,
                                                  "maximum": 9007199254740991
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            },
                                            "forgeTypeId": {
                                              "anyOf": [
                                                {
                                                  "type": "string"
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            },
                                            "displayName": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "builtinName",
                                            "builtinCategoryInt",
                                            "forgeTypeId",
                                            "displayName"
                                          ],
                                          "additionalProperties": false
                                        }
                                      }
                                    },
                                    "required": [
                                      "objectClassId",
                                      "objectClassKey",
                                      "categories"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "diagnostics": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              },
                              "required": [
                                "projectionId",
                                "parameterKeyId",
                                "sharedGuid",
                                "categories",
                                "contributingObjectClasses",
                                "diagnostics"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "scope": {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "enum": [
                                "derived",
                                "unscoped"
                              ],
                              "description": "Project-binding category-scope kind. Always derived from ObjectClass assignments when a project binding exists. `unscoped` when there is no project binding / no resolved scope."
                            }
                          },
                          "required": [
                            "kind"
                          ],
                          "additionalProperties": false
                        },
                        "builtInCategories": {
                          "anyOf": [
                            {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "builtinName": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "builtinCategoryInt": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": -9007199254740991,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "forgeTypeId": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "displayName": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "builtinName",
                                  "builtinCategoryInt",
                                  "forgeTypeId",
                                  "displayName"
                                ],
                                "additionalProperties": false
                              }
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Revit-native categories where a built_in parameter exists. Null when no Revit-availability source or explicit projection data is present. Never derived from ObjectClass affinity links."
                        },
                        "specTypeId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "storageType": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "Double",
                                "Integer",
                                "String",
                                "ElementId",
                                "None"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "visibilityFlags": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "isVisible": {
                                  "type": "boolean"
                                },
                                "isUserModifiable": {
                                  "type": "boolean"
                                },
                                "hidesWhenNoValue": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "isVisible",
                                "isUserModifiable",
                                "hidesWhenNoValue"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "discipline": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "tooltipDescription": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "projectionStatus": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "approved",
                            "archived"
                          ]
                        },
                        "lifecycleStatus": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "draft",
                                "active",
                                "approved",
                                "archived"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "isApproved": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "id",
                        "parameterKeyId",
                        "definition",
                        "definitionForm",
                        "revitName",
                        "revitNameSource",
                        "revitNameOverridden",
                        "sharedParameterFileGroup",
                        "revitUiGroup",
                        "familyApplication",
                        "projectBinding",
                        "bindingKindPreference",
                        "revitPrimaryUsage",
                        "isSystem",
                        "resolvedCategoryScope",
                        "scope",
                        "builtInCategories",
                        "specTypeId",
                        "storageType",
                        "visibilityFlags",
                        "discipline",
                        "tooltipDescription",
                        "projectionStatus",
                        "lifecycleStatus",
                        "isApproved"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "201": {
            "description": "Revit parameter projection created",
            "headers": {
              "Location": {
                "description": "URI of the newly created projection",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "parameterKeyId": {
                          "type": "string"
                        },
                        "definition": {
                          "type": "object",
                          "properties": {
                            "form": {
                              "type": "string",
                              "enum": [
                                "shared",
                                "family_local",
                                "project_local",
                                "built_in",
                                "legacy_unknown"
                              ]
                            },
                            "guid": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "builtInParameterName": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "form",
                            "guid",
                            "builtInParameterName"
                          ],
                          "additionalProperties": false
                        },
                        "definitionForm": {
                          "type": "string",
                          "enum": [
                            "shared",
                            "family_local",
                            "project_local",
                            "built_in",
                            "legacy_unknown"
                          ],
                          "description": "Alias of definition.form for clients that pin the top-level field. Always equals definition.form."
                        },
                        "revitName": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "revitNameSource": {
                          "type": "string",
                          "enum": [
                            "derived",
                            "override"
                          ]
                        },
                        "revitNameOverridden": {
                          "type": "boolean"
                        },
                        "sharedParameterFileGroup": {
                          "type": "object",
                          "properties": {
                            "parameterGroupId": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "name": {
                              "type": "string"
                            },
                            "sortOrder": {
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "parameterGroupId",
                            "name",
                            "sortOrder"
                          ],
                          "additionalProperties": false
                        },
                        "revitUiGroup": {
                          "type": "object",
                          "properties": {
                            "parameterGroupId": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "groupTypeId": {
                              "type": "string",
                              "description": "Revit UI property-palette groupTypeId in ForgeTypeId format `autodesk.parameter.group:…` (e.g. `autodesk.parameter.group:identityData-1.0.0`). When the canonical ParameterGroup has no valid Revit UI groupTypeId, the response uses the pinned fallback `autodesk.parameter.group:data-1.0.0` and sets usedFallback=true. Top-level on projection read shapes; also may appear nested under package familyApplication/projectBinding."
                            },
                            "usedFallback": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "parameterGroupId",
                            "groupTypeId",
                            "usedFallback"
                          ],
                          "additionalProperties": false,
                          "description": "Derived Revit UI parameter group. groupTypeId is the stable Forge group identity used by the plugin."
                        },
                        "familyApplication": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "bindingKind": {
                                  "type": "string",
                                  "enum": [
                                    "instance",
                                    "type"
                                  ]
                                }
                              },
                              "required": [
                                "bindingKind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "projectBinding": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "bindingKind": {
                                  "type": "string",
                                  "enum": [
                                    "instance",
                                    "type"
                                  ]
                                }
                              },
                              "required": [
                                "bindingKind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "bindingKindPreference": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "instance",
                                "type"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "revitPrimaryUsage": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "family",
                                "project"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "isSystem": {
                          "type": "boolean"
                        },
                        "resolvedCategoryScope": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "projectionId": {
                                  "type": "string"
                                },
                                "parameterKeyId": {
                                  "type": "string"
                                },
                                "sharedGuid": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "categories": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "builtinName": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "builtinCategoryInt": {
                                        "anyOf": [
                                          {
                                            "type": "integer",
                                            "minimum": -9007199254740991,
                                            "maximum": 9007199254740991
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "forgeTypeId": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "displayName": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "builtinName",
                                      "builtinCategoryInt",
                                      "forgeTypeId",
                                      "displayName"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "contributingObjectClasses": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "objectClassId": {
                                        "type": "string"
                                      },
                                      "objectClassKey": {
                                        "type": "string"
                                      },
                                      "categories": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "builtinName": {
                                              "anyOf": [
                                                {
                                                  "type": "string"
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            },
                                            "builtinCategoryInt": {
                                              "anyOf": [
                                                {
                                                  "type": "integer",
                                                  "minimum": -9007199254740991,
                                                  "maximum": 9007199254740991
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            },
                                            "forgeTypeId": {
                                              "anyOf": [
                                                {
                                                  "type": "string"
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            },
                                            "displayName": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "builtinName",
                                            "builtinCategoryInt",
                                            "forgeTypeId",
                                            "displayName"
                                          ],
                                          "additionalProperties": false
                                        }
                                      }
                                    },
                                    "required": [
                                      "objectClassId",
                                      "objectClassKey",
                                      "categories"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "diagnostics": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              },
                              "required": [
                                "projectionId",
                                "parameterKeyId",
                                "sharedGuid",
                                "categories",
                                "contributingObjectClasses",
                                "diagnostics"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "scope": {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "enum": [
                                "derived",
                                "unscoped"
                              ],
                              "description": "Project-binding category-scope kind. Always derived from ObjectClass assignments when a project binding exists. `unscoped` when there is no project binding / no resolved scope."
                            }
                          },
                          "required": [
                            "kind"
                          ],
                          "additionalProperties": false
                        },
                        "builtInCategories": {
                          "anyOf": [
                            {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "builtinName": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "builtinCategoryInt": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": -9007199254740991,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "forgeTypeId": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "displayName": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "builtinName",
                                  "builtinCategoryInt",
                                  "forgeTypeId",
                                  "displayName"
                                ],
                                "additionalProperties": false
                              }
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Revit-native categories where a built_in parameter exists. Null when no Revit-availability source or explicit projection data is present. Never derived from ObjectClass affinity links."
                        },
                        "specTypeId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "storageType": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "Double",
                                "Integer",
                                "String",
                                "ElementId",
                                "None"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "visibilityFlags": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "isVisible": {
                                  "type": "boolean"
                                },
                                "isUserModifiable": {
                                  "type": "boolean"
                                },
                                "hidesWhenNoValue": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "isVisible",
                                "isUserModifiable",
                                "hidesWhenNoValue"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "discipline": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "tooltipDescription": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "projectionStatus": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "approved",
                            "archived"
                          ]
                        },
                        "lifecycleStatus": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "draft",
                                "active",
                                "approved",
                                "archived"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "isApproved": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "id",
                        "parameterKeyId",
                        "definition",
                        "definitionForm",
                        "revitName",
                        "revitNameSource",
                        "revitNameOverridden",
                        "sharedParameterFileGroup",
                        "revitUiGroup",
                        "familyApplication",
                        "projectBinding",
                        "bindingKindPreference",
                        "revitPrimaryUsage",
                        "isSystem",
                        "resolvedCategoryScope",
                        "scope",
                        "builtInCategories",
                        "specTypeId",
                        "storageType",
                        "visibilityFlags",
                        "discipline",
                        "tooltipDescription",
                        "projectionStatus",
                        "lifecycleStatus",
                        "isApproved"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "GUID / built-in / projection identity conflict (SHARED_GUID_CONFLICT, BUILT_IN_PARAMETER_NAME_CONFLICT, or REVIT_PROJECTION_IDENTITY_CONFLICT)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Projection invariant rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Projection authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/revit/parameter-projections/{key}": {
      "get": {
        "operationId": "getRevitParameterProjection",
        "tags": [
          "BIM Ontology / Revit Parameter Projection"
        ],
        "summary": "Get a Revit parameter projection",
        "description": "Steward detail read. `:key` is the projection domain_id (ADR-0048). Includes identity, GUID, status, discipline, spec type, derived name, applications and binding kinds, primary usage, derived categories (S19 applicable-class set), ParameterKey summary, and missingForApproval from RevitProjectionApprovePolicy (empty when complete). Not a system-maintenance endpoint.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "RevitParameterProjection",
          "useCase": "GetRevitParameterProjectionUseCase",
          "domainEvents": [],
          "domainErrors": [
            "RevitParameterProjectionInvariantError",
            "RevitProjectionAuthoringError",
            "ObjectClassMissingRevitCategoryError",
            "ProjectParameterCategoryScopeEmptyError",
            "MalformedRevitCategoryDataError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "RevitParameterProjection domain_id (ADR-0048)"
          }
        ],
        "responses": {
          "200": {
            "description": "Revit parameter projection detail",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "parameterKeyId": {
                          "type": "string"
                        },
                        "guid": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "projectionStatus": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "approved",
                            "archived"
                          ]
                        },
                        "discipline": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "specTypeId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "revitName": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "familyApplication": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "bindingKind": {
                                  "type": "string",
                                  "enum": [
                                    "instance",
                                    "type"
                                  ]
                                }
                              },
                              "required": [
                                "bindingKind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "projectBinding": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "bindingKind": {
                                  "type": "string",
                                  "enum": [
                                    "instance",
                                    "type"
                                  ]
                                }
                              },
                              "required": [
                                "bindingKind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "bindingKindPreference": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "instance",
                                "type"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "revitPrimaryUsage": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "family",
                                "project"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "categories": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "builtinName": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "builtinCategoryInt": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": -9007199254740991,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "forgeTypeId": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "displayName": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "builtinName",
                              "builtinCategoryInt",
                              "forgeTypeId",
                              "displayName"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "parameterKey": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "name": {
                                  "type": "string"
                                },
                                "handle": {
                                  "type": "string"
                                },
                                "lifecycleStatus": {
                                  "type": "string"
                                },
                                "usages": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              },
                              "required": [
                                "id",
                                "name",
                                "handle",
                                "lifecycleStatus",
                                "usages"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "missingForApproval": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "parameterKeyId",
                        "guid",
                        "projectionStatus",
                        "discipline",
                        "specTypeId",
                        "revitName",
                        "familyApplication",
                        "projectBinding",
                        "bindingKindPreference",
                        "revitPrimaryUsage",
                        "categories",
                        "parameterKey",
                        "missingForApproval"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Conflict: GUID / built-in identity, or approve preconditions unmet (REVIT_PROJECTION_APPROVE_PRECONDITION_FAILED lists every unmet item)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Projection invariant rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Projection authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      },
      "patch": {
        "operationId": "updateRevitParameterProjection",
        "tags": [
          "BIM Ontology / Revit Parameter Projection"
        ],
        "summary": "Patch steward Revit projection facts",
        "description": "Steward write surface for Revit-specific facts on a draft or approved projection. Accepts binding kind preference, Revit primary usage, family application enable/disable and binding kind, project binding enable/disable and binding kind, and visibility / user-modifiable flags. Derived fields (parameterKeyId, discipline, spec type, derived name, categories, GUID, status) are rejected with HTTP 400 naming the field. A PATCH that changes binding, usage, or visibility facts on an approved projection demotes it to draft so the steward must re-approve (SPF/package output would change). A no-op PATCH stays approved. The normal path is: approved ParameterKey → auto-created draft → steward PATCH → approve.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "RevitParameterProjection",
          "useCase": "UpdateRevitParameterProjectionUseCase",
          "domainEvents": [
            "RevitParameterProjectionUpdated"
          ],
          "domainErrors": [
            "RevitParameterProjectionInvariantError",
            "RevitProjectionAuthoringError",
            "ObjectClassMissingRevitCategoryError",
            "ProjectParameterCategoryScopeEmptyError",
            "MalformedRevitCategoryDataError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "RevitParameterProjection domain_id (ADR-0048)"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "bindingKindPreference": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "instance",
                          "type"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "revitPrimaryUsage": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "family",
                          "project"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "familyApplication": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "bindingKind": {
                            "type": "string",
                            "enum": [
                              "instance",
                              "type"
                            ]
                          }
                        },
                        "required": [
                          "bindingKind"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "projectBinding": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "bindingKind": {
                            "type": "string",
                            "enum": [
                              "instance",
                              "type"
                            ]
                          }
                        },
                        "required": [
                          "bindingKind"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "visibilityFlags": {
                    "type": "object",
                    "properties": {
                      "isVisible": {
                        "type": "boolean"
                      },
                      "isUserModifiable": {
                        "type": "boolean"
                      },
                      "hidesWhenNoValue": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "isVisible",
                      "isUserModifiable",
                      "hidesWhenNoValue"
                    ],
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Revit parameter projection updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "parameterKeyId": {
                          "type": "string"
                        },
                        "definition": {
                          "type": "object",
                          "properties": {
                            "form": {
                              "type": "string",
                              "enum": [
                                "shared",
                                "family_local",
                                "project_local",
                                "built_in",
                                "legacy_unknown"
                              ]
                            },
                            "guid": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "builtInParameterName": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "form",
                            "guid",
                            "builtInParameterName"
                          ],
                          "additionalProperties": false
                        },
                        "definitionForm": {
                          "type": "string",
                          "enum": [
                            "shared",
                            "family_local",
                            "project_local",
                            "built_in",
                            "legacy_unknown"
                          ],
                          "description": "Alias of definition.form for clients that pin the top-level field. Always equals definition.form."
                        },
                        "revitName": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "revitNameSource": {
                          "type": "string",
                          "enum": [
                            "derived",
                            "override"
                          ]
                        },
                        "revitNameOverridden": {
                          "type": "boolean"
                        },
                        "sharedParameterFileGroup": {
                          "type": "object",
                          "properties": {
                            "parameterGroupId": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "name": {
                              "type": "string"
                            },
                            "sortOrder": {
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "parameterGroupId",
                            "name",
                            "sortOrder"
                          ],
                          "additionalProperties": false
                        },
                        "revitUiGroup": {
                          "type": "object",
                          "properties": {
                            "parameterGroupId": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "groupTypeId": {
                              "type": "string",
                              "description": "Revit UI property-palette groupTypeId in ForgeTypeId format `autodesk.parameter.group:…` (e.g. `autodesk.parameter.group:identityData-1.0.0`). When the canonical ParameterGroup has no valid Revit UI groupTypeId, the response uses the pinned fallback `autodesk.parameter.group:data-1.0.0` and sets usedFallback=true. Top-level on projection read shapes; also may appear nested under package familyApplication/projectBinding."
                            },
                            "usedFallback": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "parameterGroupId",
                            "groupTypeId",
                            "usedFallback"
                          ],
                          "additionalProperties": false,
                          "description": "Derived Revit UI parameter group. groupTypeId is the stable Forge group identity used by the plugin."
                        },
                        "familyApplication": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "bindingKind": {
                                  "type": "string",
                                  "enum": [
                                    "instance",
                                    "type"
                                  ]
                                }
                              },
                              "required": [
                                "bindingKind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "projectBinding": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "bindingKind": {
                                  "type": "string",
                                  "enum": [
                                    "instance",
                                    "type"
                                  ]
                                }
                              },
                              "required": [
                                "bindingKind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "bindingKindPreference": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "instance",
                                "type"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "revitPrimaryUsage": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "family",
                                "project"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "isSystem": {
                          "type": "boolean"
                        },
                        "resolvedCategoryScope": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "projectionId": {
                                  "type": "string"
                                },
                                "parameterKeyId": {
                                  "type": "string"
                                },
                                "sharedGuid": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "categories": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "builtinName": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "builtinCategoryInt": {
                                        "anyOf": [
                                          {
                                            "type": "integer",
                                            "minimum": -9007199254740991,
                                            "maximum": 9007199254740991
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "forgeTypeId": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "displayName": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "builtinName",
                                      "builtinCategoryInt",
                                      "forgeTypeId",
                                      "displayName"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "contributingObjectClasses": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "objectClassId": {
                                        "type": "string"
                                      },
                                      "objectClassKey": {
                                        "type": "string"
                                      },
                                      "categories": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "builtinName": {
                                              "anyOf": [
                                                {
                                                  "type": "string"
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            },
                                            "builtinCategoryInt": {
                                              "anyOf": [
                                                {
                                                  "type": "integer",
                                                  "minimum": -9007199254740991,
                                                  "maximum": 9007199254740991
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            },
                                            "forgeTypeId": {
                                              "anyOf": [
                                                {
                                                  "type": "string"
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            },
                                            "displayName": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "builtinName",
                                            "builtinCategoryInt",
                                            "forgeTypeId",
                                            "displayName"
                                          ],
                                          "additionalProperties": false
                                        }
                                      }
                                    },
                                    "required": [
                                      "objectClassId",
                                      "objectClassKey",
                                      "categories"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "diagnostics": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              },
                              "required": [
                                "projectionId",
                                "parameterKeyId",
                                "sharedGuid",
                                "categories",
                                "contributingObjectClasses",
                                "diagnostics"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "scope": {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "enum": [
                                "derived",
                                "unscoped"
                              ],
                              "description": "Project-binding category-scope kind. Always derived from ObjectClass assignments when a project binding exists. `unscoped` when there is no project binding / no resolved scope."
                            }
                          },
                          "required": [
                            "kind"
                          ],
                          "additionalProperties": false
                        },
                        "builtInCategories": {
                          "anyOf": [
                            {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "builtinName": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "builtinCategoryInt": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": -9007199254740991,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "forgeTypeId": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "displayName": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "builtinName",
                                  "builtinCategoryInt",
                                  "forgeTypeId",
                                  "displayName"
                                ],
                                "additionalProperties": false
                              }
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Revit-native categories where a built_in parameter exists. Null when no Revit-availability source or explicit projection data is present. Never derived from ObjectClass affinity links."
                        },
                        "specTypeId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "storageType": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "Double",
                                "Integer",
                                "String",
                                "ElementId",
                                "None"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "visibilityFlags": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "isVisible": {
                                  "type": "boolean"
                                },
                                "isUserModifiable": {
                                  "type": "boolean"
                                },
                                "hidesWhenNoValue": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "isVisible",
                                "isUserModifiable",
                                "hidesWhenNoValue"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "discipline": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "tooltipDescription": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "projectionStatus": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "approved",
                            "archived"
                          ]
                        },
                        "lifecycleStatus": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "draft",
                                "active",
                                "approved",
                                "archived"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "isApproved": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "id",
                        "parameterKeyId",
                        "definition",
                        "definitionForm",
                        "revitName",
                        "revitNameSource",
                        "revitNameOverridden",
                        "sharedParameterFileGroup",
                        "revitUiGroup",
                        "familyApplication",
                        "projectBinding",
                        "bindingKindPreference",
                        "revitPrimaryUsage",
                        "isSystem",
                        "resolvedCategoryScope",
                        "scope",
                        "builtInCategories",
                        "specTypeId",
                        "storageType",
                        "visibilityFlags",
                        "discipline",
                        "tooltipDescription",
                        "projectionStatus",
                        "lifecycleStatus",
                        "isApproved"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Conflict: GUID / built-in identity, or approve preconditions unmet (REVIT_PROJECTION_APPROVE_PRECONDITION_FAILED lists every unmet item)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Projection invariant rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Projection authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/revit/parameter-projections/{key}/actions/approve": {
      "post": {
        "operationId": "approveRevitParameterProjection",
        "tags": [
          "BIM Ontology / Revit Parameter Projection"
        ],
        "summary": "Approve a Revit parameter projection",
        "description": "Steward promotion of a draft projection after Revit-specific facts are complete. `:key` is the projection domain_id (ADR-0048). HTTP 409 lists every unmet precondition at once (ParameterKey approved + bim_parameter, discipline, spec type, enabled application, binding kind preference, primary usage, shared GUID, every applicable ObjectClass approved, categories when the definition requires them). Not a system-maintenance endpoint. The normal path is: approved ParameterKey → auto-created draft → steward PATCH → approve.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "RevitParameterProjection",
          "useCase": "ApproveRevitParameterProjectionUseCase",
          "domainEvents": [
            "RevitParameterProjectionApproved"
          ],
          "domainErrors": [
            "RevitParameterProjectionInvariantError",
            "RevitProjectionAuthoringError",
            "ObjectClassMissingRevitCategoryError",
            "ProjectParameterCategoryScopeEmptyError",
            "MalformedRevitCategoryDataError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "RevitParameterProjection domain_id (ADR-0048)"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Revit parameter projection approved",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "parameterKeyId": {
                          "type": "string"
                        },
                        "definition": {
                          "type": "object",
                          "properties": {
                            "form": {
                              "type": "string",
                              "enum": [
                                "shared",
                                "family_local",
                                "project_local",
                                "built_in",
                                "legacy_unknown"
                              ]
                            },
                            "guid": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "builtInParameterName": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "form",
                            "guid",
                            "builtInParameterName"
                          ],
                          "additionalProperties": false
                        },
                        "definitionForm": {
                          "type": "string",
                          "enum": [
                            "shared",
                            "family_local",
                            "project_local",
                            "built_in",
                            "legacy_unknown"
                          ],
                          "description": "Alias of definition.form for clients that pin the top-level field. Always equals definition.form."
                        },
                        "revitName": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "revitNameSource": {
                          "type": "string",
                          "enum": [
                            "derived",
                            "override"
                          ]
                        },
                        "revitNameOverridden": {
                          "type": "boolean"
                        },
                        "sharedParameterFileGroup": {
                          "type": "object",
                          "properties": {
                            "parameterGroupId": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "name": {
                              "type": "string"
                            },
                            "sortOrder": {
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "parameterGroupId",
                            "name",
                            "sortOrder"
                          ],
                          "additionalProperties": false
                        },
                        "revitUiGroup": {
                          "type": "object",
                          "properties": {
                            "parameterGroupId": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "groupTypeId": {
                              "type": "string",
                              "description": "Revit UI property-palette groupTypeId in ForgeTypeId format `autodesk.parameter.group:…` (e.g. `autodesk.parameter.group:identityData-1.0.0`). When the canonical ParameterGroup has no valid Revit UI groupTypeId, the response uses the pinned fallback `autodesk.parameter.group:data-1.0.0` and sets usedFallback=true. Top-level on projection read shapes; also may appear nested under package familyApplication/projectBinding."
                            },
                            "usedFallback": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "parameterGroupId",
                            "groupTypeId",
                            "usedFallback"
                          ],
                          "additionalProperties": false,
                          "description": "Derived Revit UI parameter group. groupTypeId is the stable Forge group identity used by the plugin."
                        },
                        "familyApplication": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "bindingKind": {
                                  "type": "string",
                                  "enum": [
                                    "instance",
                                    "type"
                                  ]
                                }
                              },
                              "required": [
                                "bindingKind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "projectBinding": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "bindingKind": {
                                  "type": "string",
                                  "enum": [
                                    "instance",
                                    "type"
                                  ]
                                }
                              },
                              "required": [
                                "bindingKind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "bindingKindPreference": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "instance",
                                "type"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "revitPrimaryUsage": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "family",
                                "project"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "isSystem": {
                          "type": "boolean"
                        },
                        "resolvedCategoryScope": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "projectionId": {
                                  "type": "string"
                                },
                                "parameterKeyId": {
                                  "type": "string"
                                },
                                "sharedGuid": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "categories": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "builtinName": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "builtinCategoryInt": {
                                        "anyOf": [
                                          {
                                            "type": "integer",
                                            "minimum": -9007199254740991,
                                            "maximum": 9007199254740991
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "forgeTypeId": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "displayName": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "builtinName",
                                      "builtinCategoryInt",
                                      "forgeTypeId",
                                      "displayName"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "contributingObjectClasses": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "objectClassId": {
                                        "type": "string"
                                      },
                                      "objectClassKey": {
                                        "type": "string"
                                      },
                                      "categories": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "builtinName": {
                                              "anyOf": [
                                                {
                                                  "type": "string"
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            },
                                            "builtinCategoryInt": {
                                              "anyOf": [
                                                {
                                                  "type": "integer",
                                                  "minimum": -9007199254740991,
                                                  "maximum": 9007199254740991
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            },
                                            "forgeTypeId": {
                                              "anyOf": [
                                                {
                                                  "type": "string"
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            },
                                            "displayName": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "builtinName",
                                            "builtinCategoryInt",
                                            "forgeTypeId",
                                            "displayName"
                                          ],
                                          "additionalProperties": false
                                        }
                                      }
                                    },
                                    "required": [
                                      "objectClassId",
                                      "objectClassKey",
                                      "categories"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "diagnostics": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              },
                              "required": [
                                "projectionId",
                                "parameterKeyId",
                                "sharedGuid",
                                "categories",
                                "contributingObjectClasses",
                                "diagnostics"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "scope": {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "enum": [
                                "derived",
                                "unscoped"
                              ],
                              "description": "Project-binding category-scope kind. Always derived from ObjectClass assignments when a project binding exists. `unscoped` when there is no project binding / no resolved scope."
                            }
                          },
                          "required": [
                            "kind"
                          ],
                          "additionalProperties": false
                        },
                        "builtInCategories": {
                          "anyOf": [
                            {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "builtinName": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "builtinCategoryInt": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": -9007199254740991,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "forgeTypeId": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "displayName": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "builtinName",
                                  "builtinCategoryInt",
                                  "forgeTypeId",
                                  "displayName"
                                ],
                                "additionalProperties": false
                              }
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Revit-native categories where a built_in parameter exists. Null when no Revit-availability source or explicit projection data is present. Never derived from ObjectClass affinity links."
                        },
                        "specTypeId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "storageType": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "Double",
                                "Integer",
                                "String",
                                "ElementId",
                                "None"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "visibilityFlags": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "isVisible": {
                                  "type": "boolean"
                                },
                                "isUserModifiable": {
                                  "type": "boolean"
                                },
                                "hidesWhenNoValue": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "isVisible",
                                "isUserModifiable",
                                "hidesWhenNoValue"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "discipline": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "tooltipDescription": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "projectionStatus": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "approved",
                            "archived"
                          ]
                        },
                        "lifecycleStatus": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "draft",
                                "active",
                                "approved",
                                "archived"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "isApproved": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "id",
                        "parameterKeyId",
                        "definition",
                        "definitionForm",
                        "revitName",
                        "revitNameSource",
                        "revitNameOverridden",
                        "sharedParameterFileGroup",
                        "revitUiGroup",
                        "familyApplication",
                        "projectBinding",
                        "bindingKindPreference",
                        "revitPrimaryUsage",
                        "isSystem",
                        "resolvedCategoryScope",
                        "scope",
                        "builtInCategories",
                        "specTypeId",
                        "storageType",
                        "visibilityFlags",
                        "discipline",
                        "tooltipDescription",
                        "projectionStatus",
                        "lifecycleStatus",
                        "isApproved"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Conflict: GUID / built-in identity, or approve preconditions unmet (REVIT_PROJECTION_APPROVE_PRECONDITION_FAILED lists every unmet item)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Projection invariant rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Projection authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/revit/parameter-projections/{id}/archive": {
      "post": {
        "operationId": "archiveRevitParameterProjection",
        "tags": [
          "BIM Ontology / Revit Parameter Projection",
          "system-maintenance"
        ],
        "summary": "Archive a Revit parameter projection",
        "description": "Not part of the steward workflow. The normal path is: approved ParameterKey → auto-created draft → steward PATCH → approve.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-internal": true,
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "RevitParameterProjection",
          "useCase": "ArchiveRevitParameterProjectionUseCase",
          "domainEvents": [
            "RevitParameterProjectionArchived"
          ],
          "domainErrors": [
            "RevitParameterProjectionInvariantError",
            "RevitProjectionAuthoringError",
            "ObjectClassMissingRevitCategoryError",
            "ProjectParameterCategoryScopeEmptyError",
            "MalformedRevitCategoryDataError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "RevitParameterProjection domain_id (ADR-0048)"
          }
        ],
        "responses": {
          "200": {
            "description": "Revit parameter projection archived",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "parameterKeyId": {
                          "type": "string"
                        },
                        "definition": {
                          "type": "object",
                          "properties": {
                            "form": {
                              "type": "string",
                              "enum": [
                                "shared",
                                "family_local",
                                "project_local",
                                "built_in",
                                "legacy_unknown"
                              ]
                            },
                            "guid": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "builtInParameterName": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "form",
                            "guid",
                            "builtInParameterName"
                          ],
                          "additionalProperties": false
                        },
                        "definitionForm": {
                          "type": "string",
                          "enum": [
                            "shared",
                            "family_local",
                            "project_local",
                            "built_in",
                            "legacy_unknown"
                          ],
                          "description": "Alias of definition.form for clients that pin the top-level field. Always equals definition.form."
                        },
                        "revitName": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "revitNameSource": {
                          "type": "string",
                          "enum": [
                            "derived",
                            "override"
                          ]
                        },
                        "revitNameOverridden": {
                          "type": "boolean"
                        },
                        "sharedParameterFileGroup": {
                          "type": "object",
                          "properties": {
                            "parameterGroupId": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "name": {
                              "type": "string"
                            },
                            "sortOrder": {
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "parameterGroupId",
                            "name",
                            "sortOrder"
                          ],
                          "additionalProperties": false
                        },
                        "revitUiGroup": {
                          "type": "object",
                          "properties": {
                            "parameterGroupId": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "groupTypeId": {
                              "type": "string",
                              "description": "Revit UI property-palette groupTypeId in ForgeTypeId format `autodesk.parameter.group:…` (e.g. `autodesk.parameter.group:identityData-1.0.0`). When the canonical ParameterGroup has no valid Revit UI groupTypeId, the response uses the pinned fallback `autodesk.parameter.group:data-1.0.0` and sets usedFallback=true. Top-level on projection read shapes; also may appear nested under package familyApplication/projectBinding."
                            },
                            "usedFallback": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "parameterGroupId",
                            "groupTypeId",
                            "usedFallback"
                          ],
                          "additionalProperties": false,
                          "description": "Derived Revit UI parameter group. groupTypeId is the stable Forge group identity used by the plugin."
                        },
                        "familyApplication": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "bindingKind": {
                                  "type": "string",
                                  "enum": [
                                    "instance",
                                    "type"
                                  ]
                                }
                              },
                              "required": [
                                "bindingKind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "projectBinding": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "bindingKind": {
                                  "type": "string",
                                  "enum": [
                                    "instance",
                                    "type"
                                  ]
                                }
                              },
                              "required": [
                                "bindingKind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "bindingKindPreference": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "instance",
                                "type"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "revitPrimaryUsage": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "family",
                                "project"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "isSystem": {
                          "type": "boolean"
                        },
                        "resolvedCategoryScope": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "projectionId": {
                                  "type": "string"
                                },
                                "parameterKeyId": {
                                  "type": "string"
                                },
                                "sharedGuid": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "categories": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "builtinName": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "builtinCategoryInt": {
                                        "anyOf": [
                                          {
                                            "type": "integer",
                                            "minimum": -9007199254740991,
                                            "maximum": 9007199254740991
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "forgeTypeId": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "displayName": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "builtinName",
                                      "builtinCategoryInt",
                                      "forgeTypeId",
                                      "displayName"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "contributingObjectClasses": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "objectClassId": {
                                        "type": "string"
                                      },
                                      "objectClassKey": {
                                        "type": "string"
                                      },
                                      "categories": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "builtinName": {
                                              "anyOf": [
                                                {
                                                  "type": "string"
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            },
                                            "builtinCategoryInt": {
                                              "anyOf": [
                                                {
                                                  "type": "integer",
                                                  "minimum": -9007199254740991,
                                                  "maximum": 9007199254740991
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            },
                                            "forgeTypeId": {
                                              "anyOf": [
                                                {
                                                  "type": "string"
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            },
                                            "displayName": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "builtinName",
                                            "builtinCategoryInt",
                                            "forgeTypeId",
                                            "displayName"
                                          ],
                                          "additionalProperties": false
                                        }
                                      }
                                    },
                                    "required": [
                                      "objectClassId",
                                      "objectClassKey",
                                      "categories"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "diagnostics": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              },
                              "required": [
                                "projectionId",
                                "parameterKeyId",
                                "sharedGuid",
                                "categories",
                                "contributingObjectClasses",
                                "diagnostics"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "scope": {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "enum": [
                                "derived",
                                "unscoped"
                              ],
                              "description": "Project-binding category-scope kind. Always derived from ObjectClass assignments when a project binding exists. `unscoped` when there is no project binding / no resolved scope."
                            }
                          },
                          "required": [
                            "kind"
                          ],
                          "additionalProperties": false
                        },
                        "builtInCategories": {
                          "anyOf": [
                            {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "builtinName": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "builtinCategoryInt": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": -9007199254740991,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "forgeTypeId": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "displayName": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "builtinName",
                                  "builtinCategoryInt",
                                  "forgeTypeId",
                                  "displayName"
                                ],
                                "additionalProperties": false
                              }
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Revit-native categories where a built_in parameter exists. Null when no Revit-availability source or explicit projection data is present. Never derived from ObjectClass affinity links."
                        },
                        "specTypeId": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "storageType": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "Double",
                                "Integer",
                                "String",
                                "ElementId",
                                "None"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "visibilityFlags": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "isVisible": {
                                  "type": "boolean"
                                },
                                "isUserModifiable": {
                                  "type": "boolean"
                                },
                                "hidesWhenNoValue": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "isVisible",
                                "isUserModifiable",
                                "hidesWhenNoValue"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "discipline": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "tooltipDescription": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "projectionStatus": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "approved",
                            "archived"
                          ]
                        },
                        "lifecycleStatus": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "draft",
                                "active",
                                "approved",
                                "archived"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "isApproved": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "id",
                        "parameterKeyId",
                        "definition",
                        "definitionForm",
                        "revitName",
                        "revitNameSource",
                        "revitNameOverridden",
                        "sharedParameterFileGroup",
                        "revitUiGroup",
                        "familyApplication",
                        "projectBinding",
                        "bindingKindPreference",
                        "revitPrimaryUsage",
                        "isSystem",
                        "resolvedCategoryScope",
                        "scope",
                        "builtInCategories",
                        "specTypeId",
                        "storageType",
                        "visibilityFlags",
                        "discipline",
                        "tooltipDescription",
                        "projectionStatus",
                        "lifecycleStatus",
                        "isApproved"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Conflict: GUID / built-in identity, or approve preconditions unmet (REVIT_PROJECTION_APPROVE_PRECONDITION_FAILED lists every unmet item)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Projection invariant rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Projection authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/revit/parameter-projections/{id}/resync": {
      "post": {
        "operationId": "resyncDerivedRevitProjectionMetadata",
        "tags": [
          "BIM Ontology / Revit Parameter Projection",
          "system-maintenance"
        ],
        "summary": "Resync derived Revit projection metadata",
        "description": "Not part of the steward workflow. The normal path is: approved ParameterKey → auto-created draft → steward PATCH → approve.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-internal": true,
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "RevitParameterProjection",
          "useCase": "ResyncDerivedProjectionMetadataUseCase",
          "domainEvents": [
            "RevitParameterProjectionResynced"
          ],
          "domainErrors": [
            "RevitParameterProjectionInvariantError",
            "RevitProjectionAuthoringError",
            "ObjectClassMissingRevitCategoryError",
            "ProjectParameterCategoryScopeEmptyError",
            "MalformedRevitCategoryDataError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "RevitParameterProjection domain_id (ADR-0048)"
          }
        ],
        "responses": {
          "200": {
            "description": "Projection derivation checked and resynced",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "projectionId": {
                              "type": "string"
                            },
                            "parameterKeyId": {
                              "type": "string"
                            },
                            "revitName": {
                              "type": "string"
                            },
                            "revitNameSource": {
                              "type": "string",
                              "enum": [
                                "derived",
                                "override"
                              ]
                            },
                            "sharedParameterFileGroup": {
                              "type": "object",
                              "properties": {
                                "parameterGroupId": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "name": {
                                  "type": "string"
                                },
                                "sortOrder": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "parameterGroupId",
                                "name",
                                "sortOrder"
                              ],
                              "additionalProperties": false
                            },
                            "revitUiGroup": {
                              "type": "object",
                              "properties": {
                                "parameterGroupId": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "groupTypeId": {
                                  "type": "string"
                                },
                                "usedFallback": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "parameterGroupId",
                                "groupTypeId",
                                "usedFallback"
                              ],
                              "additionalProperties": false
                            },
                            "lifecycleStatus": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "enum": [
                                    "draft",
                                    "active",
                                    "approved",
                                    "archived"
                                  ]
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "isApproved": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "projectionId",
                            "parameterKeyId",
                            "revitName",
                            "revitNameSource",
                            "sharedParameterFileGroup",
                            "revitUiGroup",
                            "lifecycleStatus",
                            "isApproved"
                          ],
                          "additionalProperties": false
                        },
                        "changed": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "metadata",
                        "changed"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Conflict: GUID / built-in identity, or approve preconditions unmet (REVIT_PROJECTION_APPROVE_PRECONDITION_FAILED lists every unmet item)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Projection invariant rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Projection authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/revit/parameter-projections/by-parameter-key/{key}/resync": {
      "post": {
        "operationId": "resyncRevitProjectionsForParameterKey",
        "tags": [
          "BIM Ontology / Revit Parameter Projection",
          "system-maintenance"
        ],
        "summary": "Resync projections derived from a ParameterKey",
        "description": "Not part of the steward workflow. The normal path is: approved ParameterKey → auto-created draft → steward PATCH → approve.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-internal": true,
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "RevitParameterProjection",
          "useCase": "ResyncDerivedProjectionMetadataUseCase.resyncForParameterKey",
          "domainEvents": [
            "RevitParameterProjectionResynced"
          ],
          "domainErrors": [
            "RevitParameterProjectionInvariantError",
            "RevitProjectionAuthoringError",
            "ObjectClassMissingRevitCategoryError",
            "ProjectParameterCategoryScopeEmptyError",
            "MalformedRevitCategoryDataError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ParameterKey domain_id (ADR-0048)"
          }
        ],
        "responses": {
          "200": {
            "description": "ParameterKey projection resync result",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "resynced": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "resynced"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Conflict: GUID / built-in identity, or approve preconditions unmet (REVIT_PROJECTION_APPROVE_PRECONDITION_FAILED lists every unmet item)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Projection invariant rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Projection authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/revit/parameter-projections/by-parameter-group/{key}/resync": {
      "post": {
        "operationId": "resyncRevitProjectionsForParameterGroup",
        "tags": [
          "BIM Ontology / Revit Parameter Projection",
          "system-maintenance"
        ],
        "summary": "Resync projections derived from a ParameterGroup",
        "description": "Not part of the steward workflow. The normal path is: approved ParameterKey → auto-created draft → steward PATCH → approve.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-internal": true,
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "RevitParameterProjection",
          "useCase": "ResyncDerivedProjectionMetadataUseCase.resyncForParameterGroup",
          "domainEvents": [
            "RevitParameterProjectionResynced"
          ],
          "domainErrors": [
            "RevitParameterProjectionInvariantError",
            "RevitProjectionAuthoringError",
            "ObjectClassMissingRevitCategoryError",
            "ProjectParameterCategoryScopeEmptyError",
            "MalformedRevitCategoryDataError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ParameterGroup domain_id (ADR-0048)"
          }
        ],
        "responses": {
          "200": {
            "description": "ParameterGroup projection resync result",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "resynced": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "resynced"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Conflict: GUID / built-in identity, or approve preconditions unmet (REVIT_PROJECTION_APPROVE_PRECONDITION_FAILED lists every unmet item)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Projection invariant rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Projection authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/revit/parameter-projections/{id}/category-scope/resolve": {
      "post": {
        "operationId": "resolveRevitParameterCategoryScope",
        "tags": [
          "BIM Ontology / Revit Parameter Projection"
        ],
        "summary": "Resolve Revit project-binding category scope",
        "description": "Side-effect-free computation. Derives current category scope from every ObjectClass effective parameter set and performs no projection writes.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "RevitParameterProjection",
          "useCase": "ResolveRevitCategoryScopeUseCase",
          "domainEvents": [],
          "domainErrors": [
            "RevitParameterProjectionInvariantError",
            "RevitProjectionAuthoringError",
            "ObjectClassMissingRevitCategoryError",
            "ProjectParameterCategoryScopeEmptyError",
            "MalformedRevitCategoryDataError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "RevitParameterProjection domain_id (ADR-0048)"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Current project-binding category scope",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "scope": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "projectionId": {
                                  "type": "string"
                                },
                                "parameterKeyId": {
                                  "type": "string"
                                },
                                "sharedGuid": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "categories": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "builtinName": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "builtinCategoryInt": {
                                        "anyOf": [
                                          {
                                            "type": "integer",
                                            "minimum": -9007199254740991,
                                            "maximum": 9007199254740991
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "forgeTypeId": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "displayName": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "builtinName",
                                      "builtinCategoryInt",
                                      "forgeTypeId",
                                      "displayName"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "contributingObjectClasses": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "objectClassId": {
                                        "type": "string"
                                      },
                                      "objectClassKey": {
                                        "type": "string"
                                      },
                                      "categories": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "builtinName": {
                                              "anyOf": [
                                                {
                                                  "type": "string"
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            },
                                            "builtinCategoryInt": {
                                              "anyOf": [
                                                {
                                                  "type": "integer",
                                                  "minimum": -9007199254740991,
                                                  "maximum": 9007199254740991
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            },
                                            "forgeTypeId": {
                                              "anyOf": [
                                                {
                                                  "type": "string"
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            },
                                            "displayName": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "builtinName",
                                            "builtinCategoryInt",
                                            "forgeTypeId",
                                            "displayName"
                                          ],
                                          "additionalProperties": false
                                        }
                                      }
                                    },
                                    "required": [
                                      "objectClassId",
                                      "objectClassKey",
                                      "categories"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "diagnostics": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              },
                              "required": [
                                "projectionId",
                                "parameterKeyId",
                                "sharedGuid",
                                "categories",
                                "contributingObjectClasses",
                                "diagnostics"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "scope"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Conflict: GUID / built-in identity, or approve preconditions unmet (REVIT_PROJECTION_APPROVE_PRECONDITION_FAILED lists every unmet item)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Projection invariant rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Projection authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/revit/parameter-projections/lookup": {
      "post": {
        "operationId": "lookupRevitParameterProjections",
        "tags": [
          "BIM Ontology / Revit Parameter Projection"
        ],
        "summary": "Lookup Revit parameter projections by GUID or built-in name",
        "description": "Batch reverse lookup for Revit parameter projections. Provide sharedGuids and/or builtInParameterNames (at least one non-empty). Response always includes explicit found and notFound collections — misses are never silent. Each array is capped at 100 processed keys; truncation is disclosed via batch.*.truncated and batch.*.omitted (never silent).",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "RevitParameterProjection",
          "useCase": "LookupRevitParameterProjectionsUseCase",
          "domainEvents": [],
          "domainErrors": [
            "RevitParameterProjectionInvariantError",
            "RevitProjectionAuthoringError",
            "ObjectClassMissingRevitCategoryError",
            "ProjectParameterCategoryScopeEmptyError",
            "MalformedRevitCategoryDataError"
          ]
        },
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sharedGuids": {
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "builtInParameterNames": {
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Projection lookup result with found, notFound, and batch disclosure",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "found": {
                          "type": "object",
                          "properties": {
                            "bySharedGuid": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "sharedGuid": {
                                    "type": "string"
                                  },
                                  "projection": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string"
                                      },
                                      "parameterKeyId": {
                                        "type": "string"
                                      },
                                      "lifecycleStatus": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "enum": [
                                              "draft",
                                              "active",
                                              "approved",
                                              "archived"
                                            ]
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "isApproved": {
                                        "type": "boolean"
                                      },
                                      "definitionForm": {
                                        "type": "string",
                                        "enum": [
                                          "shared",
                                          "family_local",
                                          "project_local",
                                          "built_in",
                                          "legacy_unknown"
                                        ]
                                      },
                                      "sharedGuid": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "builtInParameterName": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "revitName": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "projectionStatus": {
                                        "type": "string",
                                        "enum": [
                                          "draft",
                                          "approved",
                                          "archived"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "parameterKeyId",
                                      "lifecycleStatus",
                                      "isApproved",
                                      "definitionForm",
                                      "sharedGuid",
                                      "builtInParameterName",
                                      "revitName",
                                      "projectionStatus"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "sharedGuid",
                                  "projection"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "byBuiltInParameterName": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "builtInParameterName": {
                                    "type": "string"
                                  },
                                  "projection": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string"
                                      },
                                      "parameterKeyId": {
                                        "type": "string"
                                      },
                                      "lifecycleStatus": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "enum": [
                                              "draft",
                                              "active",
                                              "approved",
                                              "archived"
                                            ]
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "isApproved": {
                                        "type": "boolean"
                                      },
                                      "definitionForm": {
                                        "type": "string",
                                        "enum": [
                                          "shared",
                                          "family_local",
                                          "project_local",
                                          "built_in",
                                          "legacy_unknown"
                                        ]
                                      },
                                      "sharedGuid": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "builtInParameterName": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "revitName": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "projectionStatus": {
                                        "type": "string",
                                        "enum": [
                                          "draft",
                                          "approved",
                                          "archived"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "parameterKeyId",
                                      "lifecycleStatus",
                                      "isApproved",
                                      "definitionForm",
                                      "sharedGuid",
                                      "builtInParameterName",
                                      "revitName",
                                      "projectionStatus"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "builtInParameterName",
                                  "projection"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "bySharedGuid",
                            "byBuiltInParameterName"
                          ],
                          "additionalProperties": false
                        },
                        "notFound": {
                          "type": "object",
                          "properties": {
                            "sharedGuids": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "builtInParameterNames": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "required": [
                            "sharedGuids",
                            "builtInParameterNames"
                          ],
                          "additionalProperties": false
                        },
                        "batch": {
                          "type": "object",
                          "properties": {
                            "sharedGuids": {
                              "type": "object",
                              "properties": {
                                "limit": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991,
                                  "description": "Max keys processed per array (100). Excess keys are listed in omitted — never silently dropped."
                                },
                                "requested": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                },
                                "processed": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                },
                                "truncated": {
                                  "type": "boolean"
                                },
                                "omitted": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              },
                              "required": [
                                "limit",
                                "requested",
                                "processed",
                                "truncated",
                                "omitted"
                              ],
                              "additionalProperties": false
                            },
                            "builtInParameterNames": {
                              "type": "object",
                              "properties": {
                                "limit": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991,
                                  "description": "Max keys processed per array (100). Excess keys are listed in omitted — never silently dropped."
                                },
                                "requested": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                },
                                "processed": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                },
                                "truncated": {
                                  "type": "boolean"
                                },
                                "omitted": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              },
                              "required": [
                                "limit",
                                "requested",
                                "processed",
                                "truncated",
                                "omitted"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "sharedGuids",
                            "builtInParameterNames"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "found",
                        "notFound",
                        "batch"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Conflict: GUID / built-in identity, or approve preconditions unmet (REVIT_PROJECTION_APPROVE_PRECONDITION_FAILED lists every unmet item)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Projection invariant rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Projection authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/revit/parameter-projections/derivation-drift": {
      "get": {
        "operationId": "listRevitProjectionDerivationDrift",
        "tags": [
          "BIM Ontology / Revit Parameter Projection"
        ],
        "summary": "List Revit projection derivation drift",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "RevitParameterProjection",
          "useCase": "ListProjectionDerivationDriftUseCase",
          "domainEvents": [],
          "domainErrors": [
            "RevitParameterProjectionInvariantError",
            "RevitProjectionAuthoringError",
            "ObjectClassMissingRevitCategoryError",
            "ProjectParameterCategoryScopeEmptyError",
            "MalformedRevitCategoryDataError"
          ]
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Projection derivation drift",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "category": {
                            "type": "string",
                            "enum": [
                              "name_override",
                              "name_stale",
                              "revit_ui_group_missing_or_invalid",
                              "missing_group",
                              "projection_missing"
                            ]
                          },
                          "projectionId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "parameterKeyId": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "category",
                          "projectionId",
                          "parameterKeyId",
                          "message"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Conflict: GUID / built-in identity, or approve preconditions unmet (REVIT_PROJECTION_APPROVE_PRECONDITION_FAILED lists every unmet item)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Projection invariant rejected the command",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Projection authoring unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "field": {
                          "type": "string"
                        },
                        "details": {},
                        "unmetRequirements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "objectClassKey": {
                                "type": "string"
                              },
                              "objectClassId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/revit/parameter-packages/resolve": {
      "post": {
        "operationId": "resolveRevitParameterPackage",
        "tags": [
          "BIM Ontology / Revit Parameter Package"
        ],
        "summary": "Resolve an ObjectClass-filtered Revit package",
        "description": "Side-effect-free deterministic manifest generation. The hash excludes generatedAt and packageHash. objectClassKeys and objectClassIds accept ObjectClass handles and/or domain ids (paste-friendly). Effective parameters expand self + ancestors via ClassParameter inheritance. SPF *GROUP rows use the root of the single-parent ObjectClass lineage (not BuildPlan parameter_groups); revitUiGroup remains the Revit property-palette group from parameter_groups. Built-in projections stay in manifest entries; DEFINITION_NOT_SHARED excludes them from the SPF text only.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "RevitParameterPackage",
          "useCase": "ResolveRevitParameterPackageUseCase",
          "domainEvents": [],
          "domainErrors": [
            "ObjectClassSetEmptyError",
            "EffectiveParameterObjectClassNotFoundError",
            "RevitParameterPackageError",
            "ObjectClassMissingRevitCategoryError",
            "ProjectParameterCategoryScopeEmptyError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "objectClassKeys": {
                    "default": [],
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "objectClassIds": {
                    "default": [],
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "projectId": {
                    "default": null,
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "revitVersion": {
                    "default": null,
                    "anyOf": [
                      {
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "includeArchived": {
                    "default": false,
                    "type": "boolean"
                  },
                  "format": {
                    "default": "manifest",
                    "type": "string",
                    "enum": [
                      "manifest",
                      "shared_parameter_file",
                      "both"
                    ]
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Deterministic Revit package manifest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "manifest": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "const": "1.0.0"
                            },
                            "generatedAt": {
                              "type": "string"
                            },
                            "packageHash": {
                              "type": "string"
                            },
                            "hashAlgorithm": {
                              "type": "string",
                              "const": "sha256"
                            },
                            "hashExcludes": {
                              "type": "array",
                              "prefixItems": [
                                {
                                  "type": "string",
                                  "const": "generatedAt"
                                },
                                {
                                  "type": "string",
                                  "const": "packageHash"
                                }
                              ]
                            },
                            "request": {
                              "type": "object",
                              "properties": {
                                "objectClassKeys": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "projectId": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "revitVersion": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "exclusiveMinimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "includeArchived": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "objectClassKeys",
                                "projectId",
                                "revitVersion",
                                "includeArchived"
                              ],
                              "additionalProperties": false
                            },
                            "entries": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "parameterKey": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string"
                                      },
                                      "handle": {
                                        "type": "string"
                                      },
                                      "canonicalName": {
                                        "type": "string"
                                      },
                                      "description": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "lifecycleStatus": {
                                        "type": "string",
                                        "enum": [
                                          "draft",
                                          "active",
                                          "approved",
                                          "archived"
                                        ]
                                      },
                                      "isApproved": {
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "handle",
                                      "canonicalName",
                                      "description",
                                      "lifecycleStatus"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "projectionId": {
                                    "type": "string"
                                  },
                                  "projectionStatus": {
                                    "type": "string",
                                    "enum": [
                                      "draft",
                                      "approved",
                                      "archived"
                                    ]
                                  },
                                  "definitionForm": {
                                    "type": "string",
                                    "enum": [
                                      "shared",
                                      "family_local",
                                      "project_local",
                                      "built_in",
                                      "legacy_unknown"
                                    ],
                                    "description": "Alias of definition.form for clients that pin top-level definitionForm"
                                  },
                                  "definition": {
                                    "type": "object",
                                    "properties": {
                                      "form": {
                                        "type": "string",
                                        "enum": [
                                          "shared",
                                          "family_local",
                                          "project_local",
                                          "built_in",
                                          "legacy_unknown"
                                        ]
                                      },
                                      "sharedGuid": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "builtInParameterName": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "effectiveName": {
                                        "type": "string"
                                      },
                                      "effectiveNameSource": {
                                        "type": "string",
                                        "enum": [
                                          "derived",
                                          "override"
                                        ]
                                      },
                                      "specForgeTypeId": {
                                        "type": "string"
                                      },
                                      "storageType": {
                                        "type": "string",
                                        "enum": [
                                          "Double",
                                          "Integer",
                                          "String",
                                          "ElementId",
                                          "None"
                                        ]
                                      },
                                      "visibility": {
                                        "type": "object",
                                        "properties": {
                                          "isVisible": {
                                            "type": "boolean"
                                          },
                                          "isUserModifiable": {
                                            "type": "boolean"
                                          },
                                          "hidesWhenNoValue": {
                                            "type": "boolean"
                                          }
                                        },
                                        "required": [
                                          "isVisible",
                                          "isUserModifiable",
                                          "hidesWhenNoValue"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "discipline": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "tooltipDescription": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "form",
                                      "sharedGuid",
                                      "builtInParameterName",
                                      "effectiveName",
                                      "effectiveNameSource",
                                      "specForgeTypeId",
                                      "storageType",
                                      "visibility",
                                      "discipline",
                                      "tooltipDescription"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "sharedParameterFileGroup": {
                                    "type": "object",
                                    "properties": {
                                      "parameterGroupId": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "name": {
                                        "type": "string"
                                      },
                                      "sortOrder": {
                                        "anyOf": [
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "parameterGroupId",
                                      "name",
                                      "sortOrder"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "revitUiGroup": {
                                    "type": "object",
                                    "properties": {
                                      "parameterGroupId": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "groupTypeId": {
                                        "type": "string",
                                        "description": "Revit UI property-palette groupTypeId in ForgeTypeId format `autodesk.parameter.group:…` (e.g. `autodesk.parameter.group:identityData-1.0.0`). When the canonical ParameterGroup has no valid Revit UI groupTypeId, the response uses the pinned fallback `autodesk.parameter.group:data-1.0.0` and sets usedFallback=true."
                                      },
                                      "usedFallback": {
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "parameterGroupId",
                                      "groupTypeId",
                                      "usedFallback"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Top-level derived Revit UI group for the projection entry. Nested copies may also appear under familyApplication/projectBinding."
                                  },
                                  "familyApplication": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "bindingKind": {
                                            "type": "string",
                                            "enum": [
                                              "instance",
                                              "type"
                                            ]
                                          },
                                          "revitUiGroup": {
                                            "type": "object",
                                            "properties": {
                                              "parameterGroupId": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              },
                                              "groupTypeId": {
                                                "type": "string",
                                                "description": "Revit UI property-palette groupTypeId in ForgeTypeId format `autodesk.parameter.group:…` (e.g. `autodesk.parameter.group:identityData-1.0.0`). When the canonical ParameterGroup has no valid Revit UI groupTypeId, the response uses the pinned fallback `autodesk.parameter.group:data-1.0.0` and sets usedFallback=true."
                                              },
                                              "usedFallback": {
                                                "type": "boolean"
                                              }
                                            },
                                            "required": [
                                              "parameterGroupId",
                                              "groupTypeId",
                                              "usedFallback"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "required": [
                                          "bindingKind",
                                          "revitUiGroup"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "projectBinding": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "bindingKind": {
                                            "type": "string",
                                            "enum": [
                                              "instance",
                                              "type"
                                            ]
                                          },
                                          "revitUiGroup": {
                                            "type": "object",
                                            "properties": {
                                              "parameterGroupId": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              },
                                              "groupTypeId": {
                                                "type": "string",
                                                "description": "Revit UI property-palette groupTypeId in ForgeTypeId format `autodesk.parameter.group:…` (e.g. `autodesk.parameter.group:identityData-1.0.0`). When the canonical ParameterGroup has no valid Revit UI groupTypeId, the response uses the pinned fallback `autodesk.parameter.group:data-1.0.0` and sets usedFallback=true."
                                              },
                                              "usedFallback": {
                                                "type": "boolean"
                                              }
                                            },
                                            "required": [
                                              "parameterGroupId",
                                              "groupTypeId",
                                              "usedFallback"
                                            ],
                                            "additionalProperties": false
                                          },
                                          "categoryScope": {
                                            "type": "object",
                                            "properties": {
                                              "categories": {
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "properties": {
                                                    "builtinName": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string"
                                                        },
                                                        {
                                                          "type": "null"
                                                        }
                                                      ]
                                                    },
                                                    "builtinCategoryInt": {
                                                      "anyOf": [
                                                        {
                                                          "type": "integer",
                                                          "minimum": -9007199254740991,
                                                          "maximum": 9007199254740991
                                                        },
                                                        {
                                                          "type": "null"
                                                        }
                                                      ]
                                                    },
                                                    "forgeTypeId": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string"
                                                        },
                                                        {
                                                          "type": "null"
                                                        }
                                                      ]
                                                    },
                                                    "displayName": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "required": [
                                                    "builtinName",
                                                    "builtinCategoryInt",
                                                    "forgeTypeId",
                                                    "displayName"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "contributingObjectClasses": {
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "properties": {
                                                    "objectClassId": {
                                                      "type": "string"
                                                    },
                                                    "objectClassKey": {
                                                      "type": "string"
                                                    },
                                                    "categories": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "properties": {
                                                          "builtinName": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string"
                                                              },
                                                              {
                                                                "type": "null"
                                                              }
                                                            ]
                                                          },
                                                          "builtinCategoryInt": {
                                                            "anyOf": [
                                                              {
                                                                "type": "integer",
                                                                "minimum": -9007199254740991,
                                                                "maximum": 9007199254740991
                                                              },
                                                              {
                                                                "type": "null"
                                                              }
                                                            ]
                                                          },
                                                          "forgeTypeId": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string"
                                                              },
                                                              {
                                                                "type": "null"
                                                              }
                                                            ]
                                                          },
                                                          "displayName": {
                                                            "type": "string"
                                                          }
                                                        },
                                                        "required": [
                                                          "builtinName",
                                                          "builtinCategoryInt",
                                                          "forgeTypeId",
                                                          "displayName"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    }
                                                  },
                                                  "required": [
                                                    "objectClassId",
                                                    "objectClassKey",
                                                    "categories"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "diagnostics": {
                                                "type": "array",
                                                "items": {
                                                  "type": "string"
                                                }
                                              }
                                            },
                                            "required": [
                                              "categories",
                                              "contributingObjectClasses",
                                              "diagnostics"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "required": [
                                          "bindingKind",
                                          "revitUiGroup",
                                          "categoryScope"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "applicableObjectClasses": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "objectClassId": {
                                          "type": "string"
                                        },
                                        "objectClassKey": {
                                          "type": "string"
                                        },
                                        "resolution": {
                                          "type": "string",
                                          "enum": [
                                            "direct",
                                            "inherited",
                                            "override"
                                          ]
                                        },
                                        "inheritanceSource": {
                                          "type": "object",
                                          "properties": {
                                            "objectClassId": {
                                              "type": "string"
                                            },
                                            "objectClassKey": {
                                              "type": "string"
                                            },
                                            "pathObjectClassIds": {
                                              "type": "array",
                                              "items": {
                                                "type": "string"
                                              }
                                            },
                                            "pathObjectClassKeys": {
                                              "type": "array",
                                              "items": {
                                                "type": "string"
                                              }
                                            },
                                            "distance": {
                                              "type": "integer",
                                              "minimum": 0,
                                              "maximum": 9007199254740991
                                            }
                                          },
                                          "required": [
                                            "objectClassId",
                                            "objectClassKey",
                                            "pathObjectClassIds",
                                            "pathObjectClassKeys",
                                            "distance"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "objectClassId",
                                        "objectClassKey",
                                        "resolution",
                                        "inheritanceSource"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "required": [
                                  "parameterKey",
                                  "projectionId",
                                  "projectionStatus",
                                  "definitionForm",
                                  "definition",
                                  "sharedParameterFileGroup",
                                  "revitUiGroup",
                                  "familyApplication",
                                  "projectBinding",
                                  "applicableObjectClasses"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "exclusions": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "parameterKeyId": {
                                    "type": "string"
                                  },
                                  "projectionId": {
                                    "type": "string"
                                  },
                                  "output": {
                                    "type": "string",
                                    "enum": [
                                      "shared_parameter_file",
                                      "projection_list"
                                    ]
                                  },
                                  "reason": {
                                    "type": "string",
                                    "enum": [
                                      "DEFINITION_NOT_SHARED",
                                      "SPEC_MISSING_SPF_DATATYPE",
                                      "OBJECT_CLASS_GRAPH_CYCLE",
                                      "OBJECT_CLASS_NOT_FOUND",
                                      "PARAMETER_PROJECTION_MISSING",
                                      "PARAMETER_PROJECTION_MULTIPLE",
                                      "PARAMETER_PROJECTION_INCOMPLETE",
                                      "PARAMETER_PROJECTION_INACTIVE",
                                      "PROJECT_LOCAL_PARAMETER_NOT_PACKAGEABLE",
                                      "PACKAGE_UNSUPPORTED_REVIT_VERSION",
                                      "PROJECT_PARAMETER_CATEGORY_SCOPE_EMPTY"
                                    ]
                                  },
                                  "definitionForm": {
                                    "type": "string",
                                    "enum": [
                                      "shared",
                                      "family_local",
                                      "project_local",
                                      "built_in",
                                      "legacy_unknown",
                                      "unknown"
                                    ]
                                  }
                                },
                                "required": [
                                  "parameterKeyId",
                                  "projectionId",
                                  "output",
                                  "reason",
                                  "definitionForm"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "generatedAt",
                            "packageHash",
                            "hashAlgorithm",
                            "hashExcludes",
                            "request",
                            "entries",
                            "exclusions"
                          ],
                          "additionalProperties": false
                        },
                        "sharedParameterFileText": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "manifest",
                        "sharedParameterFileText"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid or empty ObjectClass set",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "ObjectClass not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Package cannot be generated honestly",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Package resolution unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/revit/parameter-packages/shared-parameter-file": {
      "post": {
        "operationId": "generateRevitSharedParameterFile",
        "tags": [
          "BIM Ontology / Revit Parameter Package"
        ],
        "summary": "Generate a filtered Revit shared parameter file",
        "description": "Returns deterministic CRLF and tab-delimited text containing shared definitions only. Performs no writes. objectClassKeys / objectClassIds accept handles or domain ids; parameters include self + ancestors. *GROUP names are top-level ObjectClasses on each parameter's primary-parent lineage. Built-ins never emit PARAM rows.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "RevitParameterPackage",
          "useCase": "ResolveRevitParameterPackageUseCase",
          "domainEvents": [],
          "domainErrors": [
            "ObjectClassSetEmptyError",
            "EffectiveParameterObjectClassNotFoundError",
            "RevitParameterPackageError",
            "ObjectClassMissingRevitCategoryError",
            "ProjectParameterCategoryScopeEmptyError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "objectClassKeys": {
                    "default": [],
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "objectClassIds": {
                    "default": [],
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "projectId": {
                    "default": null,
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "revitVersion": {
                    "default": null,
                    "anyOf": [
                      {
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "includeArchived": {
                    "default": false,
                    "type": "boolean"
                  },
                  "format": {
                    "default": "manifest",
                    "type": "string",
                    "enum": [
                      "manifest",
                      "shared_parameter_file",
                      "both"
                    ]
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Revit shared parameter definition file",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid or empty ObjectClass set",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "ObjectClass not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Package cannot be generated honestly",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Package resolution unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bim-ontology/revit/common-project-parameters": {
      "get": {
        "operationId": "listCommonProjectParameters",
        "tags": [
          "BIM Ontology / Revit Parameter Package"
        ],
        "summary": "List common project parameters for Revit",
        "description": "Returns installable common shared project parameters for the Revit client. items[] include only definitionForm=shared projections whose ParameterKey is lifecycleStatus=approved with bim_parameter usage. Built-ins are omitted (already in Revit). revitCategories are derived from ObjectClass assignments, else the architectural_model_objects RevitCategorySet; sheet/view/annotation categories are denylisted. Empty category sets are omitted from items and listed in diagnostics.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "bim-ontology",
          "service": "api-v1",
          "aggregate": "RevitParameterProjection",
          "useCase": "ListCommonProjectParametersUseCase",
          "domainEvents": [],
          "domainErrors": [
            "EffectiveParameterObjectClassNotFoundError",
            "EffectiveParameterGraphCycleError",
            "ListCommonProjectParametersError"
          ]
        },
        "responses": {
          "200": {
            "description": "Common project parameters with non-empty category sets",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "parameterKeyId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "lifecycleStatus": {
                                "type": "string",
                                "enum": [
                                  "draft",
                                  "active",
                                  "approved",
                                  "archived"
                                ]
                              },
                              "isApproved": {
                                "type": "boolean",
                                "const": true
                              },
                              "definitionForm": {
                                "type": "string",
                                "const": "shared"
                              },
                              "sharedGuid": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "builtInParameterName": {
                                "type": "null"
                              },
                              "revitName": {
                                "type": "string",
                                "minLength": 1
                              },
                              "revitCategories": {
                                "minItems": 1,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "builtinName": {
                                      "type": "string",
                                      "minLength": 1
                                    },
                                    "builtinCategoryInt": {
                                      "type": "integer",
                                      "minimum": -9007199254740991,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "required": [
                                    "builtinName",
                                    "builtinCategoryInt"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "bindingKindPreference": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "enum": [
                                      "instance",
                                      "type"
                                    ]
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "revitUiGroup": {
                                "type": "object",
                                "properties": {
                                  "parameterGroupId": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "groupTypeId": {
                                    "type": "string",
                                    "description": "Revit UI property-palette groupTypeId in ForgeTypeId format `autodesk.parameter.group:…`. Fallback when unset/invalid: `autodesk.parameter.group:data-1.0.0` (usedFallback=true)."
                                  },
                                  "usedFallback": {
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "parameterGroupId",
                                  "groupTypeId",
                                  "usedFallback"
                                ],
                                "additionalProperties": false
                              },
                              "specForgeTypeId": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "storageType": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "enum": [
                                      "Double",
                                      "Integer",
                                      "String",
                                      "ElementId",
                                      "None"
                                    ]
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "parameterKeyId",
                              "lifecycleStatus",
                              "isApproved",
                              "definitionForm",
                              "sharedGuid",
                              "builtInParameterName",
                              "revitName",
                              "revitCategories",
                              "bindingKindPreference",
                              "revitUiGroup",
                              "specForgeTypeId",
                              "storageType"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "diagnostics": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "parameterKeyId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "projectionId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "definitionForm": {
                                "type": "string",
                                "enum": [
                                  "shared",
                                  "built_in"
                                ]
                              },
                              "sharedGuid": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "builtInParameterName": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "reason": {
                                "type": "string",
                                "enum": [
                                  "EMPTY_REVIT_CATEGORIES",
                                  "MISSING_REVIT_NAME",
                                  "NOT_INSTALLABLE_SHARED",
                                  "PARAMETER_KEY_NOT_APPROVED_BIM"
                                ]
                              },
                              "message": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "required": [
                              "parameterKeyId",
                              "projectionId",
                              "definitionForm",
                              "sharedGuid",
                              "builtInParameterName",
                              "reason",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "items",
                        "diagnostics"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Authenticated caller required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "ObjectClass not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Effective parameter graph cannot be resolved",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Common project parameters unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {}
                      },
                      "required": [
                        "code",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/product-from-url": {
      "post": {
        "operationId": "createProductModelFromUrl",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "Create a product model from a source URL",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "CreateProductModelFromUrlUseCase",
          "command": "CreateProductFromUrlCommand",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "uiRequestId": {
                    "type": "string"
                  },
                  "uiRecordId": {
                    "type": "string"
                  },
                  "url": {
                    "type": "string"
                  },
                  "normalizedUrl": {
                    "type": "string"
                  },
                  "companyId": {
                    "type": "string"
                  },
                  "objectCategoryId": {
                    "type": "string"
                  },
                  "uiScrapeAction": {
                    "type": "string"
                  },
                  "requestedByUserId": {
                    "type": "string"
                  },
                  "scriptLogId": {
                    "type": "string"
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Product creation workflow queued",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error"
          }
        }
      }
    },
    "/api/v1/product-marketplace/product-models": {
      "get": {
        "operationId": "listProductModels",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "(stub) List product models",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "Open question",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "responses": {
          "501": {
            "description": "Mounted legacy stub; not implemented"
          }
        }
      },
      "post": {
        "operationId": "createProductModel",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "(stub) Create a product model",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "Open question",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "string"
                  },
                  "requestedByUserId": {
                    "type": "string"
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "501": {
            "description": "Mounted legacy stub; not implemented"
          }
        }
      }
    },
    "/api/v1/product-marketplace/product-models/{id}": {
      "get": {
        "operationId": "getProductModelById",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "(stub) Get a product model by ID",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "ReadProductModelByIdUseCase",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "responses": {
          "501": {
            "description": "Mounted legacy stub; not implemented"
          }
        }
      },
      "put": {
        "operationId": "updateProductModel",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "(stub) Update a product model",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "Open question",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "string"
                  },
                  "requestedByUserId": {
                    "type": "string"
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "501": {
            "description": "Mounted legacy stub; not implemented"
          }
        }
      },
      "delete": {
        "operationId": "deleteProductModel",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "(stub) Delete a product model",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "Open question",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "responses": {
          "501": {
            "description": "Mounted legacy stub; not implemented"
          }
        }
      }
    },
    "/api/v1/product-marketplace/product-models/delete": {
      "post": {
        "operationId": "deleteSelectedProductModels",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "Delete selected product models",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "DeleteProductModelsUseCase",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "string"
                  },
                  "actionSource": {
                    "type": "string"
                  },
                  "triggerDomainId": {
                    "type": "string"
                  },
                  "triggerRecordId": {
                    "type": "string"
                  },
                  "selection": {
                    "type": "object",
                    "properties": {
                      "mode": {
                        "type": "string",
                        "enum": [
                          "flagged",
                          "explicit"
                        ]
                      },
                      "productIds": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "productModelIds": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "includeVariants": {
                        "type": "boolean"
                      }
                    }
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Product model action completed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/product-models/copy": {
      "post": {
        "operationId": "copySelectedProductModels",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "Copy selected product models",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "CopyProductModelsUseCase",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "string"
                  },
                  "actionSource": {
                    "type": "string"
                  },
                  "triggerDomainId": {
                    "type": "string"
                  },
                  "triggerRecordId": {
                    "type": "string"
                  },
                  "selection": {
                    "type": "object",
                    "properties": {
                      "mode": {
                        "type": "string",
                        "enum": [
                          "flagged",
                          "explicit"
                        ]
                      },
                      "productIds": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "productModelIds": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "includeVariants": {
                        "type": "boolean"
                      }
                    }
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Product model action completed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/product-models/refresh": {
      "post": {
        "operationId": "refreshProductModels",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "Queue refresh scrape jobs for selected product models",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "RefreshProductModelUseCase",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "string"
                  },
                  "actionSource": {
                    "type": "string"
                  },
                  "triggerDomainId": {
                    "type": "string"
                  },
                  "triggerRecordId": {
                    "type": "string"
                  },
                  "selection": {
                    "type": "object",
                    "properties": {
                      "mode": {
                        "type": "string",
                        "enum": [
                          "flagged",
                          "explicit"
                        ]
                      },
                      "productIds": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "productModelIds": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "includeVariants": {
                        "type": "boolean"
                      }
                    }
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Product model action completed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/product-models/reload": {
      "post": {
        "operationId": "reloadProductModels",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "Queue reload scrape jobs for selected product models",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "ReloadProductModelUseCase",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "string"
                  },
                  "actionSource": {
                    "type": "string"
                  },
                  "triggerDomainId": {
                    "type": "string"
                  },
                  "triggerRecordId": {
                    "type": "string"
                  },
                  "selection": {
                    "type": "object",
                    "properties": {
                      "mode": {
                        "type": "string",
                        "enum": [
                          "flagged",
                          "explicit"
                        ]
                      },
                      "productIds": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "productModelIds": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "includeVariants": {
                        "type": "boolean"
                      }
                    }
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Product model action completed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/product-models/migrate-dimensions": {
      "post": {
        "operationId": "migrateProductModelDimensions",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "Migrate product model dimensions",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "MigrateProductDimensionsUseCase",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "testMode": {
                    "type": "boolean"
                  },
                  "productIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "userId": {
                    "type": "string"
                  },
                  "requestedByUserId": {
                    "type": "string"
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Product model action completed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/product-models/from-url": {
      "post": {
        "operationId": "createProductModelFromUrlNested",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "Create a product model from a source URL",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "CreateProductModelFromUrlUseCase",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ],
          "command": "CreateProductFromUrlCommand"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "string"
                  },
                  "requestedByUserId": {
                    "type": "string"
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Product creation workflow queued",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/product-models/{id}/onboard": {
      "post": {
        "operationId": "onboardProductModel",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "Run onboarding workflow for a product model",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "OnboardProductModelUseCase",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "string"
                  },
                  "requestedByUserId": {
                    "type": "string"
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Product model onboarding completed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/product-models/{id}/publish-images": {
      "post": {
        "operationId": "publishProductModelImages",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "Publish product model images",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "PublishProductModelImagesUseCase",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "string"
                  },
                  "requestedByUserId": {
                    "type": "string"
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Product model image publishing completed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/products": {
      "get": {
        "operationId": "listProductsAlias",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "(stub) List product models",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "Open question",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "responses": {
          "501": {
            "description": "Mounted legacy stub; not implemented"
          }
        }
      },
      "post": {
        "operationId": "createProductAlias",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "(stub) Create a product model",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "Open question",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "string"
                  },
                  "requestedByUserId": {
                    "type": "string"
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "501": {
            "description": "Mounted legacy stub; not implemented"
          }
        }
      }
    },
    "/api/v1/product-marketplace/products/{id}": {
      "get": {
        "operationId": "getProductAliasById",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "(stub) Get a product model by ID",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "ReadProductModelByIdUseCase",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "responses": {
          "501": {
            "description": "Mounted legacy stub; not implemented"
          }
        }
      },
      "put": {
        "operationId": "updateProductAlias",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "(stub) Update a product model",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "Open question",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "string"
                  },
                  "requestedByUserId": {
                    "type": "string"
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "501": {
            "description": "Mounted legacy stub; not implemented"
          }
        }
      },
      "delete": {
        "operationId": "deleteProductAlias",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "(stub) Delete a product model",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "Open question",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "responses": {
          "501": {
            "description": "Mounted legacy stub; not implemented"
          }
        }
      }
    },
    "/api/v1/product-marketplace/products/delete": {
      "post": {
        "operationId": "deleteSelectedProductModelsAlias",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "Delete selected product models",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "DeleteProductModelsUseCase",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "string"
                  },
                  "actionSource": {
                    "type": "string"
                  },
                  "triggerDomainId": {
                    "type": "string"
                  },
                  "triggerRecordId": {
                    "type": "string"
                  },
                  "selection": {
                    "type": "object",
                    "properties": {
                      "mode": {
                        "type": "string",
                        "enum": [
                          "flagged",
                          "explicit"
                        ]
                      },
                      "productIds": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "productModelIds": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "includeVariants": {
                        "type": "boolean"
                      }
                    }
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Product model action completed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/products/copy": {
      "post": {
        "operationId": "copySelectedProductModelsAlias",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "Copy selected product models",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "CopyProductModelsUseCase",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "string"
                  },
                  "actionSource": {
                    "type": "string"
                  },
                  "triggerDomainId": {
                    "type": "string"
                  },
                  "triggerRecordId": {
                    "type": "string"
                  },
                  "selection": {
                    "type": "object",
                    "properties": {
                      "mode": {
                        "type": "string",
                        "enum": [
                          "flagged",
                          "explicit"
                        ]
                      },
                      "productIds": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "productModelIds": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "includeVariants": {
                        "type": "boolean"
                      }
                    }
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Product model action completed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/products/refresh": {
      "post": {
        "operationId": "refreshProductModelsAlias",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "Queue refresh scrape jobs for selected product models",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "RefreshProductModelUseCase",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "string"
                  },
                  "actionSource": {
                    "type": "string"
                  },
                  "triggerDomainId": {
                    "type": "string"
                  },
                  "triggerRecordId": {
                    "type": "string"
                  },
                  "selection": {
                    "type": "object",
                    "properties": {
                      "mode": {
                        "type": "string",
                        "enum": [
                          "flagged",
                          "explicit"
                        ]
                      },
                      "productIds": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "productModelIds": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "includeVariants": {
                        "type": "boolean"
                      }
                    }
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Product model action completed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/products/reload": {
      "post": {
        "operationId": "reloadProductModelsAlias",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "Queue reload scrape jobs for selected product models",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "ReloadProductModelUseCase",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "string"
                  },
                  "actionSource": {
                    "type": "string"
                  },
                  "triggerDomainId": {
                    "type": "string"
                  },
                  "triggerRecordId": {
                    "type": "string"
                  },
                  "selection": {
                    "type": "object",
                    "properties": {
                      "mode": {
                        "type": "string",
                        "enum": [
                          "flagged",
                          "explicit"
                        ]
                      },
                      "productIds": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "productModelIds": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "includeVariants": {
                        "type": "boolean"
                      }
                    }
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Product model action completed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/products/migrate-dimensions": {
      "post": {
        "operationId": "migrateProductModelDimensionsAlias",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "Migrate product model dimensions",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "MigrateProductDimensionsUseCase",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "testMode": {
                    "type": "boolean"
                  },
                  "productIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "userId": {
                    "type": "string"
                  },
                  "requestedByUserId": {
                    "type": "string"
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Product model action completed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/products/from-url": {
      "post": {
        "operationId": "createProductFromUrlAlias",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "Create a product model from a source URL",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "CreateProductModelFromUrlUseCase",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ],
          "command": "CreateProductFromUrlCommand"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "string"
                  },
                  "requestedByUserId": {
                    "type": "string"
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Product creation workflow queued",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/products/{id}/onboard": {
      "post": {
        "operationId": "onboardProductAlias",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "Run onboarding workflow for a product model",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "OnboardProductModelUseCase",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "string"
                  },
                  "requestedByUserId": {
                    "type": "string"
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Product model onboarding completed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/products/{id}/publish-images": {
      "post": {
        "operationId": "publishProductAliasImages",
        "tags": [
          "Product Marketplace / Product Models"
        ],
        "summary": "Publish product model images",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "PublishProductModelImagesUseCase",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "string"
                  },
                  "requestedByUserId": {
                    "type": "string"
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Product model image publishing completed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/product-scrape": {
      "post": {
        "operationId": "runProductScrape",
        "tags": [
          "Product Marketplace / Product Scraping"
        ],
        "summary": "Run product scrape requests for products or product families",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductModel",
          "useCase": "ProductScrapeRequestUseCases",
          "command": "RunProductScrapeCommand",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "triggerType": {
                    "type": "string",
                    "enum": [
                      "product",
                      "product_model"
                    ]
                  },
                  "requestedByUserId": {
                    "type": "string"
                  },
                  "productModel": {
                    "type": "object",
                    "properties": {
                      "productModelId": {
                        "type": "string",
                        "minLength": 1
                      },
                      "name": {
                        "type": "string"
                      },
                      "url": {
                        "type": "string"
                      },
                      "normalizedUrl": {
                        "type": "string"
                      },
                      "uiScrapeAction": {
                        "type": "string"
                      },
                      "companyId": {
                        "type": "string"
                      },
                      "objectCategoryId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "productModelId"
                    ],
                    "additionalProperties": {}
                  },
                  "products": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "productVariantId": {
                          "type": "string"
                        },
                        "productRecordId": {
                          "type": "string"
                        },
                        "productName": {
                          "type": "string"
                        },
                        "url": {
                          "type": "string"
                        },
                        "normalizedUrl": {
                          "type": "string"
                        },
                        "uiScrapeAction": {
                          "type": "string"
                        },
                        "companyId": {
                          "type": "string"
                        },
                        "objectCategoryId": {
                          "type": "string"
                        },
                        "productModelId": {
                          "type": "string"
                        },
                        "attemptCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        }
                      },
                      "additionalProperties": {}
                    }
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Product scrape request accepted or queued",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error"
          }
        }
      }
    },
    "/api/v1/product-marketplace/scrapers/{scraperId}/actions/run": {
      "post": {
        "operationId": "runBulkProductScraper",
        "tags": [
          "Product Marketplace / Bulk Scrapers"
        ],
        "summary": "Start a bulk product scraper run (async)",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "BulkScraperRun",
          "useCase": "StartBulkProductScrapeUseCase",
          "command": "StartBulkProductScrapeCommand",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "BulkScraperRequestFailedError"
          ]
        },
        "parameters": [
          {
            "name": "scraperId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "uiScraperRecordId": {
                    "type": "string"
                  },
                  "requestedByUserId": {
                    "type": "string"
                  },
                  "vendorId": {
                    "type": "string"
                  },
                  "objectCategoryId": {
                    "type": "string",
                    "minLength": 1
                  },
                  "productUrls": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "collectionUrls": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "maxProducts": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "persistenceMode": {
                    "type": "string",
                    "enum": [
                      "merge",
                      "no_purge",
                      "purge"
                    ]
                  },
                  "args": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "objectCategoryId"
                ],
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Bulk scrape accepted for background execution",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation error"
          }
        }
      }
    },
    "/api/v1/product-marketplace/product-variants/{id}/publish-images": {
      "post": {
        "operationId": "publishProductVariantImages",
        "tags": [
          "Product Marketplace / Product Variants",
          "Product Marketplace / Images"
        ],
        "summary": "Publish product variant images",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductVariant",
          "useCase": "PublishProductVariantImagesUseCase",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "string"
                  },
                  "requestedByUserId": {
                    "type": "string"
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Product variant image publishing completed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error"
          }
        }
      }
    },
    "/api/v1/product-marketplace/images/publish": {
      "post": {
        "operationId": "bulkPublishProductImages",
        "tags": [
          "Product Marketplace / Images"
        ],
        "summary": "Bulk publish product images by image IDs",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "aggregate": "ProductImage",
          "useCase": "BulkPublishProductImagesUseCase",
          "command": "Open question",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "imageIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "userId": {
                    "type": "string"
                  },
                  "requestedByUserId": {
                    "type": "string"
                  }
                },
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Bulk image publishing completed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation or workflow error"
          }
        }
      }
    },
    "/api/v1/product-marketplace/parameter-values/{id}": {
      "get": {
        "operationId": "getParameterValueById",
        "tags": [
          "Product Marketplace / Catalog Read"
        ],
        "summary": "Read a parameter value by ID",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ],
          "aggregate": "ParameterValue",
          "useCase": "ReadParameterValueByIdUseCase",
          "query": "ReadCatalogResourceCommand"
        },
        "responses": {
          "200": {
            "description": "Catalog resource returned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation error"
          },
          "404": {
            "description": "Catalog resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/parameter-value-groups/{id}": {
      "get": {
        "operationId": "getParameterValueGroupById",
        "tags": [
          "Product Marketplace / Catalog Read"
        ],
        "summary": "Read a parameter value group by ID",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ],
          "aggregate": "ParameterValueGroup",
          "useCase": "ReadParameterValueGroupByIdUseCase",
          "query": "ReadCatalogResourceCommand"
        },
        "responses": {
          "200": {
            "description": "Catalog resource returned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation error"
          },
          "404": {
            "description": "Catalog resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/price-groups/{id}": {
      "get": {
        "operationId": "getPriceGroupById",
        "tags": [
          "Product Marketplace / Catalog Read"
        ],
        "summary": "Read a price group by ID",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ],
          "aggregate": "PriceGroup",
          "useCase": "ReadPriceGroupByIdUseCase",
          "query": "ReadCatalogResourceCommand"
        },
        "responses": {
          "200": {
            "description": "Catalog resource returned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation error"
          },
          "404": {
            "description": "Catalog resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/inventory/{id}": {
      "get": {
        "operationId": "getInventoryById",
        "tags": [
          "Product Marketplace / Catalog Read"
        ],
        "summary": "Read inventory by ID",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ],
          "aggregate": "Inventory",
          "useCase": "ReadInventoryByIdUseCase",
          "query": "ReadCatalogResourceCommand"
        },
        "responses": {
          "200": {
            "description": "Catalog resource returned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation error"
          },
          "404": {
            "description": "Catalog resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/cad-assets/{id}": {
      "get": {
        "operationId": "getCadAssetById",
        "tags": [
          "Product Marketplace / Catalog Read"
        ],
        "summary": "Read a CAD asset by ID",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ],
          "aggregate": "CadAsset",
          "useCase": "ReadCadAssetByIdUseCase",
          "query": "ReadCatalogResourceCommand"
        },
        "responses": {
          "200": {
            "description": "Catalog resource returned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation error"
          },
          "404": {
            "description": "Catalog resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/materials/{id}": {
      "get": {
        "operationId": "getMaterialById",
        "tags": [
          "Product Marketplace / Catalog Read"
        ],
        "summary": "Read a material by ID",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ],
          "aggregate": "Material",
          "useCase": "ReadMaterialByIdUseCase",
          "query": "ReadCatalogResourceCommand"
        },
        "responses": {
          "200": {
            "description": "Catalog resource returned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation error"
          },
          "404": {
            "description": "Catalog resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/product-docs/{id}": {
      "get": {
        "operationId": "getProductDocById",
        "tags": [
          "Product Marketplace / Catalog Read"
        ],
        "summary": "Read a product document by ID",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ],
          "aggregate": "ProductDoc",
          "useCase": "ReadProductDocByIdUseCase",
          "query": "ReadCatalogResourceCommand"
        },
        "responses": {
          "200": {
            "description": "Catalog resource returned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation error"
          },
          "404": {
            "description": "Catalog resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-marketplace/cad-assets/generic-specifier": {
      "get": {
        "operationId": "getGenericCadSpecifier",
        "tags": [
          "Product Marketplace / Catalog Read"
        ],
        "summary": "(stub) Generate a generic CAD specifier",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "product-marketplace",
          "service": "api-v1",
          "domainEvents": [
            "Open question"
          ],
          "domainErrors": [
            "ApplicationError"
          ],
          "aggregate": "CadAsset",
          "useCase": "Open question",
          "query": "Open question"
        },
        "responses": {
          "400": {
            "description": "Exactly one productModelId or objectCategoryId is required"
          },
          "501": {
            "description": "Generic CAD specifier generation is not yet implemented in api-v1",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/construction/site-images/actions/bulk-upload": {
      "post": {
        "operationId": "queueBulkUploadSiteImages",
        "tags": [
          "Construction Management / Site Images"
        ],
        "summary": "Queue a bulk site-image upload",
        "description": "Accepts a bulk create of site visit photos and returns 202 immediately. Poll GET /api/v1/construction/operations/{operationId}. Progress is also written to the requesting ui_site_images_bulk_upload row and script_log.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "construction-management",
          "service": "api-v1",
          "aggregate": "SiteImage",
          "useCase": "QueueBulkUploadSiteImagesUseCase",
          "command": "QueueBulkUploadSiteImagesCommand",
          "domainEvents": [
            "SiteImageRecorded"
          ],
          "domainErrors": [
            "SiteImageProjectRequiredError",
            "SiteImageReportDateRequiredError",
            "SiteImageReportDateInvalidError",
            "SiteImageAttachmentRequiredError",
            "SiteImageAttachmentUrlInvalidError"
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "projectId": {
                    "type": "string",
                    "minLength": 1
                  },
                  "reportDate": {
                    "type": "string",
                    "minLength": 1
                  },
                  "images": {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "minLength": 1
                        },
                        "filename": {
                          "anyOf": [
                            {
                              "type": "string",
                              "minLength": 1
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "url"
                      ]
                    }
                  },
                  "requestedByUserId": {
                    "type": "string",
                    "minLength": 1
                  },
                  "requestRecordId": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "projectId",
                  "reportDate",
                  "images"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Bulk upload accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "const": true
                    },
                    "queued": {
                      "type": "boolean",
                      "const": true
                    },
                    "operationId": {
                      "type": "string"
                    },
                    "statusUrl": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "ok",
                    "queued",
                    "operationId",
                    "statusUrl",
                    "message"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Validation error or missing Idempotency-Key"
          },
          "403": {
            "description": "Caller is not allowed"
          },
          "404": {
            "description": "Construction project not found"
          }
        }
      }
    },
    "/api/v1/construction/operations/{operationId}": {
      "get": {
        "operationId": "getSiteImageBulkUploadOperation",
        "tags": [
          "Construction Management / Site Images"
        ],
        "summary": "Get bulk site-image upload operation status",
        "description": "Polls the status of a previously accepted bulk site-image upload. Status is stored on ui_site_images_bulk_upload.operation_id.",
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-domain": {
          "appVersion": "api-v1",
          "boundedContext": "construction-management",
          "service": "api-v1",
          "aggregate": "SiteImage",
          "useCase": "GetSiteImageBulkUploadOperationUseCase",
          "query": "GetSiteImageBulkUploadOperationQuery",
          "domainEvents": [],
          "domainErrors": [
            "SiteImageBulkUploadOperationNotFoundError"
          ]
        },
        "parameters": [
          {
            "in": "path",
            "name": "operationId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "operationId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "queued",
                        "running",
                        "success",
                        "error"
                      ]
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "operationId",
                    "status",
                    "message"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Caller is not allowed"
          },
          "404": {
            "description": "Operation not found"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "__schema0": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "parentId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "hasChildren": {
            "type": "boolean"
          },
          "depth": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "aliases": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "approved",
              "archived"
            ]
          },
          "revitCategory": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "builtinName": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "builtinCategoryInt": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "current",
                      "stale",
                      "needs_review",
                      "unresolved"
                    ]
                  },
                  "source": {
                    "type": "string",
                    "enum": [
                      "authored",
                      "inherited"
                    ]
                  },
                  "reviewReason": {
                    "type": "string"
                  }
                },
                "required": [
                  "builtinName",
                  "builtinCategoryInt",
                  "status"
                ],
                "additionalProperties": false,
                "description": "Singular 1:1 Revit category binding. When status !== current, builtinName and builtinCategoryInt are null."
              },
              {
                "type": "null"
              }
            ]
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/__schema0"
            }
          }
        },
        "required": [
          "id",
          "name",
          "parentId",
          "hasChildren",
          "status",
          "revitCategory"
        ],
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "apiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key",
        "description": "api-v1 API key for protected routes."
      }
    }
  }
}
