{
  "openapi": "3.1.0",
  "info": {
    "title": "DPP Shield API",
    "version": "2026-09",
    "contact": {
      "name": "DPP Shield support",
      "email": "contact@dppshield.com",
      "url": "https://dppshield.com/en/developers"
    },
    "license": {
      "name": "Proprietary: use governed by the DPP Shield terms of service",
      "url": "https://dppshield.com/en/legal/terms"
    },
    "description": "REST API for Digital Product Passports: products, passports, evidence, suppliers, data carriers and integrations. Every response carries the `x-api-version` header. Authenticate with an organization API key (Settings → API keys) sent as `x-api-key: dpk_…` or `Authorization: Bearer dpk_…`. A key's scopes are `<resource>:read` / `<resource>:write`, where the resource is the first path segment."
  },
  "servers": [
    {
      "url": "https://api.dppshield.com/api/v1"
    }
  ],
  "security": [
    {
      "apiKey": []
    },
    {
      "bearer": []
    }
  ],
  "components": {
    "schemas": {
      "ActionAssignment": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string"
          },
          "sourceKey": {
            "type": "string"
          },
          "ownerId": {
            "type": [
              "string",
              "null"
            ]
          },
          "dueDate": {
            "type": [
              "string",
              "null"
            ]
          },
          "priority": {
            "type": "string",
            "enum": [
              "high",
              "normal",
              "urgent"
            ]
          },
          "note": {
            "type": "string"
          },
          "revision": {
            "type": "number"
          },
          "updatedBy": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "organizationId",
          "sourceKey",
          "ownerId",
          "dueDate",
          "priority",
          "note",
          "revision",
          "updatedBy",
          "updatedAt"
        ]
      },
      "ActionItem": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "component",
              "evidence_review",
              "evidence_expiry",
              "supplier_response",
              "publication",
              "translation",
              "validation",
              "evidence_link",
              "claim_support",
              "claim_mismatch",
              "remediation",
              "lifecycle_report"
            ]
          },
          "title": {
            "type": "string"
          },
          "href": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "dueDate": {
            "type": [
              "string",
              "null"
            ]
          },
          "priority": {
            "type": "string",
            "enum": [
              "high",
              "normal",
              "urgent"
            ]
          },
          "ownerId": {
            "type": [
              "string",
              "null"
            ]
          },
          "note": {
            "type": "string"
          },
          "revision": {
            "type": "number"
          }
        },
        "required": [
          "key",
          "kind",
          "title",
          "href",
          "createdAt",
          "dueDate",
          "priority",
          "ownerId",
          "note",
          "revision"
        ]
      },
      "AssemblyNode": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "quantity": {
            "type": "number"
          },
          "massKg": {
            "type": [
              "number",
              "null"
            ]
          },
          "child": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string"
                  },
                  "publishedVersion": {
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "compliant": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "validated": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "status",
                  "publishedVersion",
                  "compliant",
                  "validated"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "externalReference": {
            "type": [
              "string",
              "null"
            ]
          },
          "children": {
            "type": "array",
            "items": {}
          }
        },
        "required": [
          "id",
          "name",
          "quantity",
          "massKg",
          "child",
          "externalReference",
          "children"
        ]
      },
      "AuditLog": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "actorId": {
            "type": [
              "string",
              "null"
            ]
          },
          "action": {
            "type": "string"
          },
          "entityType": {
            "type": "string"
          },
          "entityId": {
            "type": "string"
          },
          "before": {},
          "after": {},
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "chainSeq": {
            "type": [
              "number",
              "null"
            ]
          },
          "prevHash": {
            "type": [
              "string",
              "null"
            ]
          },
          "entryHash": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "organizationId",
          "actorId",
          "action",
          "entityType",
          "entityId",
          "before",
          "after",
          "createdAt",
          "chainSeq",
          "prevHash",
          "entryHash"
        ]
      },
      "BomProposalResult": {
        "type": "object",
        "properties": {
          "placed": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlacedBomLine"
            }
          },
          "unresolved": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UnresolvedBomLine"
            }
          },
          "ignored": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IgnoredBomField"
            }
          },
          "unplaced": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UnplacedBomLine"
            }
          },
          "duplicates": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "index": {
                  "type": "number"
                },
                "reason": {
                  "type": "string"
                }
              },
              "required": [
                "index",
                "reason"
              ]
            }
          },
          "totals": {
            "type": "object",
            "properties": {
              "parsedLines": {
                "type": "number"
              },
              "mappableLines": {
                "type": "number"
              },
              "proposedLines": {
                "type": "number"
              },
              "placedLines": {
                "type": "number"
              },
              "massKg": {
                "type": "number"
              },
              "energyKwh": {
                "type": "number"
              },
              "valueKgCo2e": {
                "type": "number"
              }
            },
            "required": [
              "parsedLines",
              "mappableLines",
              "proposedLines",
              "placedLines",
              "massKg",
              "energyKwh",
              "valueKgCo2e"
            ]
          },
          "lineCoveragePercent": {
            "type": [
              "number",
              "null"
            ]
          },
          "massCoveragePercent": {
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "placed",
          "unresolved",
          "ignored",
          "unplaced",
          "duplicates",
          "totals",
          "lineCoveragePercent",
          "massCoveragePercent"
        ]
      },
      "CandidateAssessment": {
        "type": "object",
        "properties": {
          "supplierId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "eligibility": {
            "type": "string",
            "enum": [
              "conditional",
              "eligible",
              "ineligible"
            ]
          },
          "blockers": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "conditions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "score": {
            "type": "number"
          },
          "reasons": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "improvements": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "whatDoesNotImprove": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "supplierId",
          "name",
          "country",
          "eligibility",
          "blockers",
          "conditions",
          "score",
          "reasons",
          "improvements",
          "whatDoesNotImprove"
        ]
      },
      "CandidateEntry": {
        "type": "object",
        "properties": {
          "cas": {
            "type": "string"
          },
          "ec": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "addedOn": {
            "type": "string"
          },
          "specificLimitPercent": {
            "type": "number"
          },
          "annexXiv": {
            "type": "boolean"
          },
          "group": {
            "type": "string"
          }
        },
        "required": [
          "cas",
          "name",
          "reason"
        ]
      },
      "CarbonBaseline": {
        "type": "object",
        "properties": {
          "footprintKgCo2e": {
            "type": "number"
          },
          "reductionTargetPercent": {
            "type": [
              "number",
              "null"
            ]
          },
          "note": {
            "type": [
              "string",
              "null"
            ]
          },
          "setAt": {
            "type": "string"
          },
          "setBy": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "footprintKgCo2e",
          "setAt"
        ]
      },
      "CarbonEstimate": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "dppId": {
            "type": "string"
          },
          "reference": {
            "type": "string"
          },
          "versionNumber": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "estimateVersion": {
            "type": "string"
          },
          "factorTableVersion": {
            "type": "string"
          },
          "dppVersion": {
            "type": "number"
          },
          "source": {
            "type": "string"
          },
          "documentId": {
            "type": [
              "string",
              "null"
            ]
          },
          "provider": {
            "type": "string"
          },
          "model": {
            "type": [
              "string",
              "null"
            ]
          },
          "degraded": {
            "type": "boolean"
          },
          "providerError": {
            "type": [
              "string",
              "null"
            ]
          },
          "latencyMs": {
            "type": [
              "number",
              "null"
            ]
          },
          "bomCharacters": {
            "type": "number"
          },
          "parsedLines": {
            "type": "number"
          },
          "mappableLines": {
            "type": "number"
          },
          "placedLines": {
            "type": "number"
          },
          "unresolvedCount": {
            "type": "number"
          },
          "unplacedCount": {
            "type": "number"
          },
          "ignoredCount": {
            "type": "number"
          },
          "totalKgCo2e": {
            "type": "string"
          },
          "a1KgCo2e": {
            "type": "string"
          },
          "a2KgCo2e": {
            "type": "string"
          },
          "a3KgCo2e": {
            "type": "string"
          },
          "massKg": {
            "type": "string"
          },
          "energyKwh": {
            "type": "string"
          },
          "lineCoveragePercent": {
            "type": [
              "string",
              "null"
            ]
          },
          "massCoveragePercent": {
            "type": [
              "string",
              "null"
            ]
          },
          "declaredKgCo2e": {
            "type": [
              "string",
              "null"
            ]
          },
          "declaredPath": {
            "type": [
              "string",
              "null"
            ]
          },
          "verdict": {
            "type": "string"
          },
          "signals": {},
          "payload": {},
          "note": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "revokedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "revokedBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "revokeReason": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "organizationId",
          "dppId",
          "reference",
          "versionNumber",
          "status",
          "estimateVersion",
          "factorTableVersion",
          "dppVersion",
          "source",
          "documentId",
          "provider",
          "model",
          "degraded",
          "providerError",
          "latencyMs",
          "bomCharacters",
          "parsedLines",
          "mappableLines",
          "placedLines",
          "unresolvedCount",
          "unplacedCount",
          "ignoredCount",
          "totalKgCo2e",
          "a1KgCo2e",
          "a2KgCo2e",
          "a3KgCo2e",
          "massKg",
          "energyKwh",
          "lineCoveragePercent",
          "massCoveragePercent",
          "declaredKgCo2e",
          "declaredPath",
          "verdict",
          "signals",
          "payload",
          "note",
          "createdBy",
          "createdAt",
          "revokedAt",
          "revokedBy",
          "revokeReason"
        ]
      },
      "CarbonEstimateInput": {
        "type": "object",
        "properties": {
          "bom": {
            "type": "string"
          },
          "documentId": {
            "type": "string"
          },
          "dryRun": {
            "type": "boolean"
          },
          "transport": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LcaTransportInput"
            }
          },
          "manufacturingElectricityKwh": {
            "type": "number"
          },
          "manufactureCountry": {
            "type": "string"
          },
          "note": {
            "type": "string"
          }
        }
      },
      "CarbonStatement": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number"
          },
          "unit": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "methodology": {
            "type": [
              "string",
              "null"
            ]
          },
          "boundary": {
            "type": [
              "string",
              "null"
            ]
          },
          "stagesExcluded": {
            "type": [
              "string",
              "null"
            ]
          },
          "functionalUnit": {
            "type": [
              "string",
              "null"
            ]
          },
          "referenceYear": {
            "type": [
              "number",
              "null"
            ]
          },
          "source": {
            "type": [
              "string",
              "null"
            ]
          },
          "reportUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "verification": {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "verified",
                  "self-declared",
                  "not-stated"
                ]
              },
              "verifier": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "verifiedAt": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "status",
              "verifier",
              "verifiedAt"
            ]
          }
        },
        "required": [
          "value",
          "unit",
          "path",
          "methodology",
          "boundary",
          "stagesExcluded",
          "functionalUnit",
          "referenceYear",
          "source",
          "reportUrl",
          "verification"
        ]
      },
      "Carrier": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "dppId": {
            "type": "string"
          },
          "payload": {
            "type": "string"
          }
        },
        "required": [
          "type",
          "id",
          "organizationId",
          "createdAt",
          "dppId",
          "payload"
        ]
      },
      "ChainNode": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "tier": {
            "type": "number"
          },
          "entity": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "enum": [
              "supplier",
              "delegated-supplier",
              "declared-upstream"
            ]
          },
          "identityWithheld": {
            "type": "boolean"
          },
          "supplierId": {
            "type": "string"
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "trustScore": {
            "type": [
              "number",
              "null"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "declared",
              "responded",
              "pending"
            ]
          },
          "declaredCarbonKgCo2e": {
            "type": [
              "number",
              "null"
            ]
          },
          "recycledContentPercent": {
            "type": [
              "number",
              "null"
            ]
          },
          "materials": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "substances": {},
          "children": {
            "type": "array",
            "items": {}
          }
        },
        "required": [
          "id",
          "tier",
          "entity",
          "role",
          "status",
          "children"
        ]
      },
      "ChannelAttribute": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "number",
              "boolean",
              "date",
              "url",
              "gtin",
              "text",
              "integer",
              "enum"
            ]
          },
          "paths": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "derived": {
            "type": "string",
            "enum": [
              "publishedAt",
              "channelCategory",
              "passportUrl",
              "digitalLinkUrl",
              "qrImageUrl",
              "complianceStatus",
              "complianceScore",
              "complianceGrade",
              "complianceFreshness",
              "carbonFootprintKgCo2e",
              "recycledContentPercent",
              "repairabilityClass",
              "repairabilityScore",
              "sparePartsYears",
              "softwareSupportYears",
              "svhcPresent",
              "scipNumber",
              "passportVersion",
              "generatedAt"
            ]
          },
          "required": {
            "type": "boolean"
          },
          "requiredWhen": {
            "type": "object",
            "properties": {
              "categories": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "attribute": {
                "type": "string"
              },
              "equals": {}
            }
          },
          "enumValues": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "maxLength": {
            "type": "number"
          },
          "min": {
            "type": "number"
          },
          "max": {
            "type": "number"
          },
          "unit": {
            "type": "string"
          },
          "note": {
            "type": "string"
          }
        },
        "required": [
          "key",
          "label",
          "type"
        ]
      },
      "ChannelEndpoint": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "channel": {
            "type": "string"
          },
          "webhookId": {
            "type": [
              "string",
              "null"
            ]
          },
          "mode": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "externalAccount": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "lastSyncAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "createdAt",
          "createdBy",
          "updatedAt",
          "channel",
          "webhookId",
          "mode",
          "enabled",
          "externalAccount",
          "notes",
          "lastSyncAt"
        ]
      },
      "ChannelFeed": {
        "type": "object",
        "properties": {
          "channel": {
            "type": "string"
          },
          "channelLabel": {
            "type": "string"
          },
          "profileVersion": {
            "type": "string"
          },
          "generatedAt": {
            "type": "string"
          },
          "includeOptional": {
            "type": "boolean"
          },
          "columns": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "number",
                    "boolean",
                    "date",
                    "url",
                    "gtin",
                    "text",
                    "integer",
                    "enum"
                  ]
                },
                "unit": {
                  "type": "string"
                },
                "alwaysRequired": {
                  "type": "boolean"
                }
              },
              "required": [
                "key",
                "label",
                "type",
                "alwaysRequired"
              ]
            }
          },
          "products": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "dppId": {
                  "type": "string"
                },
                "sku": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "ready": {
                  "type": "boolean"
                },
                "values": {
                  "type": "object",
                  "additionalProperties": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "sources": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string",
                    "enum": [
                      "declared",
                      "derived",
                      "missing",
                      "invalid"
                    ]
                  }
                }
              },
              "required": [
                "dppId",
                "sku",
                "name",
                "ready",
                "values",
                "sources"
              ]
            }
          },
          "skipped": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "dppId": {
                  "type": "string"
                },
                "sku": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "reason": {
                  "type": "string"
                }
              },
              "required": [
                "dppId",
                "sku",
                "reason"
              ]
            }
          },
          "counts": {
            "type": "object",
            "properties": {
              "products": {
                "type": "number"
              },
              "ready": {
                "type": "number"
              },
              "notReady": {
                "type": "number"
              },
              "skipped": {
                "type": "number"
              },
              "rows": {
                "type": "number"
              },
              "attributesFilled": {
                "type": "number"
              },
              "attributesMissing": {
                "type": "number"
              }
            },
            "required": [
              "products",
              "ready",
              "notReady",
              "skipped",
              "rows",
              "attributesFilled",
              "attributesMissing"
            ]
          },
          "caveat": {
            "type": "string"
          }
        },
        "required": [
          "channel",
          "channelLabel",
          "profileVersion",
          "generatedAt",
          "includeOptional",
          "columns",
          "products",
          "skipped",
          "counts",
          "caveat"
        ]
      },
      "ChannelRow": {
        "type": "object",
        "properties": {
          "dppId": {
            "type": "string"
          },
          "sku": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "category": {
            "type": "string"
          },
          "gtin": {
            "type": [
              "string",
              "null"
            ]
          },
          "version": {
            "type": "number"
          },
          "published": {
            "type": "boolean"
          },
          "publishedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "ready": {
            "type": "boolean"
          },
          "blocking": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "counts": {
            "type": "object",
            "properties": {
              "filled": {
                "type": "number"
              },
              "missing": {
                "type": "number"
              },
              "invalid": {
                "type": "number"
              },
              "required": {
                "type": "number"
              },
              "requiredMissing": {
                "type": "number"
              },
              "optionalMissing": {
                "type": "number"
              }
            },
            "required": [
              "filled",
              "missing",
              "invalid",
              "required",
              "requiredMissing",
              "optionalMissing"
            ]
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResolvedAttribute"
            }
          }
        },
        "required": [
          "dppId",
          "sku",
          "name",
          "category",
          "gtin",
          "version",
          "published",
          "publishedAt",
          "ready",
          "blocking",
          "counts",
          "attributes"
        ]
      },
      "ChannelSubmission": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "reference": {
            "type": "string"
          },
          "versionNumber": {
            "type": "number"
          },
          "channel": {
            "type": "string"
          },
          "profileVersion": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "format": {
            "type": "string"
          },
          "includeOptional": {
            "type": "boolean"
          },
          "products": {
            "type": "number"
          },
          "readyProducts": {
            "type": "number"
          },
          "skippedProducts": {
            "type": "number"
          },
          "attributesFilled": {
            "type": "number"
          },
          "attributesMissing": {
            "type": "number"
          },
          "requiredMissing": {
            "type": "number"
          },
          "payloadHash": {
            "type": "string"
          },
          "payload": {},
          "rows": {},
          "endpointId": {
            "type": [
              "string",
              "null"
            ]
          },
          "webhookId": {
            "type": [
              "string",
              "null"
            ]
          },
          "dispatched": {
            "type": "boolean"
          },
          "externalId": {
            "type": [
              "string",
              "null"
            ]
          },
          "acknowledgedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "acknowledgedBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "note": {
            "type": [
              "string",
              "null"
            ]
          },
          "cancelledAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "cancelledReason": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "reference",
          "versionNumber",
          "channel",
          "profileVersion",
          "status",
          "format",
          "includeOptional",
          "products",
          "readyProducts",
          "skippedProducts",
          "attributesFilled",
          "attributesMissing",
          "requiredMissing",
          "payloadHash",
          "payload",
          "rows",
          "endpointId",
          "webhookId",
          "dispatched",
          "externalId",
          "acknowledgedAt",
          "acknowledgedBy",
          "note",
          "cancelledAt",
          "cancelledReason",
          "createdBy",
          "createdAt"
        ]
      },
      "ChemicalObligation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "regulation": {
            "type": "string"
          },
          "requirement": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "satisfied",
              "outstanding",
              "not-applicable"
            ]
          },
          "note": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "regulation",
          "requirement",
          "status",
          "note"
        ]
      },
      "Claim": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "note": {
            "type": [
              "string",
              "null"
            ]
          },
          "revision": {
            "type": "number"
          },
          "subjectKind": {
            "type": "string"
          },
          "subject": {
            "type": "string"
          },
          "attribute": {
            "type": "string"
          },
          "value": {},
          "unit": {
            "type": [
              "string",
              "null"
            ]
          },
          "supplierId": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedBy": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "organizationId",
          "createdAt",
          "status",
          "createdBy",
          "updatedAt",
          "note",
          "revision",
          "subjectKind",
          "subject",
          "attribute",
          "value",
          "unit",
          "supplierId",
          "updatedBy"
        ]
      },
      "Claim2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "subjectKind": {
            "type": "string"
          },
          "subject": {
            "type": "string"
          },
          "attribute": {
            "type": "string"
          },
          "value": {},
          "unit": {
            "type": [
              "string",
              "null"
            ]
          },
          "supplierId": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": "string"
          },
          "note": {
            "type": [
              "string",
              "null"
            ]
          },
          "revision": {
            "type": "number"
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "subjectKind",
          "subject",
          "attribute",
          "value",
          "unit",
          "supplierId",
          "status",
          "note",
          "revision",
          "createdBy",
          "updatedBy",
          "createdAt",
          "updatedAt"
        ]
      },
      "ClaimApplication": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "dppId": {
            "type": "string"
          },
          "claimId": {
            "type": "string"
          },
          "fieldPath": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "organizationId",
          "createdAt",
          "createdBy",
          "dppId",
          "claimId",
          "fieldPath"
        ]
      },
      "ClaimEvidence": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "claimId": {
            "type": "string"
          },
          "documentId": {
            "type": "string"
          },
          "documentSha256": {
            "type": "string"
          },
          "documentTitle": {
            "type": "string"
          },
          "page": {
            "type": [
              "number",
              "null"
            ]
          },
          "quote": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "organizationId",
          "createdAt",
          "createdBy",
          "claimId",
          "documentId",
          "documentSha256",
          "documentTitle",
          "page",
          "quote"
        ]
      },
      "ClassifiedSubstance": {
        "type": "object",
        "properties": {
          "cas": {
            "type": "string"
          },
          "ec": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "iupacName": {
            "type": "string"
          },
          "statements": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sclPercent": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "string"
                },
                "percent": {
                  "type": "number"
                }
              },
              "required": [
                "code",
                "percent"
              ]
            }
          },
          "transport": {
            "type": "object",
            "properties": {
              "unNumber": {
                "type": "string"
              },
              "properShippingName": {
                "type": "string"
              },
              "hazardClass": {
                "type": "string"
              },
              "packingGroup": {
                "type": "string",
                "enum": [
                  "I",
                  "II",
                  "III"
                ]
              },
              "label": {
                "type": "string"
              },
              "tunnelCode": {
                "type": "string"
              },
              "note": {
                "type": "string"
              }
            },
            "required": [
              "unNumber",
              "properShippingName",
              "hazardClass",
              "packingGroup",
              "label"
            ]
          },
          "ewcCodes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                }
              },
              "required": [
                "code",
                "description"
              ]
            }
          }
        },
        "required": [
          "cas",
          "name",
          "statements"
        ]
      },
      "ConnectInput": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string"
          },
          "storeUrl": {
            "type": "string"
          },
          "accessToken": {
            "type": "string"
          },
          "clientId": {
            "type": "string"
          },
          "clientSecret": {
            "type": "string"
          },
          "consumerKey": {
            "type": "string"
          },
          "consumerSecret": {
            "type": "string"
          }
        }
      },
      "ConstructionGap": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "severity": {
            "type": "string",
            "enum": [
              "error",
              "info",
              "warning"
            ]
          },
          "requirement": {
            "type": "string"
          },
          "clause": {
            "type": "string"
          },
          "detail": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "severity",
          "requirement",
          "clause",
          "detail"
        ]
      },
      "ConstructionVerification": {
        "type": "object",
        "properties": {
          "programmeOperator": {
            "type": [
              "string",
              "null"
            ]
          },
          "registration": {
            "type": [
              "string",
              "null"
            ]
          },
          "validUntil": {
            "type": [
              "string",
              "null"
            ]
          },
          "thirdPartyVerified": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "verifier": {
            "type": [
              "string",
              "null"
            ]
          },
          "pcr": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "programmeOperator",
          "registration",
          "validUntil",
          "thirdPartyVerified",
          "verifier",
          "pcr"
        ]
      },
      "CredentialCheck": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "ok": {
            "type": "boolean"
          },
          "detail": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "ok"
        ]
      },
      "CredentialCheckResult": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "ok": {
            "type": "boolean"
          },
          "detail": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "ok",
          "detail"
        ]
      },
      "CredentialVerification": {
        "type": "object",
        "properties": {
          "valid": {
            "type": "boolean"
          },
          "format": {
            "type": "string",
            "enum": [
              "unknown",
              "vc-jwt",
              "data-integrity"
            ]
          },
          "issuer": {
            "type": [
              "string",
              "null"
            ]
          },
          "issuerName": {
            "type": [
              "string",
              "null"
            ]
          },
          "issuerVerified": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "scheme": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  },
                  "registryName": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "scheme",
                  "value",
                  "registryName"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "types": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "subject": {},
          "validFrom": {
            "type": [
              "string",
              "null"
            ]
          },
          "validUntil": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "unknown",
              "revoked",
              "suspended",
              "not-listed"
            ]
          },
          "bindsDocument": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "checks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CredentialCheckResult"
            }
          },
          "verifiedAt": {
            "type": "string"
          }
        },
        "required": [
          "valid",
          "format",
          "issuer",
          "issuerName",
          "issuerVerified",
          "types",
          "subject",
          "validFrom",
          "validUntil",
          "status",
          "bindsDocument",
          "checks",
          "verifiedAt"
        ]
      },
      "CriticalMaterial": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "strategic": {
            "type": "boolean"
          },
          "critical": {
            "type": "boolean"
          },
          "supplyRisk": {
            "type": "string"
          },
          "typicalUse": {
            "type": "string"
          }
        },
        "required": [
          "key",
          "name",
          "strategic",
          "critical",
          "supplyRisk",
          "typicalUse"
        ]
      },
      "CrosscheckSummary": {
        "type": "object",
        "properties": {
          "paths": {
            "type": "number"
          },
          "facts": {
            "type": "number"
          },
          "conflicts": {
            "type": "number"
          },
          "gaps": {
            "type": "number"
          },
          "agreeing": {
            "type": "number"
          },
          "bySeverity": {
            "type": "object",
            "properties": {
              "critical": {
                "type": "number"
              },
              "major": {
                "type": "number"
              },
              "minor": {
                "type": "number"
              }
            },
            "required": [
              "critical",
              "major",
              "minor"
            ]
          },
          "verdict": {
            "type": "string",
            "enum": [
              "consistent",
              "review",
              "conflicting",
              "unassessed"
            ]
          }
        },
        "required": [
          "paths",
          "facts",
          "conflicts",
          "gaps",
          "agreeing",
          "bySeverity",
          "verdict"
        ]
      },
      "CsvImportRequest": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductImportRow"
            }
          },
          "defaults": {
            "$ref": "#/components/schemas/ImportDefaults"
          },
          "onDuplicate": {
            "type": "string",
            "enum": [
              "update",
              "skip"
            ]
          },
          "dryRun": {
            "type": "boolean"
          }
        },
        "required": [
          "rows"
        ]
      },
      "CustodyAccount": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "unit": {
            "type": "string"
          },
          "material": {
            "type": "string"
          },
          "model": {
            "type": "string"
          },
          "claim": {
            "type": "string"
          },
          "scheme": {
            "type": [
              "string",
              "null"
            ]
          },
          "certificateDocumentId": {
            "type": [
              "string",
              "null"
            ]
          },
          "site": {
            "type": [
              "string",
              "null"
            ]
          },
          "creditValidityDays": {
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "organizationId",
          "name",
          "createdAt",
          "status",
          "createdBy",
          "updatedAt",
          "unit",
          "material",
          "model",
          "claim",
          "scheme",
          "certificateDocumentId",
          "site",
          "creditValidityDays"
        ]
      },
      "CustodyAccount2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "material": {
            "type": "string"
          },
          "model": {
            "type": "string"
          },
          "claim": {
            "type": "string"
          },
          "scheme": {
            "type": [
              "string",
              "null"
            ]
          },
          "certificateDocumentId": {
            "type": [
              "string",
              "null"
            ]
          },
          "site": {
            "type": [
              "string",
              "null"
            ]
          },
          "unit": {
            "type": "string"
          },
          "creditValidityDays": {
            "type": [
              "number",
              "null"
            ]
          },
          "status": {
            "type": "string"
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "name",
          "material",
          "model",
          "claim",
          "scheme",
          "certificateDocumentId",
          "site",
          "unit",
          "creditValidityDays",
          "status",
          "createdBy",
          "createdAt",
          "updatedAt"
        ]
      },
      "CustodyEntry": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "kind": {
            "type": "string"
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "dppId": {
            "type": [
              "string",
              "null"
            ]
          },
          "reference": {
            "type": [
              "string",
              "null"
            ]
          },
          "note": {
            "type": [
              "string",
              "null"
            ]
          },
          "supplierId": {
            "type": [
              "string",
              "null"
            ]
          },
          "documentId": {
            "type": [
              "string",
              "null"
            ]
          },
          "batch": {
            "type": [
              "string",
              "null"
            ]
          },
          "quantity": {
            "type": "string"
          },
          "accountId": {
            "type": "string"
          },
          "occurredOn": {
            "type": "string"
          },
          "credits": {
            "type": "string"
          },
          "certifiedShare": {
            "type": [
              "string",
              "null"
            ]
          },
          "conversionFactor": {
            "type": [
              "string",
              "null"
            ]
          },
          "expiresOn": {
            "type": [
              "string",
              "null"
            ]
          },
          "inputEntryId": {
            "type": [
              "string",
              "null"
            ]
          },
          "reversalOf": {
            "type": [
              "string",
              "null"
            ]
          },
          "reversedBy": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "organizationId",
          "createdAt",
          "kind",
          "createdBy",
          "dppId",
          "reference",
          "note",
          "supplierId",
          "documentId",
          "batch",
          "quantity",
          "accountId",
          "occurredOn",
          "credits",
          "certifiedShare",
          "conversionFactor",
          "expiresOn",
          "inputEntryId",
          "reversalOf",
          "reversedBy"
        ]
      },
      "CustodyEntry2": {
        "type": "object",
        "properties": {
          "quantity": {
            "type": "number"
          },
          "credits": {
            "type": "number"
          },
          "certifiedShare": {
            "type": [
              "number",
              "null"
            ]
          },
          "conversionFactor": {
            "type": [
              "number",
              "null"
            ]
          },
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "kind": {
            "type": "string"
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "dppId": {
            "type": [
              "string",
              "null"
            ]
          },
          "reference": {
            "type": [
              "string",
              "null"
            ]
          },
          "note": {
            "type": [
              "string",
              "null"
            ]
          },
          "supplierId": {
            "type": [
              "string",
              "null"
            ]
          },
          "documentId": {
            "type": [
              "string",
              "null"
            ]
          },
          "batch": {
            "type": [
              "string",
              "null"
            ]
          },
          "accountId": {
            "type": "string"
          },
          "occurredOn": {
            "type": "string"
          },
          "expiresOn": {
            "type": [
              "string",
              "null"
            ]
          },
          "inputEntryId": {
            "type": [
              "string",
              "null"
            ]
          },
          "reversalOf": {
            "type": [
              "string",
              "null"
            ]
          },
          "reversedBy": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "quantity",
          "credits",
          "certifiedShare",
          "conversionFactor",
          "id",
          "organizationId",
          "createdAt",
          "kind",
          "createdBy",
          "dppId",
          "reference",
          "note",
          "supplierId",
          "documentId",
          "batch",
          "accountId",
          "occurredOn",
          "expiresOn",
          "inputEntryId",
          "reversalOf",
          "reversedBy"
        ]
      },
      "DataMappingRun": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "mappingId": {
            "type": "string"
          },
          "mappingRevision": {
            "type": "number"
          },
          "trigger": {
            "type": "string"
          },
          "dryRun": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "summary": {},
          "outcomes": {},
          "error": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "mappingId",
          "mappingRevision",
          "trigger",
          "dryRun",
          "status",
          "summary",
          "outcomes",
          "error",
          "createdBy",
          "createdAt"
        ]
      },
      "DeclaredComparison": {
        "type": "object",
        "properties": {
          "declaredKgCo2e": {
            "type": [
              "number",
              "null"
            ]
          },
          "declaredPath": {
            "type": [
              "string",
              "null"
            ]
          },
          "estimatePercentOfDeclared": {
            "type": [
              "number",
              "null"
            ]
          },
          "verdict": {
            "type": "string",
            "enum": [
              "plausible",
              "estimate-higher",
              "estimate-lower",
              "no-declaration"
            ]
          },
          "note": {
            "type": "string"
          }
        },
        "required": [
          "declaredKgCo2e",
          "declaredPath",
          "estimatePercentOfDeclared",
          "verdict",
          "note"
        ]
      },
      "DerivedFact": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "enum": [
              "svhc.present",
              "chemicals.hazardous",
              "recycled_content.claimed",
              "repairability.claimed"
            ]
          },
          "derived": {
            "type": "boolean"
          },
          "declared": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "effective": {
            "type": "boolean"
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "path",
          "derived",
          "declared",
          "effective",
          "reason"
        ]
      },
      "DigestSettingsInput": {
        "type": "object",
        "properties": {
          "frequency": {
            "type": "string",
            "enum": [
              "off",
              "daily",
              "weekly"
            ]
          },
          "recipients": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "expiryDays": {
            "type": "number"
          },
          "includeSuppliers": {
            "type": "boolean"
          },
          "includeLeases": {
            "type": "boolean"
          }
        }
      },
      "DisplayColumn": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "unit": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "key",
          "label",
          "unit"
        ]
      },
      "DisplayField": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "help": {
            "type": "string"
          },
          "value": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "text"
                    ]
                  },
                  "text": {
                    "type": "string"
                  }
                },
                "required": [
                  "kind",
                  "text"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "number"
                    ]
                  },
                  "number": {
                    "type": "number"
                  },
                  "unit": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "kind",
                  "number",
                  "unit"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "boolean"
                    ]
                  },
                  "value": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "kind",
                  "value"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "date"
                    ]
                  },
                  "text": {
                    "type": "string"
                  }
                },
                "required": [
                  "kind",
                  "text"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "url"
                    ]
                  },
                  "text": {
                    "type": "string"
                  }
                },
                "required": [
                  "kind",
                  "text"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "country"
                    ]
                  },
                  "code": {
                    "type": "string"
                  }
                },
                "required": [
                  "kind",
                  "code"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "list"
                    ]
                  },
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "kind",
                  "items"
                ]
              }
            ]
          }
        },
        "required": [
          "key",
          "path",
          "label",
          "value"
        ]
      },
      "DisplayGroup": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DisplayField"
            }
          },
          "tables": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DisplayTable"
            }
          },
          "groups": {
            "type": "array",
            "items": {}
          }
        },
        "required": [
          "key",
          "path",
          "label",
          "fields",
          "tables",
          "groups"
        ]
      },
      "DisplayTable": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "columns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DisplayColumn"
            }
          },
          "rows": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "enum": [
                          "text"
                        ]
                      },
                      "text": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "kind",
                      "text"
                    ]
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "enum": [
                          "number"
                        ]
                      },
                      "number": {
                        "type": "number"
                      },
                      "unit": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "kind",
                      "number",
                      "unit"
                    ]
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "enum": [
                          "boolean"
                        ]
                      },
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "kind",
                      "value"
                    ]
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "enum": [
                          "date"
                        ]
                      },
                      "text": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "kind",
                      "text"
                    ]
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "enum": [
                          "url"
                        ]
                      },
                      "text": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "kind",
                      "text"
                    ]
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "enum": [
                          "country"
                        ]
                      },
                      "code": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "kind",
                      "code"
                    ]
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "enum": [
                          "list"
                        ]
                      },
                      "items": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "required": [
                      "kind",
                      "items"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            }
          }
        },
        "required": [
          "key",
          "path",
          "label",
          "columns",
          "rows"
        ]
      },
      "Document": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "dppId": {
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "storageKey": {
            "type": "string"
          },
          "sha256": {
            "type": [
              "string",
              "null"
            ]
          },
          "accessLevel": {
            "type": "string"
          },
          "supersedesId": {
            "type": [
              "string",
              "null"
            ]
          },
          "extracted": {},
          "textContent": {
            "type": [
              "string",
              "null"
            ]
          },
          "textTruncated": {
            "type": "boolean"
          },
          "issuedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "expiresAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "expiryNotifiedFor": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "reviewStatus": {
            "type": "string"
          },
          "reviewRevision": {
            "type": "number"
          },
          "reviewedBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "reviewedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "reviewReason": {
            "type": [
              "string",
              "null"
            ]
          },
          "issuerName": {
            "type": [
              "string",
              "null"
            ]
          },
          "issuerIdentifier": {
            "type": [
              "string",
              "null"
            ]
          },
          "credential": {},
          "credentialVerifiedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "dppId",
          "type",
          "title",
          "storageKey",
          "sha256",
          "accessLevel",
          "supersedesId",
          "extracted",
          "textContent",
          "textTruncated",
          "issuedAt",
          "expiresAt",
          "expiryNotifiedFor",
          "reviewStatus",
          "reviewRevision",
          "reviewedBy",
          "reviewedAt",
          "reviewReason",
          "issuerName",
          "issuerIdentifier",
          "credential",
          "credentialVerifiedAt",
          "createdAt"
        ]
      },
      "DopCharacteristic": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "unit": {
            "type": [
              "string",
              "null"
            ]
          },
          "standard": {
            "type": [
              "string",
              "null"
            ]
          },
          "class": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "value",
          "unit",
          "standard",
          "class"
        ]
      },
      "DopReadiness": {
        "type": "object",
        "properties": {
          "manufacturer": {
            "type": [
              "string",
              "null"
            ]
          },
          "number": {
            "type": [
              "string",
              "null"
            ]
          },
          "harmonisedStandard": {
            "type": [
              "string",
              "null"
            ]
          },
          "avcp": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "label": {
                    "type": "string"
                  },
                  "notifiedBodyRequired": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "key",
                  "label",
                  "notifiedBodyRequired"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "notifiedBody": {
            "type": [
              "string",
              "null"
            ]
          },
          "ceMarkingDate": {
            "type": [
              "string",
              "null"
            ]
          },
          "intendedUse": {
            "type": [
              "string",
              "null"
            ]
          },
          "plant": {
            "type": [
              "string",
              "null"
            ]
          },
          "characteristics": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DopCharacteristic"
            }
          },
          "dangerousSubstances": {
            "type": "object",
            "properties": {
              "declared": {
                "type": "boolean"
              },
              "substances": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "required": [
              "declared",
              "substances"
            ]
          },
          "serviceLifeYears": {
            "type": [
              "number",
              "null"
            ]
          },
          "maintenanceIntervalMonths": {
            "type": [
              "number",
              "null"
            ]
          },
          "deconstructionReusePercent": {
            "type": [
              "number",
              "null"
            ]
          },
          "recycledContentPercent": {
            "type": [
              "number",
              "null"
            ]
          },
          "bioBasedContentPercent": {
            "type": [
              "number",
              "null"
            ]
          },
          "fireClass": {
            "type": [
              "string",
              "null"
            ]
          },
          "ready": {
            "type": "boolean"
          },
          "blocking": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "gaps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConstructionGap"
            }
          },
          "caveat": {
            "type": "string"
          }
        },
        "required": [
          "manufacturer",
          "number",
          "harmonisedStandard",
          "avcp",
          "notifiedBody",
          "ceMarkingDate",
          "intendedUse",
          "plant",
          "characteristics",
          "dangerousSubstances",
          "serviceLifeYears",
          "maintenanceIntervalMonths",
          "deconstructionReusePercent",
          "recycledContentPercent",
          "bioBasedContentPercent",
          "fireClass",
          "ready",
          "blocking",
          "gaps",
          "caveat"
        ]
      },
      "Dpp": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "productId": {
            "type": "string"
          },
          "schemaId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "lifecycleState": {
            "type": "string"
          },
          "currentVersion": {
            "type": "number"
          },
          "publishedVersion": {
            "type": [
              "number",
              "null"
            ]
          },
          "publishedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "publishedMarkets": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "publicRedactions": {},
          "publicDisclosures": {},
          "pendingPublicRedactions": {},
          "pendingPublicDisclosures": {},
          "derivedFromId": {
            "type": [
              "string",
              "null"
            ]
          },
          "derivation": {
            "type": [
              "string",
              "null"
            ]
          },
          "derivationMeta": {},
          "sourceLocale": {
            "type": [
              "string",
              "null"
            ]
          },
          "carbonBaseline": {},
          "correctionOpenedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "suspendedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "suspensionReason": {
            "type": [
              "string",
              "null"
            ]
          },
          "suspendedFromLifecycleState": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "productId",
          "schemaId",
          "status",
          "lifecycleState",
          "currentVersion",
          "publishedVersion",
          "publishedAt",
          "publishedMarkets",
          "publicRedactions",
          "publicDisclosures",
          "pendingPublicRedactions",
          "pendingPublicDisclosures",
          "derivedFromId",
          "derivation",
          "derivationMeta",
          "sourceLocale",
          "carbonBaseline",
          "correctionOpenedAt",
          "suspendedAt",
          "suspensionReason",
          "suspendedFromLifecycleState",
          "createdAt",
          "updatedAt"
        ]
      },
      "DppCredentialSubject": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "DigitalProductPassport"
            ]
          },
          "issuerName": {
            "type": "string"
          },
          "product": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "sku": {
                "type": "string"
              },
              "category": {
                "type": "string"
              },
              "gtin": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "serial": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "name",
              "sku",
              "category"
            ]
          },
          "passport": {
            "type": "object",
            "properties": {
              "url": {
                "type": "string"
              },
              "version": {
                "type": "number"
              },
              "status": {
                "type": "string"
              },
              "publishedAt": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "schemaId": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "url",
              "version",
              "status"
            ]
          },
          "dataHash": {
            "type": "string"
          },
          "eventCount": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "type",
          "product",
          "passport",
          "dataHash"
        ]
      },
      "DppEvent": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "dppId": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "actor": {
            "type": [
              "string",
              "null"
            ]
          },
          "location": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "data": {},
          "occurredAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "dppId",
          "type",
          "actor",
          "location",
          "notes",
          "data",
          "occurredAt",
          "createdAt"
        ]
      },
      "DppEventInput": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "split",
              "created",
              "updated",
              "recalled",
              "recycled",
              "published",
              "repaired",
              "inspected",
              "transferred",
              "returned",
              "remanufactured",
              "merged"
            ]
          },
          "actor": {
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "notes": {
            "type": "string"
          },
          "data": {
            "type": "object",
            "additionalProperties": {}
          },
          "occurredAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "timeZoneOffset": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ]
      },
      "DppOwnership": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "dppId": {
            "type": "string"
          },
          "ownerType": {
            "type": "string"
          },
          "ownerRef": {
            "type": [
              "string",
              "null"
            ]
          },
          "ownerRefHash": {
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "acquiredAt": {
            "type": "string",
            "format": "date-time"
          },
          "releasedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "transferRef": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "recordedBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "dppId",
          "ownerType",
          "ownerRef",
          "ownerRefHash",
          "country",
          "acquiredAt",
          "releasedAt",
          "transferRef",
          "notes",
          "recordedBy",
          "createdAt"
        ]
      },
      "DppOwnership2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "dppId": {
            "type": "string"
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "ownerType": {
            "type": "string"
          },
          "ownerRef": {
            "type": [
              "string",
              "null"
            ]
          },
          "ownerRefHash": {
            "type": [
              "string",
              "null"
            ]
          },
          "acquiredAt": {
            "type": "string",
            "format": "date-time"
          },
          "releasedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "transferRef": {
            "type": [
              "string",
              "null"
            ]
          },
          "recordedBy": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "organizationId",
          "createdAt",
          "dppId",
          "country",
          "notes",
          "ownerType",
          "ownerRef",
          "ownerRefHash",
          "acquiredAt",
          "releasedAt",
          "transferRef",
          "recordedBy"
        ]
      },
      "DppOwnership3": {
        "type": "object",
        "properties": {
          "releasedAt": {
            "type": "string",
            "format": "date-time"
          },
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "dppId": {
            "type": "string"
          },
          "ownerType": {
            "type": "string"
          },
          "ownerRef": {
            "type": [
              "string",
              "null"
            ]
          },
          "ownerRefHash": {
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "acquiredAt": {
            "type": "string",
            "format": "date-time"
          },
          "transferRef": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "recordedBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "releasedAt",
          "id",
          "organizationId",
          "dppId",
          "ownerType",
          "ownerRef",
          "ownerRefHash",
          "country",
          "acquiredAt",
          "transferRef",
          "notes",
          "recordedBy",
          "createdAt"
        ]
      },
      "DppPublicationApproval": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "dppId": {
            "type": "string"
          },
          "dppVersion": {
            "type": "number"
          },
          "markets": {},
          "requestedBy": {
            "type": "string"
          },
          "approvedBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "approvedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "consumedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "selfDecided": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "organizationId",
          "createdAt",
          "status",
          "reason",
          "dppId",
          "dppVersion",
          "markets",
          "requestedBy",
          "approvedBy",
          "approvedAt",
          "consumedAt",
          "selfDecided"
        ]
      },
      "DppPublicationApproval2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "dppId": {
            "type": "string"
          },
          "dppVersion": {
            "type": "number"
          },
          "markets": {},
          "reason": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "requestedBy": {
            "type": "string"
          },
          "approvedBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "approvedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "consumedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "selfDecided": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "dppId",
          "dppVersion",
          "markets",
          "reason",
          "status",
          "requestedBy",
          "approvedBy",
          "approvedAt",
          "consumedAt",
          "selfDecided",
          "createdAt"
        ]
      },
      "DppRegistryRecord": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "dppId": {
            "type": "string"
          },
          "externalId": {
            "type": [
              "string",
              "null"
            ]
          },
          "dppVersion": {
            "type": "number"
          },
          "error": {
            "type": [
              "string",
              "null"
            ]
          },
          "registry": {
            "type": "string"
          },
          "registryUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "requestDigest": {
            "type": "string"
          },
          "response": {},
          "submittedBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "submittedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "createdAt",
          "status",
          "updatedAt",
          "dppId",
          "externalId",
          "dppVersion",
          "error",
          "registry",
          "registryUrl",
          "requestDigest",
          "response",
          "submittedBy",
          "submittedAt"
        ]
      },
      "DppRegistryRecord2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "dppId": {
            "type": "string"
          },
          "dppVersion": {
            "type": "number"
          },
          "registry": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "externalId": {
            "type": [
              "string",
              "null"
            ]
          },
          "registryUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "requestDigest": {
            "type": "string"
          },
          "response": {},
          "error": {
            "type": [
              "string",
              "null"
            ]
          },
          "submittedBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "submittedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "dppId",
          "dppVersion",
          "registry",
          "status",
          "externalId",
          "registryUrl",
          "requestDigest",
          "response",
          "error",
          "submittedBy",
          "submittedAt",
          "createdAt",
          "updatedAt"
        ]
      },
      "DppVersion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "dppId": {
            "type": "string"
          },
          "version": {
            "type": "number"
          },
          "schemaVersion": {
            "type": "string"
          },
          "data": {},
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "dppId",
          "version",
          "schemaVersion",
          "data",
          "createdBy",
          "createdAt"
        ]
      },
      "EpcisEmittedEvent": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "eventID": {
            "type": "string"
          },
          "eventTime": {
            "type": "string"
          },
          "bizStep": {
            "type": "string"
          },
          "disposition": {
            "type": "string"
          }
        },
        "required": [
          "type",
          "eventID",
          "eventTime",
          "bizStep"
        ],
        "additionalProperties": {}
      },
      "EpcisSubscription": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "webhookId": {
            "type": "string"
          },
          "destinationUrl": {
            "type": "string"
          },
          "filters": {},
          "active": {
            "type": "boolean"
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "notifiedCount": {
            "type": "number"
          },
          "backfilledCount": {
            "type": "number"
          },
          "lastNotifiedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "name",
          "webhookId",
          "destinationUrl",
          "filters",
          "active",
          "createdBy",
          "notifiedCount",
          "backfilledCount",
          "lastNotifiedAt",
          "createdAt",
          "updatedAt"
        ]
      },
      "EpdIndicator": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "core": {
            "type": "boolean"
          },
          "note": {
            "type": "string"
          }
        },
        "required": [
          "key",
          "label",
          "unit",
          "core"
        ]
      },
      "EpdModule": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "enum": [
              "A1",
              "A2",
              "A3",
              "A4",
              "A5",
              "B1",
              "B2",
              "B3",
              "B4",
              "B5",
              "B6",
              "B7",
              "C1",
              "C2",
              "C3",
              "C4",
              "D",
              "A1-A3"
            ]
          },
          "label": {
            "type": "string"
          },
          "stage": {
            "type": "string",
            "enum": [
              "product",
              "construction",
              "use",
              "end-of-life",
              "beyond"
            ]
          },
          "scenarioExpected": {
            "type": "boolean"
          }
        },
        "required": [
          "key",
          "label",
          "stage",
          "scenarioExpected"
        ]
      },
      "EpdModuleValues": {
        "type": "object",
        "properties": {
          "module": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "stage": {
            "type": "string",
            "enum": [
              "product",
              "construction",
              "use",
              "end-of-life",
              "beyond"
            ]
          },
          "indicators": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            }
          },
          "declared": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "scenarioDocumented": {
            "type": "boolean"
          },
          "unitIssues": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "declared": {
                  "type": "string"
                },
                "expected": {
                  "type": "string"
                }
              },
              "required": [
                "key",
                "declared",
                "expected"
              ]
            }
          },
          "notDeclared": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "module",
          "label",
          "stage",
          "indicators",
          "declared",
          "scenarioDocumented",
          "unitIssues",
          "notDeclared"
        ]
      },
      "EpdReadiness": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "partial",
              "declared",
              "insufficient"
            ]
          },
          "standard": {
            "type": "string"
          },
          "methodVersion": {
            "type": "string"
          },
          "declaredUnit": {
            "type": [
              "string",
              "null"
            ]
          },
          "functionalUnit": {
            "type": [
              "string",
              "null"
            ]
          },
          "systemBoundary": {
            "type": "string"
          },
          "modules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EpdModuleValues"
            }
          },
          "indicators": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "unit": {
                  "type": "string"
                },
                "core": {
                  "type": "boolean"
                },
                "values": {
                  "type": "object",
                  "additionalProperties": {
                    "type": [
                      "number",
                      "null"
                    ]
                  }
                }
              },
              "required": [
                "key",
                "label",
                "unit",
                "core",
                "values"
              ]
            }
          },
          "coreIndicatorCoveragePercent": {
            "type": "number"
          },
          "carbonStorage": {
            "type": "object",
            "properties": {
              "kgCo2e": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "basis": {
                "type": "string",
                "enum": [
                  "declared",
                  "none",
                  "biogenic-a1-a3"
                ]
              },
              "path": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "kgCo2e",
              "basis",
              "path"
            ]
          },
          "verification": {
            "$ref": "#/components/schemas/ConstructionVerification"
          },
          "gaps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConstructionGap"
            }
          },
          "errorGaps": {
            "type": "number"
          },
          "warningGaps": {
            "type": "number"
          },
          "caveat": {
            "type": "string"
          },
          "disclaimer": {
            "type": "string"
          }
        },
        "required": [
          "status",
          "standard",
          "methodVersion",
          "declaredUnit",
          "functionalUnit",
          "systemBoundary",
          "modules",
          "indicators",
          "coreIndicatorCoveragePercent",
          "carbonStorage",
          "verification",
          "gaps",
          "errorGaps",
          "warningGaps",
          "caveat",
          "disclaimer"
        ]
      },
      "EvidenceLink": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "dppId": {
            "type": "string"
          },
          "version": {
            "type": "number"
          },
          "note": {
            "type": [
              "string",
              "null"
            ]
          },
          "documentId": {
            "type": "string"
          },
          "documentSha256": {
            "type": "string"
          },
          "documentTitle": {
            "type": "string"
          },
          "page": {
            "type": [
              "number",
              "null"
            ]
          },
          "quote": {
            "type": "string"
          },
          "fieldPath": {
            "type": "string"
          },
          "capturedValue": {}
        },
        "required": [
          "id",
          "organizationId",
          "createdAt",
          "createdBy",
          "dppId",
          "version",
          "note",
          "documentId",
          "documentSha256",
          "documentTitle",
          "page",
          "quote",
          "fieldPath",
          "capturedValue"
        ]
      },
      "Exposure": {
        "type": "object",
        "properties": {
          "material": {
            "type": "string"
          },
          "criticality": {
            "type": "object",
            "properties": {
              "level": {
                "type": "string",
                "enum": [
                  "low",
                  "medium",
                  "high"
                ]
              },
              "reason": {
                "type": "string"
              }
            },
            "required": [
              "level",
              "reason"
            ]
          },
          "suppliers": {
            "type": "number"
          },
          "singleSource": {
            "type": "boolean"
          },
          "upstreamOnly": {
            "type": "boolean"
          },
          "countries": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "countryConcentration": {
            "type": "number"
          },
          "topCountry": {
            "type": [
              "string",
              "null"
            ]
          },
          "unattributed": {
            "type": "boolean"
          },
          "exposureScore": {
            "type": "number"
          },
          "reasons": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "material",
          "criticality",
          "suppliers",
          "singleSource",
          "upstreamOnly",
          "countries",
          "countryConcentration",
          "topCountry",
          "unattributed",
          "exposureScore",
          "reasons"
        ]
      },
      "ExtensionInput": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "category": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "type": "string",
            "enum": [
              "string",
              "number",
              "boolean",
              "date",
              "integer",
              "enum"
            ]
          },
          "required": {
            "type": "boolean"
          },
          "enumValues": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "pattern": {
            "type": [
              "string",
              "null"
            ]
          },
          "minValue": {
            "type": [
              "number",
              "null"
            ]
          },
          "maxValue": {
            "type": [
              "number",
              "null"
            ]
          },
          "unit": {
            "type": [
              "string",
              "null"
            ]
          },
          "active": {
            "type": "boolean"
          }
        },
        "required": [
          "key",
          "label"
        ]
      },
      "ExtensionIssue": {
        "type": "object",
        "properties": {
          "extensionId": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "missing",
              "invalid"
            ]
          },
          "severity": {
            "type": "string",
            "enum": [
              "medium",
              "high"
            ]
          }
        },
        "required": [
          "extensionId",
          "key",
          "label",
          "message",
          "kind",
          "severity"
        ]
      },
      "FactInput": {
        "type": "object",
        "properties": {
          "documentId": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "evidence": {
            "type": "string"
          },
          "unit": {
            "type": [
              "string",
              "null"
            ]
          },
          "confidence": {
            "type": "string"
          },
          "note": {
            "type": "string"
          }
        },
        "required": [
          "documentId",
          "path",
          "value",
          "evidence"
        ]
      },
      "FieldChange": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string"
          },
          "before": {},
          "after": {},
          "classes": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "breaking",
                "tightening",
                "easing",
                "editorial",
                "timing"
              ]
            }
          }
        },
        "required": [
          "field",
          "before",
          "after",
          "classes"
        ]
      },
      "Finding": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "severity": {
            "type": "string",
            "enum": [
              "error",
              "warning"
            ]
          }
        },
        "required": [
          "path",
          "message",
          "severity"
        ]
      },
      "FuturePackReadiness": {
        "type": "object",
        "properties": {
          "pack": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string"
              },
              "version": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "effectiveFrom": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "code",
              "version",
              "status",
              "effectiveFrom"
            ]
          },
          "daysUntil": {
            "type": [
              "number",
              "null"
            ]
          },
          "label": {
            "type": "string"
          },
          "ready": {
            "type": "boolean"
          },
          "missing": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "ruleId": {
                  "type": "string"
                },
                "field": {
                  "type": "string"
                },
                "message": {
                  "type": "string"
                },
                "severity": {
                  "type": "string"
                },
                "source": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "ruleId",
                "field",
                "message",
                "severity",
                "source"
              ]
            }
          },
          "newFields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "pack",
          "daysUntil",
          "label",
          "ready",
          "missing",
          "newFields"
        ]
      },
      "Gap": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "requirement": {
            "type": "string"
          },
          "severity": {
            "type": "string",
            "enum": [
              "error",
              "info",
              "warning"
            ]
          },
          "basis": {
            "type": "string"
          },
          "detail": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "requirement",
          "severity",
          "basis",
          "detail"
        ]
      },
      "GlossaryEntry": {
        "type": "object",
        "properties": {
          "term": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "standard",
              "scheme",
              "regime",
              "acronym"
            ]
          }
        },
        "required": [
          "term",
          "reason",
          "kind"
        ]
      },
      "Gs1CompanyPrefixe": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "evidence": {
            "type": [
              "string",
              "null"
            ]
          },
          "verifiedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "prefix": {
            "type": "string"
          },
          "evidenceDocumentId": {
            "type": [
              "string",
              "null"
            ]
          },
          "verifiedBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "rejectedReason": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "organizationId",
          "createdAt",
          "status",
          "updatedAt",
          "evidence",
          "verifiedAt",
          "prefix",
          "evidenceDocumentId",
          "verifiedBy",
          "rejectedReason"
        ]
      },
      "Gs1CompanyPrefixe2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "prefix": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "evidence": {
            "type": [
              "string",
              "null"
            ]
          },
          "evidenceDocumentId": {
            "type": [
              "string",
              "null"
            ]
          },
          "verifiedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "verifiedBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "rejectedReason": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "prefix",
          "status",
          "evidence",
          "evidenceDocumentId",
          "verifiedAt",
          "verifiedBy",
          "rejectedReason",
          "createdAt",
          "updatedAt"
        ]
      },
      "HazardStatement": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "hazardClass": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "pictogram": {
            "type": [
              "string",
              "null"
            ]
          },
          "signal": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "DANGER",
              "WARNING",
              null
            ]
          },
          "rule": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "gcl"
                    ]
                  },
                  "percent": {
                    "type": "number"
                  },
                  "verify": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "kind",
                  "percent"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "sum"
                    ]
                  },
                  "group": {
                    "type": "string"
                  },
                  "percent": {
                    "type": "number"
                  },
                  "resultingClassification": {
                    "type": "string"
                  },
                  "verify": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "kind",
                  "group",
                  "percent"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "physical"
                    ]
                  },
                  "property": {
                    "type": "string"
                  }
                },
                "required": [
                  "kind",
                  "property"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "expert"
                    ]
                  },
                  "note": {
                    "type": "string"
                  }
                },
                "required": [
                  "kind",
                  "note"
                ]
              }
            ]
          }
        },
        "required": [
          "code",
          "text",
          "hazardClass",
          "category",
          "pictogram",
          "signal",
          "rule"
        ]
      },
      "IgnoredBomField": {
        "type": "object",
        "properties": {
          "index": {
            "type": [
              "number",
              "null"
            ]
          },
          "field": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "index",
          "field",
          "value",
          "reason"
        ]
      },
      "IgnoredRiskField": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "field",
          "value",
          "reason"
        ]
      },
      "ImpactCoverage": {
        "type": "object",
        "properties": {
          "passports": {
            "type": "number"
          },
          "newlyFailing": {
            "type": "number"
          },
          "newlyPassing": {
            "type": "number"
          },
          "stillFailing": {
            "type": "number"
          },
          "unchanged": {
            "type": "number"
          },
          "affectedPercent": {
            "type": "number"
          }
        },
        "required": [
          "passports",
          "newlyFailing",
          "newlyPassing",
          "stillFailing",
          "unchanged",
          "affectedPercent"
        ]
      },
      "ImportDefaults": {
        "type": "object",
        "properties": {
          "category": {
            "type": [
              "string",
              "null"
            ]
          },
          "workspaceId": {
            "type": [
              "string",
              "null"
            ]
          },
          "brand": {
            "type": [
              "string",
              "null"
            ]
          },
          "manufacturerName": {
            "type": [
              "string",
              "null"
            ]
          },
          "manufacturerCountry": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "ImportInput": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "externalId": {
                  "type": "string"
                },
                "category": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "externalId"
              ]
            }
          },
          "defaultCategory": {
            "type": [
              "string",
              "null"
            ]
          },
          "workspaceId": {
            "type": [
              "string",
              "null"
            ]
          },
          "updateLinked": {
            "type": "boolean"
          }
        }
      },
      "Item": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string"
          },
          "ruleId": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "effectiveFrom": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "daysUntil": {
            "type": "number"
          },
          "status": {
            "type": "string",
            "enum": [
              "overdue",
              "due-today",
              "preparation-late",
              "on-track"
            ]
          },
          "label": {
            "type": "string"
          },
          "prepareBy": {
            "type": "string"
          }
        },
        "required": [
          "category",
          "ruleId",
          "message",
          "effectiveFrom",
          "daysUntil",
          "status",
          "label",
          "prepareBy"
        ]
      },
      "ItemGenerationJob": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "dppId": {
            "type": "string"
          },
          "gtin": {
            "type": "string"
          },
          "batch": {
            "type": [
              "string",
              "null"
            ]
          },
          "prefix": {
            "type": "string"
          },
          "width": {
            "type": "number"
          },
          "startNumber": {
            "type": "number"
          },
          "count": {
            "type": "number"
          },
          "nextOffset": {
            "type": "number"
          },
          "createdCount": {
            "type": "number"
          },
          "skippedCount": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "error": {
            "type": [
              "string",
              "null"
            ]
          },
          "heartbeatAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "finishedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "dppId",
          "gtin",
          "batch",
          "prefix",
          "width",
          "startNumber",
          "count",
          "nextOffset",
          "createdCount",
          "skippedCount",
          "status",
          "error",
          "heartbeatAt",
          "createdBy",
          "createdAt",
          "finishedAt"
        ]
      },
      "ItemGenerationJob2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "dppId": {
            "type": "string"
          },
          "width": {
            "type": "number"
          },
          "gtin": {
            "type": "string"
          },
          "count": {
            "type": "number"
          },
          "batch": {
            "type": [
              "string",
              "null"
            ]
          },
          "error": {
            "type": [
              "string",
              "null"
            ]
          },
          "prefix": {
            "type": "string"
          },
          "startNumber": {
            "type": "number"
          },
          "nextOffset": {
            "type": "number"
          },
          "createdCount": {
            "type": "number"
          },
          "skippedCount": {
            "type": "number"
          },
          "heartbeatAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "finishedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "createdAt",
          "status",
          "createdBy",
          "dppId",
          "width",
          "gtin",
          "count",
          "batch",
          "error",
          "prefix",
          "startNumber",
          "nextOffset",
          "createdCount",
          "skippedCount",
          "heartbeatAt",
          "finishedAt"
        ]
      },
      "ItemIdentity": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "dppId": {
            "type": "string"
          },
          "gtin": {
            "type": "string"
          },
          "serial": {
            "type": "string"
          },
          "batch": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": "string"
          },
          "attributes": {},
          "jobId": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "dppId",
          "gtin",
          "serial",
          "batch",
          "status",
          "attributes",
          "jobId",
          "createdAt",
          "updatedAt"
        ]
      },
      "Label": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string"
          },
          "classified": {
            "type": "boolean"
          },
          "signalWord": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "DANGER",
              "WARNING",
              null
            ]
          },
          "pictograms": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "statements": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "code",
                "label",
                "statements"
              ]
            }
          },
          "hazards": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LabelHazard"
            }
          },
          "precautionary": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "string"
                },
                "text": {
                  "type": "string"
                },
                "forCodes": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "code",
                "text",
                "forCodes"
              ]
            }
          },
          "mixtureRules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MixtureRuleResult"
            }
          },
          "physicalHazards": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PhysicalHazard"
            }
          },
          "perComponent": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "cas": {
                  "type": "string"
                },
                "ec": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": {
                  "type": "string"
                },
                "percent": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "statements": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "known": {
                  "type": "boolean"
                },
                "scl": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "type": "string"
                      },
                      "percent": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "code",
                      "percent"
                    ]
                  }
                }
              },
              "required": [
                "cas",
                "ec",
                "name",
                "percent",
                "statements",
                "known"
              ]
            }
          },
          "unresolved": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "cas": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "path": {
                  "type": "string"
                },
                "reason": {
                  "type": "string"
                }
              },
              "required": [
                "cas",
                "name",
                "path",
                "reason"
              ]
            }
          },
          "missing": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "verifyBeforeLabelling": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "disclaimer": {
            "type": "string"
          }
        },
        "required": [
          "method",
          "classified",
          "signalWord",
          "pictograms",
          "hazards",
          "precautionary",
          "mixtureRules",
          "physicalHazards",
          "perComponent",
          "unresolved",
          "missing",
          "verifyBeforeLabelling",
          "notes",
          "disclaimer"
        ]
      },
      "Label2": {
        "type": "object",
        "properties": {
          "dppId": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "serial": {
            "type": [
              "string",
              "null"
            ]
          },
          "gtin": {
            "type": [
              "string",
              "null"
            ]
          },
          "digitalLink": {
            "type": "string"
          },
          "passportUrl": {
            "type": "string"
          },
          "qrDataUrl": {
            "type": "string"
          },
          "datamatrixDataUrl": {
            "type": "string"
          },
          "symbolText": {
            "type": "string"
          },
          "humanReadable": {
            "type": "string"
          },
          "symbolWarning": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "dppId",
          "productName",
          "sku",
          "serial",
          "gtin",
          "digitalLink",
          "passportUrl"
        ]
      },
      "LabelComparison": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "matches",
              "not-declared",
              "review-required"
            ]
          },
          "fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "field": {
                  "type": "string"
                },
                "declared": {
                  "type": "string"
                },
                "calculated": {
                  "type": "string"
                },
                "matches": {
                  "type": "boolean"
                }
              },
              "required": [
                "field",
                "declared",
                "calculated",
                "matches"
              ]
            }
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "status",
          "fields",
          "warnings"
        ]
      },
      "LabelHazard": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "hazardClass": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "pictogram": {
            "type": [
              "string",
              "null"
            ]
          },
          "signal": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "DANGER",
              "WARNING",
              null
            ]
          },
          "trigger": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "component"
                    ]
                  },
                  "cas": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "percent": {
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "thresholdPercent": {
                    "type": "number"
                  }
                },
                "required": [
                  "kind",
                  "cas",
                  "name",
                  "percent",
                  "thresholdPercent"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "sum"
                    ]
                  },
                  "group": {
                    "type": "string"
                  },
                  "percent": {
                    "type": "number"
                  },
                  "thresholdPercent": {
                    "type": "number"
                  },
                  "contributions": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "cas": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "percent": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "cas",
                        "name",
                        "percent"
                      ]
                    }
                  }
                },
                "required": [
                  "kind",
                  "group",
                  "percent",
                  "thresholdPercent",
                  "contributions"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "property"
                    ]
                  },
                  "property": {
                    "type": "string"
                  },
                  "value": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "kind",
                  "property",
                  "value"
                ]
              }
            ]
          },
          "verify": {
            "type": "boolean"
          }
        },
        "required": [
          "code",
          "text",
          "hazardClass",
          "category",
          "pictogram",
          "signal",
          "trigger",
          "verify"
        ]
      },
      "LanguageReport": {
        "type": "object",
        "properties": {
          "locale": {
            "type": "string"
          },
          "languageName": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "skipped",
              "failed",
              "drafted"
            ]
          },
          "written": {
            "type": "boolean"
          },
          "segments": {
            "type": "number"
          },
          "segmentsDrafted": {
            "type": "number"
          },
          "verdict": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "suspect",
              "review-carefully",
              "ready-for-review",
              null
            ]
          },
          "score": {
            "type": [
              "number",
              "null"
            ]
          },
          "termsLost": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "suspect": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "reviewCarefully": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "script": {
            "type": "string"
          },
          "reviewFocus": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "signals": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "level": {
                  "type": "string"
                },
                "detail": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "level",
                "detail"
              ]
            }
          },
          "skippedReason": {
            "type": "string"
          },
          "draft": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "source": {
                  "type": "string"
                },
                "text": {
                  "type": "string"
                },
                "verdict": {
                  "type": "string"
                },
                "score": {
                  "type": "number"
                }
              },
              "required": [
                "source",
                "text",
                "verdict",
                "score"
              ]
            }
          }
        },
        "required": [
          "locale",
          "languageName",
          "status",
          "written",
          "segments",
          "segmentsDrafted",
          "verdict",
          "score",
          "termsLost",
          "suspect",
          "reviewCarefully",
          "script",
          "reviewFocus",
          "signals"
        ]
      },
      "LcaEstimateInput": {
        "type": "object",
        "properties": {
          "materials": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "material": {
                  "type": "string"
                },
                "weightKg": {
                  "type": "number"
                }
              },
              "required": [
                "material",
                "weightKg"
              ]
            }
          },
          "manufactureCountry": {
            "type": "string"
          },
          "manufacturingElectricityKwh": {
            "type": "number"
          },
          "transport": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LcaTransportInput"
            }
          }
        },
        "required": [
          "materials"
        ]
      },
      "LcaTransportInput": {
        "type": "object",
        "properties": {
          "mode": {
            "type": "string"
          },
          "distanceKm": {
            "type": "number"
          },
          "weightKg": {
            "type": "number"
          }
        },
        "required": [
          "mode",
          "distanceKm"
        ]
      },
      "LeaseContract": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "dppId": {
            "type": "string"
          },
          "contractRef": {
            "type": [
              "string",
              "null"
            ]
          },
          "lesseeType": {
            "type": "string"
          },
          "lesseeRef": {
            "type": [
              "string",
              "null"
            ]
          },
          "lesseeRefHash": {
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "monthlyAmount": {
            "type": [
              "string",
              "null"
            ]
          },
          "currency": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": "string"
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "dppId",
          "contractRef",
          "lesseeType",
          "lesseeRef",
          "lesseeRefHash",
          "country",
          "startDate",
          "endDate",
          "monthlyAmount",
          "currency",
          "status",
          "notes",
          "createdBy",
          "createdAt",
          "updatedAt"
        ]
      },
      "LeaseContract2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "dppId": {
            "type": "string"
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "contractRef": {
            "type": [
              "string",
              "null"
            ]
          },
          "lesseeType": {
            "type": "string"
          },
          "lesseeRef": {
            "type": [
              "string",
              "null"
            ]
          },
          "lesseeRefHash": {
            "type": [
              "string",
              "null"
            ]
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "monthlyAmount": {
            "type": [
              "string",
              "null"
            ]
          },
          "currency": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "organizationId",
          "createdAt",
          "status",
          "createdBy",
          "updatedAt",
          "dppId",
          "country",
          "notes",
          "contractRef",
          "lesseeType",
          "lesseeRef",
          "lesseeRefHash",
          "startDate",
          "endDate",
          "monthlyAmount",
          "currency"
        ]
      },
      "LeaseInput": {
        "type": "object",
        "properties": {
          "lesseeType": {
            "type": "string",
            "enum": [
              "public",
              "consumer",
              "business"
            ]
          },
          "lesseeRef": {
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "contractRef": {
            "type": [
              "string",
              "null"
            ]
          },
          "startDate": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "endDate": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          },
          "monthlyAmount": {
            "type": [
              "number",
              "null"
            ]
          },
          "currency": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "transferCustody": {
            "type": "boolean"
          }
        }
      },
      "LedgerState": {
        "type": "object",
        "properties": {
          "credits": {
            "type": "object",
            "properties": {
              "received": {
                "type": "number"
              },
              "allocated": {
                "type": "number"
              },
              "adjusted": {
                "type": "number"
              },
              "expired": {
                "type": "number"
              },
              "available": {
                "type": "number"
              }
            },
            "required": [
              "received",
              "allocated",
              "adjusted",
              "expired",
              "available"
            ]
          },
          "physical": {
            "type": "object",
            "properties": {
              "received": {
                "type": "number"
              },
              "allocated": {
                "type": "number"
              },
              "available": {
                "type": "number"
              }
            },
            "required": [
              "received",
              "allocated",
              "available"
            ]
          },
          "blendRatio": {
            "type": [
              "number",
              "null"
            ]
          },
          "lots": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Lot"
            }
          },
          "problems": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "entryId": {
                  "type": "string"
                },
                "message": {
                  "type": "string"
                }
              },
              "required": [
                "entryId",
                "message"
              ]
            }
          }
        },
        "required": [
          "credits",
          "physical",
          "blendRatio",
          "lots",
          "problems"
        ]
      },
      "LifecycleReport": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "dppId": {
            "type": "string"
          },
          "grantId": {
            "type": [
              "string",
              "null"
            ]
          },
          "reporterName": {
            "type": "string"
          },
          "accessTier": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "serial": {
            "type": [
              "string",
              "null"
            ]
          },
          "occurredAt": {
            "type": "string",
            "format": "date-time"
          },
          "location": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "measurements": {},
          "status": {
            "type": "string"
          },
          "decidedBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "decidedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "decisionReason": {
            "type": [
              "string",
              "null"
            ]
          },
          "eventId": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "dppId",
          "grantId",
          "reporterName",
          "accessTier",
          "type",
          "serial",
          "occurredAt",
          "location",
          "notes",
          "measurements",
          "status",
          "decidedBy",
          "decidedAt",
          "decisionReason",
          "eventId",
          "createdAt"
        ]
      },
      "LocaleInfo": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "nativeName": {
            "type": "string"
          }
        },
        "required": [
          "code",
          "name",
          "nativeName"
        ]
      },
      "Lot": {
        "type": "object",
        "properties": {
          "entryId": {
            "type": "string"
          },
          "occurredOn": {
            "type": "string"
          },
          "quantity": {
            "type": "number"
          },
          "credits": {
            "type": "number"
          },
          "share": {
            "type": "number"
          },
          "remainingQuantity": {
            "type": "number"
          },
          "remainingCredits": {
            "type": "number"
          },
          "expiresOn": {
            "type": [
              "string",
              "null"
            ]
          },
          "expired": {
            "type": "boolean"
          }
        },
        "required": [
          "entryId",
          "occurredOn",
          "quantity",
          "credits",
          "share",
          "remainingQuantity",
          "remainingCredits",
          "expiresOn",
          "expired"
        ]
      },
      "MappingTemplate": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "system": {
            "type": "string"
          },
          "family": {
            "type": "string",
            "enum": [
              "ERP",
              "PIM",
              "PLM"
            ]
          },
          "label": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "mapping": {
            "type": "object",
            "properties": {
              "kind": {
                "type": "string",
                "enum": [
                  "records",
                  "bom"
                ]
              },
              "sourceFormat": {
                "type": "string",
                "enum": [
                  "json",
                  "csv",
                  "xml"
                ]
              },
              "recordsPath": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "keyField": {
                "type": "string",
                "enum": [
                  "sku",
                  "gtin"
                ]
              },
              "keySource": {
                "type": "string"
              },
              "rules": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "source": {
                      "type": "string"
                    },
                    "target": {
                      "type": "string"
                    },
                    "transform": {
                      "type": "string",
                      "enum": [
                        "number",
                        "boolean",
                        "date",
                        "country",
                        "text",
                        "integer",
                        "upper",
                        "lower"
                      ]
                    },
                    "scale": {
                      "type": "number"
                    },
                    "valueMap": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    },
                    "required": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "source",
                    "target",
                    "transform"
                  ]
                }
              },
              "feedMethod": {
                "type": "string",
                "enum": [
                  "GET",
                  "POST"
                ]
              },
              "feedBody": {
                "type": "string"
              },
              "feedAuth": {
                "type": "string",
                "enum": [
                  "none",
                  "bearer",
                  "basic",
                  "header",
                  "oauth2",
                  "sftp-password",
                  "sftp-key"
                ]
              },
              "feedAuthHeader": {
                "type": "string"
              },
              "feedOAuth": {
                "type": "object",
                "properties": {
                  "grant": {
                    "type": "string",
                    "enum": [
                      "client_credentials",
                      "password"
                    ]
                  },
                  "clientAuth": {
                    "type": "string",
                    "enum": [
                      "basic",
                      "body"
                    ]
                  },
                  "scope": {
                    "type": "string"
                  }
                },
                "required": [
                  "grant",
                  "clientAuth"
                ]
              }
            },
            "required": [
              "kind",
              "sourceFormat",
              "recordsPath",
              "keyField",
              "keySource",
              "rules"
            ]
          },
          "feedExample": {
            "type": "string"
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "key",
          "system",
          "family",
          "label",
          "description",
          "mapping",
          "feedExample",
          "notes"
        ]
      },
      "MarketVerdict": {
        "type": "object",
        "properties": {
          "compliant": {
            "type": "boolean"
          },
          "score": {
            "type": "number"
          },
          "grade": {
            "type": "string"
          },
          "missing": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "compliant",
          "score",
          "grade",
          "missing"
        ]
      },
      "MaterialsDossier": {
        "type": "object",
        "properties": {
          "dossierVersion": {
            "type": "string"
          },
          "dppVersion": {
            "type": [
              "number",
              "null"
            ]
          },
          "generatedAt": {
            "type": "string"
          },
          "productType": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "article": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "sku": {
                "type": "string"
              },
              "gtin": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "dppId": {
                "type": "string"
              },
              "passportUrl": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "name",
              "sku",
              "gtin",
              "dppId",
              "passportUrl"
            ]
          },
          "repairability": {
            "$ref": "#/components/schemas/Repairability"
          },
          "recycledContent": {
            "$ref": "#/components/schemas/RecycledContentResult"
          },
          "criticalRawMaterials": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "material": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "strategic": {
                  "type": "boolean"
                },
                "critical": {
                  "type": "boolean"
                },
                "recycledPercent": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "origin": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "supplyRisk": {
                  "type": "string"
                },
                "meetsBenchmark": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                }
              },
              "required": [
                "material",
                "name",
                "strategic",
                "critical",
                "recycledPercent",
                "origin",
                "supplyRisk",
                "meetsBenchmark"
              ]
            }
          },
          "gaps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Gap"
            }
          },
          "claims": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "statement": {
                  "type": "string"
                },
                "basis": {
                  "type": "string"
                },
                "substantiated": {
                  "type": "boolean"
                },
                "evidence": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "statement",
                "basis",
                "substantiated",
                "evidence"
              ]
            }
          },
          "crmListVersion": {
            "type": "string"
          },
          "caveat": {
            "type": "string"
          }
        },
        "required": [
          "dossierVersion",
          "dppVersion",
          "generatedAt",
          "productType",
          "category",
          "article",
          "repairability",
          "recycledContent",
          "criticalRawMaterials",
          "gaps",
          "claims",
          "crmListVersion",
          "caveat"
        ]
      },
      "MergeInput": {
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "data": {
            "type": "object",
            "additionalProperties": {}
          },
          "schemaId": {
            "type": "string"
          },
          "schemaVersion": {
            "type": "string"
          },
          "serial": {
            "type": "string"
          },
          "publish": {
            "type": "boolean"
          },
          "archiveSources": {
            "type": "boolean"
          },
          "note": {
            "type": "string"
          }
        },
        "required": [
          "ids"
        ]
      },
      "MixtureRuleResult": {
        "type": "object",
        "properties": {
          "group": {
            "type": "string"
          },
          "statements": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sumPercent": {
            "type": "number"
          },
          "thresholdPercent": {
            "type": "number"
          },
          "triggered": {
            "type": "boolean"
          },
          "resultingClassification": {
            "type": "string"
          },
          "contributions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "cas": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "percent": {
                  "type": "number"
                }
              },
              "required": [
                "cas",
                "name",
                "percent"
              ]
            }
          },
          "verify": {
            "type": "boolean"
          }
        },
        "required": [
          "group",
          "statements",
          "sumPercent",
          "thresholdPercent",
          "triggered",
          "contributions",
          "verify"
        ]
      },
      "OrganizationRule": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "category": {
            "type": [
              "string",
              "null"
            ]
          },
          "code": {
            "type": "string"
          },
          "severity": {
            "type": "string"
          },
          "definition": {},
          "note": {
            "type": [
              "string",
              "null"
            ]
          },
          "active": {
            "type": "boolean"
          },
          "effectiveFrom": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "effectiveTo": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "category",
          "code",
          "severity",
          "definition",
          "note",
          "active",
          "effectiveFrom",
          "effectiveTo",
          "createdBy",
          "createdAt",
          "updatedAt"
        ]
      },
      "OrganizationRule2": {
        "type": "object",
        "properties": {
          "active": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "category": {
            "type": [
              "string",
              "null"
            ]
          },
          "note": {
            "type": [
              "string",
              "null"
            ]
          },
          "code": {
            "type": "string"
          },
          "severity": {
            "type": "string"
          },
          "definition": {},
          "effectiveFrom": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "effectiveTo": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        },
        "required": [
          "active",
          "id",
          "organizationId",
          "createdAt",
          "createdBy",
          "updatedAt",
          "category",
          "note",
          "code",
          "severity",
          "definition",
          "effectiveFrom",
          "effectiveTo"
        ]
      },
      "OrgRuleInput": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "category": {
            "type": [
              "string",
              "null"
            ]
          },
          "severity": {
            "type": "string",
            "enum": [
              "error",
              "info",
              "warning"
            ]
          },
          "definition": {
            "type": "object",
            "additionalProperties": {}
          },
          "note": {
            "type": [
              "string",
              "null"
            ]
          },
          "active": {
            "type": "boolean"
          },
          "effectiveFrom": {
            "type": [
              "string",
              "null"
            ]
          },
          "effectiveTo": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "code",
          "definition"
        ]
      },
      "Outcome": {
        "type": "object",
        "properties": {
          "record": {
            "type": "number"
          },
          "key": {
            "type": [
              "string",
              "null"
            ]
          },
          "action": {
            "type": "string",
            "enum": [
              "error",
              "created",
              "updated",
              "unchanged",
              "unmatched",
              "would-update",
              "would-create"
            ]
          },
          "productId": {
            "type": "string"
          },
          "dppId": {
            "type": "string"
          },
          "version": {
            "type": "number"
          },
          "changes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "target": {
                  "type": "string"
                },
                "before": {},
                "after": {}
              },
              "required": [
                "target",
                "before",
                "after"
              ]
            }
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "record",
          "key",
          "action"
        ]
      },
      "PackCoverage": {
        "type": "object",
        "properties": {
          "fields": {
            "type": "number"
          },
          "blockingRules": {
            "type": "number"
          },
          "rules": {
            "type": "number"
          },
          "gradable": {
            "type": "boolean"
          },
          "note": {
            "type": "string"
          }
        },
        "required": [
          "fields",
          "blockingRules",
          "rules",
          "gradable",
          "note"
        ]
      },
      "PackRef": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "code",
          "version",
          "status"
        ]
      },
      "ParsedElement": {
        "type": "object",
        "properties": {
          "ai": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "formatted": {
            "type": "string"
          }
        },
        "required": [
          "ai",
          "name",
          "value"
        ]
      },
      "ParseResult": {
        "type": "object",
        "properties": {
          "valid": {
            "type": "boolean"
          },
          "gtin": {
            "type": "string"
          },
          "elements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ParsedElement"
            }
          },
          "issues": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "ai": {
                  "type": "string"
                },
                "message": {
                  "type": "string"
                }
              },
              "required": [
                "message"
              ]
            }
          },
          "separatorUsed": {
            "type": "boolean"
          }
        },
        "required": [
          "valid",
          "elements",
          "issues",
          "separatorUsed"
        ]
      },
      "PassportComponent": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "supplierId": {
            "type": [
              "string",
              "null"
            ]
          },
          "role": {
            "type": [
              "string",
              "null"
            ]
          },
          "childDppId": {
            "type": [
              "string",
              "null"
            ]
          },
          "externalReference": {
            "type": [
              "string",
              "null"
            ]
          },
          "quantity": {
            "type": "string"
          },
          "massKg": {
            "type": [
              "string",
              "null"
            ]
          },
          "visibility": {
            "type": "string"
          },
          "position": {
            "type": "number"
          },
          "parentDppId": {
            "type": "string"
          },
          "sourceMappingId": {
            "type": [
              "string",
              "null"
            ]
          },
          "sourceLine": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "organizationId",
          "name",
          "createdAt",
          "createdBy",
          "updatedAt",
          "supplierId",
          "role",
          "childDppId",
          "externalReference",
          "quantity",
          "massKg",
          "visibility",
          "position",
          "parentDppId",
          "sourceMappingId",
          "sourceLine"
        ]
      },
      "PassportComponent2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "parentDppId": {
            "type": "string"
          },
          "childDppId": {
            "type": [
              "string",
              "null"
            ]
          },
          "externalReference": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": "string"
          },
          "role": {
            "type": [
              "string",
              "null"
            ]
          },
          "quantity": {
            "type": "string"
          },
          "massKg": {
            "type": [
              "string",
              "null"
            ]
          },
          "supplierId": {
            "type": [
              "string",
              "null"
            ]
          },
          "visibility": {
            "type": "string"
          },
          "position": {
            "type": "number"
          },
          "sourceMappingId": {
            "type": [
              "string",
              "null"
            ]
          },
          "sourceLine": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "parentDppId",
          "childDppId",
          "externalReference",
          "name",
          "role",
          "quantity",
          "massKg",
          "supplierId",
          "visibility",
          "position",
          "sourceMappingId",
          "sourceLine",
          "createdBy",
          "createdAt",
          "updatedAt"
        ]
      },
      "PassportObligation": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "instruction": {
            "type": "string"
          },
          "fieldPath": {
            "type": [
              "string",
              "null"
            ]
          },
          "evidenceType": {
            "type": [
              "string",
              "null"
            ]
          },
          "source": {
            "type": "string"
          },
          "locator": {
            "type": "string"
          },
          "effectiveFrom": {
            "type": [
              "string",
              "null"
            ]
          },
          "dateType": {
            "type": "string",
            "enum": [
              "fixed",
              "conditional",
              "indicative"
            ]
          },
          "prepareBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "daysUntil": {
            "type": [
              "number",
              "null"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "missing",
              "not-applicable",
              "overdue",
              "ready",
              "indicative",
              "confirm"
            ]
          },
          "label": {
            "type": "string"
          },
          "recommendation": {
            "type": [
              "string",
              "null"
            ]
          },
          "action": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "confirm",
              "update-passport",
              "upload-evidence",
              null
            ]
          },
          "pack": {
            "$ref": "#/components/schemas/PackRef"
          }
        },
        "required": [
          "code",
          "kind",
          "title",
          "instruction",
          "fieldPath",
          "evidenceType",
          "source",
          "locator",
          "effectiveFrom",
          "dateType",
          "prepareBy",
          "daysUntil",
          "status",
          "label",
          "recommendation",
          "action",
          "pack"
        ]
      },
      "PhysicalHazard": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "property": {
            "type": "string"
          },
          "declared": {
            "type": "boolean"
          },
          "declaredValue": {
            "type": [
              "string",
              "null"
            ]
          },
          "note": {
            "type": "string"
          }
        },
        "required": [
          "code",
          "property",
          "declared",
          "declaredValue",
          "note"
        ]
      },
      "PlacedBomLine": {
        "type": "object",
        "properties": {
          "index": {
            "type": [
              "number",
              "null"
            ]
          },
          "description": {
            "type": "string"
          },
          "material": {
            "type": "string"
          },
          "factorKey": {
            "type": "string"
          },
          "factor": {
            "type": "number"
          },
          "factorBasis": {
            "type": "string",
            "enum": [
              "mass",
              "energy"
            ]
          },
          "matchedBy": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "quantity": {
            "type": "number"
          },
          "quantityNormalised": {
            "type": "number"
          },
          "normalisedUnit": {
            "type": "string",
            "enum": [
              "kg",
              "kwh"
            ]
          },
          "valueKgCo2e": {
            "type": "number"
          },
          "evidence": {
            "type": [
              "string",
              "null"
            ]
          },
          "source": {
            "type": "string",
            "enum": [
              "model",
              "deterministic"
            ]
          }
        },
        "required": [
          "index",
          "description",
          "material",
          "factorKey",
          "factor",
          "factorBasis",
          "matchedBy",
          "unit",
          "quantity",
          "quantityNormalised",
          "normalisedUnit",
          "valueKgCo2e",
          "evidence",
          "source"
        ]
      },
      "PlanCheck": {
        "type": "object",
        "properties": {
          "planName": {
            "type": "string"
          },
          "products": {
            "type": "object",
            "properties": {
              "limit": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "used": {
                "type": "number"
              },
              "remaining": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "adding": {
                "type": "number"
              }
            },
            "required": [
              "limit",
              "used",
              "remaining",
              "adding"
            ]
          },
          "categories": {
            "type": "object",
            "properties": {
              "limit": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "used": {
                "type": "number"
              },
              "remaining": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "adding": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "required": [
              "limit",
              "used",
              "remaining",
              "adding"
            ]
          },
          "exceeded": {
            "type": "boolean"
          },
          "message": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "planName",
          "products",
          "categories",
          "exceeded",
          "message"
        ]
      },
      "Product": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "workspaceId": {
            "type": [
              "string",
              "null"
            ]
          },
          "modelId": {
            "type": [
              "string",
              "null"
            ]
          },
          "variantAttributes": {},
          "name": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "gtin": {
            "type": [
              "string",
              "null"
            ]
          },
          "category": {
            "type": "string"
          },
          "brand": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "manufacturerName": {
            "type": [
              "string",
              "null"
            ]
          },
          "manufacturerCountry": {
            "type": [
              "string",
              "null"
            ]
          },
          "metadata": {},
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "workspaceId",
          "modelId",
          "variantAttributes",
          "name",
          "sku",
          "gtin",
          "category",
          "brand",
          "description",
          "manufacturerName",
          "manufacturerCountry",
          "metadata",
          "createdAt",
          "updatedAt"
        ]
      },
      "Product2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "brand": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "workspaceId": {
            "type": [
              "string",
              "null"
            ]
          },
          "modelId": {
            "type": [
              "string",
              "null"
            ]
          },
          "variantAttributes": {},
          "sku": {
            "type": "string"
          },
          "gtin": {
            "type": [
              "string",
              "null"
            ]
          },
          "category": {
            "type": "string"
          },
          "manufacturerName": {
            "type": [
              "string",
              "null"
            ]
          },
          "manufacturerCountry": {
            "type": [
              "string",
              "null"
            ]
          },
          "metadata": {}
        },
        "required": [
          "id",
          "organizationId",
          "name",
          "brand",
          "createdAt",
          "description",
          "updatedAt",
          "workspaceId",
          "modelId",
          "variantAttributes",
          "sku",
          "gtin",
          "category",
          "manufacturerName",
          "manufacturerCountry",
          "metadata"
        ]
      },
      "ProductImportRow": {
        "type": "object",
        "properties": {
          "line": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "brand": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "gtin": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "manufacturerName": {
            "type": "string"
          },
          "manufacturerCountry": {
            "type": "string"
          },
          "imageUrl": {
            "type": "string"
          },
          "modelNumber": {
            "type": "string"
          },
          "manufacturerDuns": {
            "type": "string"
          },
          "importerName": {
            "type": "string"
          },
          "importerCountry": {
            "type": "string"
          },
          "importerEori": {
            "type": "string"
          },
          "authorizedRepName": {
            "type": "string"
          },
          "authorizedRepCountry": {
            "type": "string"
          }
        },
        "required": [
          "line"
        ]
      },
      "ProductModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "brand": {
            "type": [
              "string",
              "null"
            ]
          },
          "workspaceId": {
            "type": [
              "string",
              "null"
            ]
          },
          "variantAxes": {},
          "sharedData": {},
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "code",
          "name",
          "category",
          "brand",
          "workspaceId",
          "variantAxes",
          "sharedData",
          "createdBy",
          "createdAt",
          "updatedAt"
        ]
      },
      "ProductModel2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "brand": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "workspaceId": {
            "type": [
              "string",
              "null"
            ]
          },
          "category": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "variantAxes": {},
          "sharedData": {}
        },
        "required": [
          "id",
          "organizationId",
          "name",
          "brand",
          "createdAt",
          "createdBy",
          "updatedAt",
          "workspaceId",
          "category",
          "code",
          "variantAxes",
          "sharedData"
        ]
      },
      "PropagationGap": {
        "type": "object",
        "properties": {
          "cas": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "entity": {
            "type": "string"
          },
          "tier": {
            "type": "number"
          },
          "percent": {
            "type": [
              "number",
              "null"
            ]
          },
          "message": {
            "type": "string"
          },
          "severity": {
            "type": "string",
            "enum": [
              "error",
              "warning"
            ]
          }
        },
        "required": [
          "cas",
          "name",
          "entity",
          "tier",
          "percent",
          "message",
          "severity"
        ]
      },
      "PublicObligation": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "regulation": {
            "type": "string"
          },
          "locator": {
            "type": "string"
          },
          "effectiveFrom": {
            "type": [
              "string",
              "null"
            ]
          },
          "dateType": {
            "type": "string",
            "enum": [
              "fixed",
              "conditional",
              "indicative"
            ]
          },
          "when": {
            "type": "string"
          }
        },
        "required": [
          "title",
          "summary",
          "regulation",
          "locator",
          "effectiveFrom",
          "dateType",
          "when"
        ]
      },
      "RecycledClaim": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string"
          },
          "component": {
            "type": [
              "string",
              "null"
            ]
          },
          "material": {
            "type": "string"
          },
          "recycledPercent": {
            "type": "number"
          },
          "weightKg": {
            "type": [
              "number",
              "null"
            ]
          },
          "weightPercent": {
            "type": [
              "number",
              "null"
            ]
          },
          "weight": {
            "type": "number"
          },
          "weightUnit": {
            "type": "string",
            "enum": [
              "percent",
              "kg"
            ]
          },
          "weightPercentOfTotal": {
            "type": "number"
          },
          "weightable": {
            "type": "boolean"
          },
          "origin": {
            "type": [
              "string",
              "null"
            ]
          },
          "auditScheme": {
            "type": [
              "string",
              "null"
            ]
          },
          "substantiated": {
            "type": "boolean"
          },
          "critical": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CriticalMaterial"
              },
              {
                "type": "null"
              }
            ]
          },
          "target": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "percent": {
                    "type": "number"
                  },
                  "year": {
                    "type": "number"
                  },
                  "basis": {
                    "type": "string"
                  }
                },
                "required": [
                  "percent",
                  "year",
                  "basis"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "meetsTarget": {
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "required": [
          "path",
          "component",
          "material",
          "recycledPercent",
          "weightKg",
          "weightPercent",
          "weight",
          "weightUnit",
          "weightPercentOfTotal",
          "weightable",
          "origin",
          "auditScheme",
          "substantiated",
          "critical",
          "target",
          "meetsTarget"
        ]
      },
      "RecycledContentResult": {
        "type": "object",
        "properties": {
          "weightedPercent": {
            "type": [
              "number",
              "null"
            ]
          },
          "simpleAveragePercent": {
            "type": [
              "number",
              "null"
            ]
          },
          "weightBasisKg": {
            "type": [
              "number",
              "null"
            ]
          },
          "weightBasisPercent": {
            "type": [
              "number",
              "null"
            ]
          },
          "weightUnit": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "percent",
              "kg",
              null
            ]
          },
          "coveragePercent": {
            "type": "number"
          },
          "claims": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RecycledClaim"
            }
          },
          "unweightableClaims": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "material": {
                  "type": "string"
                },
                "recycledPercent": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "path": {
                  "type": "string"
                },
                "reason": {
                  "type": "string"
                }
              },
              "required": [
                "material",
                "recycledPercent",
                "path",
                "reason"
              ]
            }
          },
          "unsubstantiatedClaims": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "material": {
                  "type": "string"
                },
                "recycledPercent": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "path": {
                  "type": "string"
                },
                "reason": {
                  "type": "string"
                }
              },
              "required": [
                "material",
                "recycledPercent",
                "path",
                "reason"
              ]
            }
          },
          "criticalMaterials": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "material": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "strategic": {
                  "type": "boolean"
                },
                "critical": {
                  "type": "boolean"
                },
                "recycledPercent": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "origin": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "supplyRisk": {
                  "type": "string"
                },
                "meetsBenchmark": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                }
              },
              "required": [
                "material",
                "name",
                "strategic",
                "critical",
                "recycledPercent",
                "origin",
                "supplyRisk",
                "meetsBenchmark"
              ]
            }
          },
          "targets": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "material": {
                  "type": "string"
                },
                "recycledPercent": {
                  "type": "number"
                },
                "targetPercent": {
                  "type": "number"
                },
                "year": {
                  "type": "number"
                },
                "basis": {
                  "type": "string"
                },
                "meetsTarget": {
                  "type": "boolean"
                }
              },
              "required": [
                "material",
                "recycledPercent",
                "targetPercent",
                "year",
                "basis",
                "meetsTarget"
              ]
            }
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "note": {
            "type": "string"
          }
        },
        "required": [
          "weightedPercent",
          "simpleAveragePercent",
          "weightBasisKg",
          "weightBasisPercent",
          "weightUnit",
          "coveragePercent",
          "claims",
          "unweightableClaims",
          "unsubstantiatedClaims",
          "criticalMaterials",
          "targets",
          "warnings",
          "note"
        ]
      },
      "RecycledContentTarget": {
        "type": "object",
        "properties": {
          "material": {
            "type": "string"
          },
          "targets": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "year": {
                  "type": "number"
                },
                "percent": {
                  "type": "number"
                }
              },
              "required": [
                "year",
                "percent"
              ]
            }
          },
          "basis": {
            "type": "string"
          }
        },
        "required": [
          "material",
          "targets",
          "basis"
        ]
      },
      "RegistrationEntry": {
        "type": "object",
        "properties": {
          "dppId": {
            "type": "string"
          },
          "upi": {
            "type": "string"
          },
          "granularity": {
            "type": "string",
            "enum": [
              "batch",
              "model",
              "item"
            ]
          },
          "productGroup": {
            "type": [
              "string",
              "null"
            ]
          },
          "modelIdentifier": {
            "type": [
              "string",
              "null"
            ]
          },
          "batchIdentifier": {
            "type": [
              "string",
              "null"
            ]
          },
          "issues": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "dppId",
          "upi",
          "granularity",
          "productGroup",
          "modelIdentifier",
          "batchIdentifier",
          "issues"
        ]
      },
      "RegulationPack": {
        "type": "object",
        "properties": {
          "manifest": {
            "type": "object",
            "additionalProperties": {}
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Rule"
            }
          },
          "schema": {
            "type": "object",
            "additionalProperties": {}
          }
        },
        "required": [
          "manifest",
          "rules",
          "schema"
        ]
      },
      "RegulatoryImpactReport": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "reference": {
            "type": "string"
          },
          "versionNumber": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "fromVersion": {
            "type": [
              "string",
              "null"
            ]
          },
          "toVersion": {
            "type": [
              "string",
              "null"
            ]
          },
          "leadTimeDays": {
            "type": "number"
          },
          "breaking": {
            "type": "number"
          },
          "tightening": {
            "type": "number"
          },
          "easing": {
            "type": "number"
          },
          "editorial": {
            "type": "number"
          },
          "timing": {
            "type": "number"
          },
          "passportsInScope": {
            "type": "number"
          },
          "newlyFailing": {
            "type": "number"
          },
          "newlyPassing": {
            "type": "number"
          },
          "stillFailing": {
            "type": "number"
          },
          "payload": {},
          "issuedBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "issuedAt": {
            "type": "string",
            "format": "date-time"
          },
          "revokedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "revokedReason": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "organizationId",
          "reference",
          "versionNumber",
          "status",
          "code",
          "category",
          "fromVersion",
          "toVersion",
          "leadTimeDays",
          "breaking",
          "tightening",
          "easing",
          "editorial",
          "timing",
          "passportsInScope",
          "newlyFailing",
          "newlyPassing",
          "stillFailing",
          "payload",
          "issuedBy",
          "issuedAt",
          "revokedAt",
          "revokedReason"
        ]
      },
      "RegulatoryImpactReport2": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "payload": {},
          "category": {
            "type": "string"
          },
          "reference": {
            "type": "string"
          },
          "versionNumber": {
            "type": "number"
          },
          "code": {
            "type": "string"
          },
          "issuedBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "issuedAt": {
            "type": "string",
            "format": "date-time"
          },
          "revokedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "revokedReason": {
            "type": [
              "string",
              "null"
            ]
          },
          "breaking": {
            "type": "number"
          },
          "tightening": {
            "type": "number"
          },
          "easing": {
            "type": "number"
          },
          "editorial": {
            "type": "number"
          },
          "timing": {
            "type": "number"
          },
          "fromVersion": {
            "type": [
              "string",
              "null"
            ]
          },
          "toVersion": {
            "type": [
              "string",
              "null"
            ]
          },
          "leadTimeDays": {
            "type": "number"
          },
          "passportsInScope": {
            "type": "number"
          },
          "newlyFailing": {
            "type": "number"
          },
          "newlyPassing": {
            "type": "number"
          },
          "stillFailing": {
            "type": "number"
          }
        },
        "required": [
          "status",
          "id",
          "organizationId",
          "payload",
          "category",
          "reference",
          "versionNumber",
          "code",
          "issuedBy",
          "issuedAt",
          "revokedAt",
          "revokedReason",
          "breaking",
          "tightening",
          "easing",
          "editorial",
          "timing",
          "fromVersion",
          "toVersion",
          "leadTimeDays",
          "passportsInScope",
          "newlyFailing",
          "newlyPassing",
          "stillFailing"
        ]
      },
      "RemediationCampaign": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "reference": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "impactReference": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "fromVersion": {
            "type": [
              "string",
              "null"
            ]
          },
          "toVersion": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "dueDate": {
            "type": [
              "string",
              "null"
            ]
          },
          "ownerId": {
            "type": [
              "string",
              "null"
            ]
          },
          "lastCheckedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "closedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "closedBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "closeNote": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "organizationId",
          "reference",
          "title",
          "impactReference",
          "code",
          "category",
          "fromVersion",
          "toVersion",
          "status",
          "dueDate",
          "ownerId",
          "lastCheckedAt",
          "createdBy",
          "createdAt",
          "closedAt",
          "closedBy",
          "closeNote"
        ]
      },
      "RemediationItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "campaignId": {
            "type": "string"
          },
          "dppId": {
            "type": "string"
          },
          "baseline": {
            "type": "string"
          },
          "findings": {},
          "status": {
            "type": "string"
          },
          "supplierRequestId": {
            "type": [
              "string",
              "null"
            ]
          },
          "checkedVersion": {
            "type": [
              "number",
              "null"
            ]
          },
          "lastCheckFindings": {},
          "lastCheckedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "resolvedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "note": {
            "type": [
              "string",
              "null"
            ]
          },
          "revision": {
            "type": "number"
          },
          "updatedBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "campaignId",
          "dppId",
          "baseline",
          "findings",
          "status",
          "supplierRequestId",
          "checkedVersion",
          "lastCheckFindings",
          "lastCheckedAt",
          "resolvedAt",
          "note",
          "revision",
          "updatedBy",
          "updatedAt"
        ]
      },
      "RenderedSymbol": {
        "type": "object",
        "properties": {
          "symbology": {
            "type": "string",
            "enum": [
              "DataMatrix"
            ]
          },
          "encoding": {
            "type": "string",
            "enum": [
              "digital-link",
              "element-string"
            ]
          },
          "text": {
            "type": "string"
          },
          "human": {
            "type": "string"
          },
          "png": {
            "type": "string"
          },
          "svg": {
            "type": "string"
          },
          "width": {
            "type": "number"
          },
          "height": {
            "type": "number"
          }
        },
        "required": [
          "symbology",
          "encoding",
          "text",
          "human",
          "png",
          "svg",
          "width",
          "height"
        ]
      },
      "Repairability": {
        "type": "object",
        "properties": {
          "score": {
            "type": [
              "number",
              "null"
            ]
          },
          "coveragePercent": {
            "type": "number"
          },
          "completeness": {
            "type": "string",
            "enum": [
              "partial",
              "insufficient",
              "complete"
            ]
          },
          "class": {
            "type": [
              "string",
              "null"
            ]
          },
          "criteria": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "weightPercent": {
                  "type": "number"
                },
                "score": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "weighted": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "source": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "label",
                "weightPercent",
                "score",
                "weighted",
                "source"
              ]
            }
          },
          "declared": {
            "type": "object",
            "properties": {
              "sparePartsYears": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "softwareSupportYears": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "batteryReplaceability": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "disassemblyTimeMinutes": {
                "type": [
                  "number",
                  "null"
                ]
              }
            },
            "required": [
              "sparePartsYears",
              "softwareSupportYears",
              "batteryReplaceability",
              "disassemblyTimeMinutes"
            ]
          },
          "missing": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "caveat": {
            "type": "string"
          }
        },
        "required": [
          "score",
          "coveragePercent",
          "completeness",
          "class",
          "criteria",
          "declared",
          "missing",
          "caveat"
        ]
      },
      "ResolvedAttribute": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "number",
              "boolean",
              "date",
              "url",
              "gtin",
              "text",
              "integer",
              "enum"
            ]
          },
          "required": {
            "type": "boolean"
          },
          "requirement": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "enum": [
              "declared",
              "derived",
              "missing",
              "invalid"
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "path": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "missing",
              "invalid",
              "filled"
            ]
          },
          "message": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          }
        },
        "required": [
          "key",
          "label",
          "type",
          "required",
          "requirement",
          "source",
          "value",
          "path",
          "status"
        ]
      },
      "Restriction": {
        "type": "object",
        "properties": {
          "cas": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "entry": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "limitPercent": {
            "type": "number"
          }
        },
        "required": [
          "cas",
          "name",
          "entry",
          "scope",
          "limitPercent"
        ]
      },
      "RiskAssessmentInput": {
        "type": "object",
        "properties": {
          "dryRun": {
            "type": "boolean"
          },
          "note": {
            "type": "string"
          },
          "documentIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "RiskDimension": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "enum": [
              "quality",
              "labour",
              "environment",
              "governance",
              "sanctions",
              "logistics",
              "financial"
            ]
          },
          "label": {
            "type": "string"
          },
          "question": {
            "type": "string"
          },
          "riskPoints": {
            "type": "number"
          },
          "mitigationPoints": {
            "type": "number"
          },
          "netPoints": {
            "type": "number"
          },
          "status": {
            "type": "string",
            "enum": [
              "risk-found",
              "mitigated",
              "no-signal",
              "unassessable"
            ]
          },
          "signals": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "direction": {
                  "type": "string",
                  "enum": [
                    "risk",
                    "mitigation"
                  ]
                },
                "severity": {
                  "type": "string",
                  "enum": [
                    "low",
                    "medium",
                    "high"
                  ]
                },
                "weight": {
                  "type": "number"
                },
                "evidence": {
                  "type": "string"
                },
                "recordedBy": {
                  "type": "string"
                }
              },
              "required": [
                "key",
                "label",
                "direction",
                "severity",
                "weight",
                "evidence",
                "recordedBy"
              ]
            }
          }
        },
        "required": [
          "key",
          "label",
          "question",
          "riskPoints",
          "mitigationPoints",
          "netPoints",
          "status",
          "signals"
        ]
      },
      "RiskVerdict": {
        "type": "object",
        "properties": {
          "verdict": {
            "type": "string",
            "enum": [
              "partial",
              "unassessed",
              "assessed"
            ]
          },
          "reasons": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "note": {
            "type": "string"
          }
        },
        "required": [
          "verdict",
          "reasons",
          "note"
        ]
      },
      "RowOutcome": {
        "type": "object",
        "properties": {
          "line": {
            "type": "number"
          },
          "sku": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "category": {
            "type": [
              "string",
              "null"
            ]
          },
          "action": {
            "type": "string",
            "enum": [
              "error",
              "create",
              "update",
              "skip"
            ]
          },
          "message": {
            "type": "string"
          },
          "productId": {
            "type": "string"
          }
        },
        "required": [
          "line",
          "sku",
          "name",
          "category",
          "action"
        ]
      },
      "Rule": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "severity": {
            "type": "string",
            "enum": [
              "error",
              "info",
              "warning"
            ]
          },
          "message": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "effectiveFrom": {
            "type": "string"
          },
          "effectiveTo": {
            "type": "string"
          },
          "markets": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "when": {
            "type": "object",
            "properties": {
              "field": {
                "type": "string"
              },
              "operator": {
                "type": "string",
                "enum": [
                  "in",
                  "exists",
                  "eq"
                ]
              },
              "value": {}
            },
            "required": [
              "field",
              "operator"
            ]
          },
          "require": {
            "type": "object",
            "properties": {
              "field": {
                "type": "string"
              }
            },
            "required": [
              "field"
            ]
          },
          "requireWhen": {
            "type": "object",
            "properties": {
              "field": {
                "type": "string"
              },
              "operator": {
                "type": "string",
                "enum": [
                  "in",
                  "exists",
                  "eq"
                ]
              },
              "value": {},
              "require": {
                "type": "string"
              }
            },
            "required": [
              "field",
              "operator",
              "require"
            ]
          },
          "range": {
            "type": "object",
            "properties": {
              "field": {
                "type": "string"
              },
              "min": {
                "type": "number"
              },
              "max": {
                "type": "number"
              },
              "required": {
                "type": "boolean"
              }
            },
            "required": [
              "field"
            ]
          },
          "expiresWithinDays": {
            "type": "object",
            "properties": {
              "field": {
                "type": "string"
              },
              "days": {
                "type": "number"
              },
              "required": {
                "type": "boolean"
              }
            },
            "required": [
              "field",
              "days"
            ]
          },
          "notOlderThanDays": {
            "type": "object",
            "properties": {
              "field": {
                "type": "string"
              },
              "days": {
                "type": "number"
              },
              "warnWithinDays": {
                "type": "number"
              },
              "required": {
                "type": "boolean"
              }
            },
            "required": [
              "field",
              "days"
            ]
          },
          "pattern": {
            "type": "object",
            "properties": {
              "field": {
                "type": "string"
              },
              "regex": {
                "type": "string"
              },
              "flags": {
                "type": "string"
              }
            },
            "required": [
              "field",
              "regex"
            ]
          }
        },
        "required": [
          "id",
          "message"
        ]
      },
      "RuleChange": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "removed",
              "added",
              "changed"
            ]
          },
          "classes": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "breaking",
                "tightening",
                "easing",
                "editorial",
                "timing"
              ]
            }
          },
          "summary": {
            "type": "string"
          },
          "severityBefore": {
            "type": [
              "string",
              "null"
            ]
          },
          "severityAfter": {
            "type": [
              "string",
              "null"
            ]
          },
          "message": {
            "type": "string"
          },
          "source": {
            "type": [
              "string",
              "null"
            ]
          },
          "fieldChanges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FieldChange"
            }
          }
        },
        "required": [
          "id",
          "kind",
          "classes",
          "summary",
          "severityBefore",
          "severityAfter",
          "message",
          "fieldChanges"
        ]
      },
      "RuleSetDiff": {
        "type": "object",
        "properties": {
          "added": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RuleChange"
            }
          },
          "removed": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RuleChange"
            }
          },
          "changed": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RuleChange"
            }
          },
          "counts": {
            "type": "object",
            "properties": {
              "added": {
                "type": "number"
              },
              "removed": {
                "type": "number"
              },
              "changed": {
                "type": "number"
              },
              "breaking": {
                "type": "number"
              },
              "tightening": {
                "type": "number"
              },
              "easing": {
                "type": "number"
              },
              "editorial": {
                "type": "number"
              },
              "timing": {
                "type": "number"
              }
            },
            "required": [
              "added",
              "removed",
              "changed",
              "breaking",
              "tightening",
              "easing",
              "editorial",
              "timing"
            ]
          },
          "headline": {
            "type": "string"
          },
          "mayBreakExistingPassports": {
            "type": "boolean"
          }
        },
        "required": [
          "added",
          "removed",
          "changed",
          "counts",
          "headline",
          "mayBreakExistingPassports"
        ]
      },
      "ScanEvent": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "carrierId": {
            "type": "string"
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "device": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "createdAt",
          "carrierId",
          "country",
          "device"
        ]
      },
      "SchemaExtension": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "category": {
            "type": [
              "string",
              "null"
            ]
          },
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "enumValues": {},
          "pattern": {
            "type": [
              "string",
              "null"
            ]
          },
          "minValue": {
            "type": [
              "string",
              "null"
            ]
          },
          "maxValue": {
            "type": [
              "string",
              "null"
            ]
          },
          "unit": {
            "type": [
              "string",
              "null"
            ]
          },
          "active": {
            "type": "boolean"
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "category",
          "key",
          "label",
          "description",
          "type",
          "required",
          "enumValues",
          "pattern",
          "minValue",
          "maxValue",
          "unit",
          "active",
          "createdBy",
          "createdAt",
          "updatedAt"
        ]
      },
      "SchemaExtension2": {
        "type": "object",
        "properties": {
          "active": {
            "type": "boolean"
          },
          "type": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "enumValues": {},
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "category": {
            "type": [
              "string",
              "null"
            ]
          },
          "key": {
            "type": "string"
          },
          "unit": {
            "type": [
              "string",
              "null"
            ]
          },
          "label": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "pattern": {
            "type": [
              "string",
              "null"
            ]
          },
          "minValue": {
            "type": [
              "string",
              "null"
            ]
          },
          "maxValue": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "active",
          "type",
          "id",
          "organizationId",
          "createdAt",
          "enumValues",
          "description",
          "createdBy",
          "updatedAt",
          "category",
          "key",
          "unit",
          "label",
          "required",
          "pattern",
          "minValue",
          "maxValue"
        ]
      },
      "ScipDossier": {
        "type": "object",
        "properties": {
          "dossierVersion": {
            "type": "string"
          },
          "dppVersion": {
            "type": [
              "number",
              "null"
            ]
          },
          "candidateListVersion": {
            "type": "string"
          },
          "generatedAt": {
            "type": "string"
          },
          "organisation": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "country": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "name",
              "country"
            ]
          },
          "article": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "sku": {
                "type": "string"
              },
              "gtin": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "category": {
                "type": "string"
              },
              "dppId": {
                "type": "string"
              },
              "passportUrl": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "name",
              "sku",
              "gtin",
              "category",
              "dppId",
              "passportUrl"
            ]
          },
          "identifiers": {
            "type": "object",
            "properties": {
              "scipNumber": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "scipNumber"
            ]
          },
          "containsSvhc": {
            "type": "boolean"
          },
          "substances": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "cas": {
                  "type": "string"
                },
                "ec": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "concentrationRange": {
                  "type": "string"
                },
                "concentrationPercent": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "location": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "basis": {
                  "type": "string",
                  "enum": [
                    "component",
                    "whole-product",
                    "unstated"
                  ]
                },
                "articleReason": {
                  "type": "string"
                },
                "declaredBy": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "path": {
                  "type": "string"
                },
                "specificLimitPercent": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "annexXiv": {
                  "type": "boolean"
                },
                "restriction": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "entry": {
                          "type": "string"
                        },
                        "scope": {
                          "type": "string"
                        },
                        "limitPercent": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "entry",
                        "scope",
                        "limitPercent"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "name",
                "cas",
                "ec",
                "concentrationRange",
                "concentrationPercent",
                "location",
                "basis",
                "articleReason",
                "declaredBy",
                "path",
                "specificLimitPercent",
                "annexXiv",
                "restriction"
              ]
            }
          },
          "otherSubstances": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "cas": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "path": {
                  "type": "string"
                },
                "declaredBy": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "name",
                "cas",
                "path",
                "declaredBy"
              ]
            }
          },
          "obligations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScreeningObligation"
            }
          },
          "safeUseInstructions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "checklist": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "item": {
                  "type": "string"
                },
                "done": {
                  "type": "boolean"
                },
                "where": {
                  "type": "string"
                }
              },
              "required": [
                "item",
                "done",
                "where"
              ]
            }
          },
          "submission": {
            "type": "object",
            "properties": {
              "target": {
                "type": "string"
              },
              "format": {
                "type": "string"
              },
              "note": {
                "type": "string"
              }
            },
            "required": [
              "target",
              "format",
              "note"
            ]
          },
          "disclaimer": {
            "type": "string"
          }
        },
        "required": [
          "dossierVersion",
          "dppVersion",
          "candidateListVersion",
          "generatedAt",
          "organisation",
          "article",
          "identifiers",
          "containsSvhc",
          "substances",
          "otherSubstances",
          "obligations",
          "safeUseInstructions",
          "checklist",
          "submission",
          "disclaimer"
        ]
      },
      "Screening": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "no-declaration",
              "svhc-present",
              "svhc-below-threshold",
              "restricted-substance",
              "no-svhc"
            ]
          },
          "productType": {
            "type": "string",
            "enum": [
              "unknown",
              "article",
              "mixture"
            ]
          },
          "thresholdPercent": {
            "type": "number"
          },
          "declaredCount": {
            "type": "number"
          },
          "hits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubstanceHit"
            }
          },
          "belowThreshold": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubstanceHit"
            }
          },
          "unresolved": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScreeningUnresolved"
            }
          },
          "watched": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubstanceHit"
            }
          },
          "obligations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScreeningObligation"
            }
          },
          "scip": {
            "type": "object",
            "properties": {
              "required": {
                "type": "boolean"
              },
              "number": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "satisfied": {
                "type": "boolean"
              },
              "reason": {
                "type": "string"
              }
            },
            "required": [
              "required",
              "number",
              "satisfied",
              "reason"
            ]
          },
          "markets": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "missingInputs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "declarationPaths": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "status",
          "productType",
          "thresholdPercent",
          "declaredCount",
          "hits",
          "belowThreshold",
          "unresolved",
          "watched",
          "obligations",
          "scip",
          "markets",
          "warnings",
          "missingInputs",
          "declarationPaths"
        ]
      },
      "ScreeningObligation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "regulation": {
            "type": "string"
          },
          "requirement": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "satisfied",
              "outstanding",
              "not-applicable"
            ]
          },
          "field": {
            "type": "string"
          },
          "note": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "regulation",
          "requirement",
          "status",
          "note"
        ]
      },
      "ScreeningUnresolved": {
        "type": "object",
        "properties": {
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "cas": {
            "type": [
              "string",
              "null"
            ]
          },
          "path": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "cas",
          "path",
          "reason"
        ]
      },
      "SdsPackage": {
        "type": "object",
        "properties": {
          "revision": {
            "type": "string"
          },
          "revisionNote": {
            "type": [
              "string",
              "null"
            ]
          },
          "dppVersion": {
            "type": [
              "number",
              "null"
            ]
          },
          "generatedAt": {
            "type": "string"
          },
          "language": {
            "type": "string"
          },
          "product": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "sku": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "gtin": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "category": {
                "type": "string"
              },
              "dppId": {
                "type": "string"
              }
            },
            "required": [
              "name",
              "sku",
              "gtin",
              "category",
              "dppId"
            ]
          },
          "sections": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "number": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "platformFilled": {
                  "type": "boolean"
                },
                "content": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "additionalProperties": {}
                },
                "requiresAuthoring": {
                  "type": "string"
                }
              },
              "required": [
                "number",
                "title",
                "platformFilled",
                "content"
              ]
            }
          },
          "filledSections": {
            "type": "number"
          },
          "requiresAuthoring": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "label": {
            "$ref": "#/components/schemas/Label"
          },
          "transport": {
            "type": "object",
            "properties": {
              "substances": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "cas": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "unNumber": {
                      "type": "string"
                    },
                    "properShippingName": {
                      "type": "string"
                    },
                    "hazardClass": {
                      "type": "string"
                    },
                    "packingGroup": {
                      "type": "string"
                    },
                    "label": {
                      "type": "string"
                    },
                    "tunnelCode": {
                      "type": "string"
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "cas",
                    "name",
                    "unNumber",
                    "properShippingName",
                    "hazardClass",
                    "packingGroup",
                    "label"
                  ]
                }
              },
              "note": {
                "type": "string"
              }
            },
            "required": [
              "substances",
              "note"
            ]
          },
          "waste": {
            "type": "object",
            "properties": {
              "codes": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "from": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "code",
                    "description",
                    "from"
                  ]
                }
              },
              "note": {
                "type": "string"
              }
            },
            "required": [
              "codes",
              "note"
            ]
          },
          "identifiers": {
            "type": "object",
            "properties": {
              "ufi": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "ufiOfficial": {
                "type": "boolean"
              },
              "ufiNote": {
                "type": "string"
              },
              "reachRegistration": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "ufi",
              "ufiOfficial",
              "ufiNote",
              "reachRegistration"
            ]
          },
          "disclaimer": {
            "type": "string"
          }
        },
        "required": [
          "revision",
          "generatedAt",
          "language",
          "product",
          "sections",
          "filledSections",
          "requiresAuthoring",
          "label",
          "transport",
          "waste",
          "identifiers",
          "disclaimer"
        ]
      },
      "SdsRecord": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "dppId": {
            "type": "string"
          },
          "payload": {},
          "reference": {
            "type": "string"
          },
          "classified": {
            "type": "boolean"
          },
          "ufi": {
            "type": [
              "string",
              "null"
            ]
          },
          "language": {
            "type": "string"
          },
          "revision": {
            "type": "string"
          },
          "revisionNumber": {
            "type": "number"
          },
          "clpSubsetVersion": {
            "type": "string"
          },
          "signalWord": {
            "type": [
              "string",
              "null"
            ]
          },
          "pictograms": {
            "type": "number"
          },
          "hazardStatements": {
            "type": "number"
          },
          "rulesToVerify": {
            "type": "number"
          },
          "unresolvedComponents": {
            "type": "number"
          },
          "filledSections": {
            "type": "number"
          },
          "requiresAuthoring": {
            "type": "number"
          },
          "labelSnapshot": {},
          "issuedBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "issuedAt": {
            "type": "string",
            "format": "date-time"
          },
          "supersededAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "revokedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "revokedReason": {
            "type": [
              "string",
              "null"
            ]
          },
          "nextReviewAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        },
        "required": [
          "status",
          "id",
          "organizationId",
          "dppId",
          "payload",
          "reference",
          "classified",
          "ufi",
          "language",
          "revision",
          "revisionNumber",
          "clpSubsetVersion",
          "signalWord",
          "pictograms",
          "hazardStatements",
          "rulesToVerify",
          "unresolvedComponents",
          "filledSections",
          "requiresAuthoring",
          "labelSnapshot",
          "issuedBy",
          "issuedAt",
          "supersededAt",
          "revokedAt",
          "revokedReason",
          "nextReviewAt"
        ]
      },
      "SignedUrl": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          },
          "method": {
            "type": "string",
            "enum": [
              "signed",
              "proxied"
            ]
          }
        },
        "required": [
          "url",
          "expiresAt",
          "method"
        ]
      },
      "SourceRef": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string",
            "enum": [
              "passport",
              "document",
              "attested"
            ]
          },
          "documentId": {
            "type": [
              "string",
              "null"
            ]
          },
          "label": {
            "type": "string"
          },
          "confidence": {
            "type": [
              "string",
              "null"
            ]
          },
          "issuedAt": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "kind",
          "label"
        ]
      },
      "SplitInput": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number"
          },
          "serials": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "data": {
            "type": "object",
            "additionalProperties": {}
          },
          "serialField": {
            "type": "string"
          },
          "batch": {
            "type": "string"
          },
          "publish": {
            "type": "boolean"
          },
          "note": {
            "type": "string"
          }
        }
      },
      "SubscriptionInput": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "secret": {
            "type": [
              "string",
              "null"
            ]
          },
          "filters": {},
          "active": {
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "url"
        ]
      },
      "SubstanceHit": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "cas": {
            "type": "string"
          },
          "ec": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "concentrationPercent": {
            "type": [
              "number",
              "null"
            ]
          },
          "concentrationRange": {
            "type": "string"
          },
          "limitPercent": {
            "type": "number"
          },
          "exceedsThreshold": {
            "type": "boolean"
          },
          "annexXiv": {
            "type": "boolean"
          },
          "restricted": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "entry": {
                    "type": "string"
                  },
                  "scope": {
                    "type": "string"
                  },
                  "limitPercent": {
                    "type": "number"
                  }
                },
                "required": [
                  "entry",
                  "scope",
                  "limitPercent"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "restrictedExceeded": {
            "type": "boolean"
          },
          "watchlisted": {
            "type": "boolean"
          },
          "location": {
            "type": [
              "string",
              "null"
            ]
          },
          "basis": {
            "type": "string",
            "enum": [
              "component",
              "whole-product",
              "unstated"
            ]
          },
          "basisUndetermined": {
            "type": "boolean"
          },
          "path": {
            "type": "string"
          },
          "declaredBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "addedOn": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "cas",
          "reason",
          "concentrationPercent",
          "concentrationRange",
          "limitPercent",
          "exceedsThreshold",
          "annexXiv",
          "restricted",
          "restrictedExceeded",
          "watchlisted",
          "location",
          "basis",
          "path",
          "declaredBy"
        ]
      },
      "Supplier": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "metadata": {},
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "email": {
            "type": [
              "string",
              "null"
            ]
          },
          "trustScore": {
            "type": [
              "number",
              "null"
            ]
          },
          "tier": {
            "type": "number"
          },
          "viaSupplierId": {
            "type": [
              "string",
              "null"
            ]
          },
          "identityWithheld": {
            "type": "boolean"
          },
          "withheldContact": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "organizationId",
          "name",
          "createdAt",
          "metadata",
          "country",
          "email",
          "trustScore",
          "tier",
          "viaSupplierId",
          "identityWithheld",
          "withheldContact"
        ]
      },
      "SupplierPortalDocument": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "instructions": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "uploaded": {
            "type": "object",
            "properties": {
              "filename": {
                "type": "string"
              },
              "size": {
                "type": "number"
              },
              "uploadedAt": {
                "type": "string"
              }
            },
            "required": [
              "filename",
              "size",
              "uploadedAt"
            ]
          }
        },
        "required": [
          "name",
          "id"
        ]
      },
      "SupplierRequest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "supplierId": {
            "type": "string"
          },
          "dppId": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": "string"
          },
          "requestedFields": {},
          "requestItems": {},
          "requestedDocuments": {},
          "message": {
            "type": [
              "string",
              "null"
            ]
          },
          "responseData": {},
          "respondedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "inviteTokenHash": {
            "type": [
              "string",
              "null"
            ]
          },
          "inviteSentAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "inviteExpiresAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "parentRequestId": {
            "type": [
              "string",
              "null"
            ]
          },
          "tier": {
            "type": "number"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "supplierId",
          "dppId",
          "status",
          "requestedFields",
          "requestItems",
          "requestedDocuments",
          "message",
          "responseData",
          "respondedAt",
          "inviteTokenHash",
          "inviteSentAt",
          "inviteExpiresAt",
          "parentRequestId",
          "tier",
          "createdAt",
          "updatedAt"
        ]
      },
      "SupplierRequest2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "dppId": {
            "type": [
              "string",
              "null"
            ]
          },
          "supplierId": {
            "type": "string"
          },
          "tier": {
            "type": "number"
          },
          "requestedFields": {},
          "requestItems": {},
          "requestedDocuments": {},
          "message": {
            "type": [
              "string",
              "null"
            ]
          },
          "responseData": {},
          "respondedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "inviteTokenHash": {
            "type": [
              "string",
              "null"
            ]
          },
          "inviteSentAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "inviteExpiresAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "parentRequestId": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "organizationId",
          "createdAt",
          "status",
          "updatedAt",
          "dppId",
          "supplierId",
          "tier",
          "requestedFields",
          "requestItems",
          "requestedDocuments",
          "message",
          "responseData",
          "respondedAt",
          "inviteTokenHash",
          "inviteSentAt",
          "inviteExpiresAt",
          "parentRequestId"
        ]
      },
      "SupplierRequestItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "material",
              "substance"
            ]
          },
          "name": {
            "type": "string"
          },
          "fields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "instructions": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "kind",
          "name",
          "fields"
        ]
      },
      "SupplierRiskAssessment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "supplierId": {
            "type": "string"
          },
          "reference": {
            "type": "string"
          },
          "versionNumber": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "riskVersion": {
            "type": "string"
          },
          "catalogueVersion": {
            "type": "string"
          },
          "provider": {
            "type": "string"
          },
          "model": {
            "type": [
              "string",
              "null"
            ]
          },
          "degraded": {
            "type": "boolean"
          },
          "providerError": {
            "type": [
              "string",
              "null"
            ]
          },
          "latencyMs": {
            "type": [
              "number",
              "null"
            ]
          },
          "responsesCount": {
            "type": "number"
          },
          "documentsCount": {
            "type": "number"
          },
          "readableDocuments": {
            "type": "number"
          },
          "evidenceCharacters": {
            "type": "number"
          },
          "deterministicScore": {
            "type": "number"
          },
          "deterministicLevel": {
            "type": "string"
          },
          "riskPoints": {
            "type": "number"
          },
          "mitigationPoints": {
            "type": "number"
          },
          "netRiskPoints": {
            "type": "number"
          },
          "penalty": {
            "type": "number"
          },
          "combinedIndex": {
            "type": "number"
          },
          "combinedLevel": {
            "type": "string"
          },
          "acceptedCount": {
            "type": "number"
          },
          "droppedCount": {
            "type": "number"
          },
          "ignoredCount": {
            "type": "number"
          },
          "unassessableCount": {
            "type": "number"
          },
          "verdict": {
            "type": "string"
          },
          "payload": {},
          "note": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "revokedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "revokedBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "revokeReason": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "organizationId",
          "supplierId",
          "reference",
          "versionNumber",
          "status",
          "riskVersion",
          "catalogueVersion",
          "provider",
          "model",
          "degraded",
          "providerError",
          "latencyMs",
          "responsesCount",
          "documentsCount",
          "readableDocuments",
          "evidenceCharacters",
          "deterministicScore",
          "deterministicLevel",
          "riskPoints",
          "mitigationPoints",
          "netRiskPoints",
          "penalty",
          "combinedIndex",
          "combinedLevel",
          "acceptedCount",
          "droppedCount",
          "ignoredCount",
          "unassessableCount",
          "verdict",
          "payload",
          "note",
          "createdBy",
          "createdAt",
          "revokedAt",
          "revokedBy",
          "revokeReason"
        ]
      },
      "SvhcListAge": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string"
          },
          "ageDays": {
            "type": "number"
          },
          "stale": {
            "type": "boolean"
          },
          "nextExpectedUpdate": {
            "type": "string"
          },
          "entries": {
            "type": "number"
          },
          "coverage": {
            "type": "string",
            "enum": [
              "subset"
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "version",
          "ageDays",
          "stale",
          "nextExpectedUpdate",
          "entries",
          "coverage",
          "message"
        ]
      },
      "TaxonomyResult": {
        "type": "object",
        "properties": {
          "reference": {
            "type": "object",
            "properties": {
              "version": {
                "type": "string"
              },
              "activity": {
                "type": "string"
              },
              "gwpPerSquareMetreThresholdKgCo2e": {
                "type": "number"
              },
              "note": {
                "type": "string"
              }
            },
            "required": [
              "version",
              "activity",
              "gwpPerSquareMetreThresholdKgCo2e",
              "note"
            ]
          },
          "substantialContribution": {
            "type": "object",
            "properties": {
              "eligible": {
                "type": "boolean"
              },
              "criterion": {
                "type": "string"
              },
              "value": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "threshold": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "perSquareMetre": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "floorAreaM2": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "note": {
                "type": "string"
              }
            },
            "required": [
              "eligible",
              "criterion",
              "value",
              "threshold",
              "perSquareMetre",
              "floorAreaM2",
              "note"
            ]
          },
          "dnsh": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "expects": {
                  "type": "string"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "aligned",
                    "not-aligned",
                    "not-assessed"
                  ]
                },
                "evidence": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "key",
                "label",
                "expects",
                "status",
                "evidence"
              ]
            }
          },
          "minimumSafeguards": {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "aligned",
                  "not-aligned",
                  "not-assessed"
                ]
              },
              "note": {
                "type": "string"
              }
            },
            "required": [
              "status",
              "note"
            ]
          },
          "counts": {
            "type": "object",
            "properties": {
              "assessed": {
                "type": "number"
              },
              "aligned": {
                "type": "number"
              },
              "notAligned": {
                "type": "number"
              },
              "notAssessed": {
                "type": "number"
              },
              "total": {
                "type": "number"
              }
            },
            "required": [
              "assessed",
              "aligned",
              "notAligned",
              "notAssessed",
              "total"
            ]
          },
          "verdict": {
            "type": "string",
            "enum": [
              "aligned",
              "not-aligned",
              "not-assessed",
              "partially-assessed"
            ]
          },
          "caveat": {
            "type": "string"
          }
        },
        "required": [
          "reference",
          "substantialContribution",
          "dnsh",
          "minimumSafeguards",
          "counts",
          "verdict",
          "caveat"
        ]
      },
      "TransferInput": {
        "type": "object",
        "properties": {
          "ownerType": {
            "type": "string",
            "enum": [
              "other",
              "manufacturer",
              "distributor",
              "retailer",
              "consumer",
              "repairer",
              "recycler",
              "lessee"
            ]
          },
          "ownerRef": {
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "transferRef": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "occurredAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          }
        },
        "required": [
          "ownerType"
        ]
      },
      "TranslateInput": {
        "type": "object",
        "properties": {
          "locales": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "paths": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "overwrite": {
            "type": "boolean"
          },
          "dryRun": {
            "type": "boolean"
          },
          "note": {
            "type": "string"
          }
        }
      },
      "UiField": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "number",
              "boolean",
              "object",
              "array",
              "json",
              "text",
              "enum"
            ]
          },
          "required": {
            "type": "boolean"
          },
          "options": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "optionLabels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "minimum": {
            "type": "number"
          },
          "maximum": {
            "type": "number"
          },
          "minLength": {
            "type": "number"
          },
          "maxLength": {
            "type": "number"
          },
          "description": {
            "type": "string"
          },
          "requiredLevel": {
            "type": "string",
            "enum": [
              "error",
              "info",
              "warning"
            ]
          },
          "requiredIf": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "unit": {
            "type": "string"
          },
          "examples": {
            "type": "array",
            "items": {}
          },
          "widget": {
            "type": "string"
          },
          "deprecated": {
            "type": "boolean"
          },
          "children": {
            "type": "array",
            "items": {}
          }
        },
        "required": [
          "path",
          "label",
          "kind",
          "required"
        ]
      },
      "UnplacedBomLine": {
        "type": "object",
        "properties": {
          "index": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "index",
          "text",
          "reason"
        ]
      },
      "UnresolvedBomLine": {
        "type": "object",
        "properties": {
          "index": {
            "type": [
              "number",
              "null"
            ]
          },
          "material": {
            "type": "string"
          },
          "quantity": {
            "type": [
              "number",
              "null"
            ]
          },
          "unit": {
            "type": [
              "string",
              "null"
            ]
          },
          "reason": {
            "type": "string"
          },
          "action": {
            "type": "string"
          }
        },
        "required": [
          "index",
          "material",
          "quantity",
          "unit",
          "reason",
          "action"
        ]
      },
      "UpsertInput": {
        "type": "object",
        "properties": {
          "fields": {
            "type": "object",
            "additionalProperties": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "status": {
            "type": "string"
          },
          "replace": {
            "type": "boolean"
          },
          "note": {
            "type": "string"
          },
          "confirm": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "provenance": {
            "type": "object",
            "properties": {
              "source": {
                "type": "string",
                "enum": [
                  "machine-draft"
                ]
              },
              "provider": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "model": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "glossaryVersion": {
                "type": "string"
              },
              "sourceHash": {
                "type": "string"
              },
              "quality": {},
              "qualityVerdict": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "source",
              "provider",
              "model",
              "glossaryVersion",
              "sourceHash"
            ]
          }
        },
        "required": [
          "fields"
        ]
      },
      "ValidationRun": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "dppId": {
            "type": "string"
          },
          "dppVersion": {
            "type": "number"
          },
          "packCode": {
            "type": "string"
          },
          "packVersion": {
            "type": "string"
          },
          "score": {
            "type": "number"
          },
          "compliant": {
            "type": "boolean"
          },
          "result": {},
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "dppId",
          "dppVersion",
          "packCode",
          "packVersion",
          "score",
          "compliant",
          "result",
          "createdAt"
        ]
      },
      "VerifiableCredentialBody": {
        "type": "object",
        "properties": {
          "@context": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "id": {
            "type": "string"
          },
          "type": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "issuer": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            },
            "required": [
              "id"
            ]
          },
          "validFrom": {
            "type": "string"
          },
          "validUntil": {
            "type": "string"
          },
          "credentialStatus": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "type": {
                "type": "string"
              },
              "statusPurpose": {
                "type": "string"
              },
              "statusListIndex": {
                "type": "string"
              },
              "statusListCredential": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "type",
              "statusPurpose",
              "statusListIndex",
              "statusListCredential"
            ]
          },
          "credentialSubject": {
            "$ref": "#/components/schemas/DppCredentialSubject"
          }
        },
        "required": [
          "@context",
          "type",
          "issuer",
          "validFrom",
          "validUntil",
          "credentialSubject"
        ]
      },
      "VerifiableCredentialClaims": {
        "type": "object",
        "properties": {
          "@context": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "id": {
            "type": "string"
          },
          "type": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "issuer": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            },
            "required": [
              "id"
            ]
          },
          "validFrom": {
            "type": "string"
          },
          "validUntil": {
            "type": "string"
          },
          "credentialStatus": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "type": {
                "type": "string"
              },
              "statusPurpose": {
                "type": "string"
              },
              "statusListIndex": {
                "type": "string"
              },
              "statusListCredential": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "type",
              "statusPurpose",
              "statusListIndex",
              "statusListCredential"
            ]
          },
          "credentialSubject": {
            "$ref": "#/components/schemas/DppCredentialSubject"
          },
          "iss": {
            "type": "string"
          },
          "sub": {
            "type": "string"
          },
          "jti": {
            "type": "string"
          },
          "iat": {
            "type": "number"
          },
          "nbf": {
            "type": "number"
          },
          "exp": {
            "type": "number"
          },
          "vc": {
            "$ref": "#/components/schemas/VerifiableCredentialBody"
          }
        },
        "required": [
          "@context",
          "type",
          "issuer",
          "validFrom",
          "validUntil",
          "credentialSubject",
          "iss",
          "sub",
          "jti",
          "iat",
          "nbf",
          "exp"
        ]
      },
      "VerificationMethod": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "controller": {
            "type": "string"
          },
          "publicKeyJwk": {
            "type": "object",
            "additionalProperties": {}
          },
          "publicKeyMultibase": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ]
      },
      "WebhookDelivery": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "webhookId": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "event": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "statusCode": {
            "type": [
              "number",
              "null"
            ]
          },
          "ok": {
            "type": "boolean"
          },
          "error": {
            "type": [
              "string",
              "null"
            ]
          },
          "attempts": {
            "type": [
              "number",
              "null"
            ]
          },
          "payload": {},
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "webhookId",
          "organizationId",
          "event",
          "url",
          "statusCode",
          "ok",
          "error",
          "attempts",
          "payload",
          "createdAt"
        ]
      },
      "WidgetPayload": {
        "type": "object",
        "properties": {
          "dppId": {
            "type": "string"
          },
          "passportUrl": {
            "type": "string"
          },
          "digitalLinkUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "qrImageUrl": {
            "type": "string"
          },
          "product": {
            "type": "object",
            "properties": {
              "name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "sku": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "gtin": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "category": {
                "type": "string"
              }
            },
            "required": [
              "name",
              "sku",
              "gtin",
              "category"
            ]
          },
          "issuer": {
            "type": "object",
            "properties": {
              "name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "tagline": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "logo": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "primaryColor": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "supportUrl": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "name",
              "tagline",
              "logo",
              "primaryColor",
              "supportUrl"
            ]
          },
          "version": {
            "type": "number"
          },
          "publishedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "compliance": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "compliant",
                      "not_compliant",
                      "readiness_passed",
                      "needs_attention"
                    ]
                  },
                  "assessmentStatus": {
                    "type": "string",
                    "enum": [
                      "readiness_only",
                      "legally_assessed"
                    ]
                  },
                  "readinessScore": {
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "readinessGrade": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "fresh": {
                    "type": "boolean"
                  },
                  "runAt": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "status",
                  "assessmentStatus",
                  "readinessScore",
                  "readinessGrade",
                  "fresh",
                  "runAt"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "badges": {
            "type": "object",
            "properties": {
              "repairability": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "class": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "score": {
                        "type": [
                          "number",
                          "null"
                        ]
                      },
                      "sparePartsYears": {
                        "type": [
                          "number",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "class",
                      "score",
                      "sparePartsYears"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "recycledContent": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "weightedPercent": {
                        "type": [
                          "number",
                          "null"
                        ]
                      },
                      "weightBasisKg": {
                        "type": [
                          "number",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "weightedPercent",
                      "weightBasisKg"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "carbonFootprint": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "kgCo2e": {
                        "type": [
                          "number",
                          "null"
                        ]
                      },
                      "path": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "kgCo2e",
                      "path"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "substances": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "svhcPresent": {
                        "type": [
                          "boolean",
                          "null"
                        ]
                      },
                      "basis": {
                        "type": "string",
                        "enum": [
                          "declared",
                          "screened",
                          "none"
                        ]
                      },
                      "aboveThreshold": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "svhcPresent",
                      "basis",
                      "aboveThreshold"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "criticalMaterials": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "required": [
              "repairability",
              "recycledContent",
              "carbonFootprint",
              "substances",
              "criticalMaterials"
            ]
          },
          "label": {
            "type": "string"
          },
          "generatedAt": {
            "type": "string"
          },
          "caveat": {
            "type": "string"
          }
        },
        "required": [
          "dppId",
          "passportUrl",
          "digitalLinkUrl",
          "qrImageUrl",
          "product",
          "issuer",
          "version",
          "publishedAt",
          "compliance",
          "badges",
          "label",
          "generatedAt",
          "caveat"
        ]
      },
      "WithheldField": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "tiers": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "recycler",
                "authority",
                "legitimate_interest",
                "service"
              ]
            }
          }
        },
        "required": [
          "path",
          "label",
          "tiers"
        ]
      },
      "WorkingDraft": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "entityKind": {
            "type": "string"
          },
          "entityId": {
            "type": "string"
          },
          "baseVersion": {
            "type": "number"
          },
          "schemaVersion": {
            "type": "string"
          },
          "data": {},
          "revision": {
            "type": "number"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "organizationId",
          "userId",
          "entityKind",
          "entityId",
          "baseVersion",
          "schemaVersion",
          "data",
          "revision",
          "updatedAt"
        ]
      },
      "Workspace": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "brand": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "organizationId",
          "name",
          "slug",
          "brand",
          "createdAt"
        ]
      }
    },
    "securitySchemes": {
      "apiKey": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key"
      },
      "bearer": {
        "type": "http",
        "scheme": "bearer",
        "description": "An API key (dpk_…) as a bearer token"
      }
    }
  },
  "tags": [
    {
      "name": "Products",
      "description": "Product identities (name, SKU, GTIN, category, manufacturer and economic operators) that every passport version refers to. Includes search, CSV import with a dry run, and deletion of products that never had a published passport."
    },
    {
      "name": "Passports",
      "description": "Digital Product Passports: create and edit versioned passport data, validate it against the category's regulation pack, publish, recall, archive, and read history, diffs, supply chain and per-passport records."
    },
    {
      "name": "Documents",
      "description": "Evidence documents (certificates, test reports, declarations) attached to passports. Uploads are type-checked and virus-scanned; access levels control what becomes public."
    },
    {
      "name": "Suppliers",
      "description": "Supplier records, data requests sent to suppliers, and supplier risk assessments."
    },
    {
      "name": "Public passport access",
      "description": "Read-only endpoints behind QR codes and GS1 Digital Links: published passport data, its public documents and labels. No API key needed."
    },
    {
      "name": "Service",
      "description": "Service health and the public status summary."
    },
    {
      "name": "Store sync (Shopify / WooCommerce)",
      "description": "Connect a Shopify or WooCommerce store, import its products into the catalogue, export catalogue products as draft listings, and opt in to a daily sync of linked products."
    },
    {
      "name": "Marketplace channels",
      "description": "Marketplace and storefront feeds (for example Amazon, Zalando, Shopify): per-channel readiness, generated feeds and recorded submissions."
    },
    {
      "name": "Webhooks",
      "description": "Subscribe an HTTPS endpoint to platform events. Deliveries are signed (x-dpp-signature), retried, and can be replayed."
    },
    {
      "name": "EPCIS traceability",
      "description": "GS1 EPCIS 2.0 events for supply-chain traceability, with query and subscription support."
    },
    {
      "name": "Data carriers (QR / GS1)",
      "description": "QR codes, GS1 Digital Link URIs, company prefixes and other data carriers that point to passports."
    },
    {
      "name": "Verifiable credentials",
      "description": "W3C verifiable credentials issued for published passports, their revocation, and public verification."
    },
    {
      "name": "Exports",
      "description": "Exports of passports and related data in CSV and JSON formats."
    },
    {
      "name": "Bulk jobs",
      "description": "Asynchronous bulk operations (CSV import, bulk create, revalidation) and their status."
    },
    {
      "name": "Workspaces",
      "description": "Workspaces for separating brands or business units inside one organization."
    },
    {
      "name": "Custom fields",
      "description": "Organization-specific passport fields added on top of a category's regulation schema."
    },
    {
      "name": "Translations",
      "description": "Translated passport content for the EU languages, with draft and approval steps."
    },
    {
      "name": "Notifications",
      "description": "In-app notifications and digest preferences."
    },
    {
      "name": "Analytics",
      "description": "Portfolio metrics: passport counts by status, validation scores, coverage and evidence expiry."
    },
    {
      "name": "Audit log",
      "description": "The organization's tamper-evident audit trail of changes, its NDJSON export with sequence numbers and chain hashes, and streams that push it to a SIEM (signed HTTPS, Splunk HEC or Datadog)."
    },
    {
      "name": "Action inbox",
      "description": "Derived open work across supplier, evidence, validation, publication and translation workflows, with organization-scoped ownership and scheduling."
    },
    {
      "name": "Regulations & compliance",
      "description": "Regulation packs, category schemas, compliance rules and deadlines, and consistency reports that check passports against them."
    },
    {
      "name": "Substances & materials",
      "description": "Substances of concern, material composition, chemical safety data (CLP/GHS, SDS) and SCIP notifications."
    },
    {
      "name": "Carbon & LCA",
      "description": "Carbon footprint estimates from bills of materials, carbon reports and life-cycle assessment results."
    },
    {
      "name": "Construction products",
      "description": "Construction product records: declarations of performance (DoP) and environmental product declarations (EPD)."
    },
    {
      "name": "Cross-checks",
      "description": "Cross-checks that find conflicting values across a passport's evidence documents."
    },
    {
      "name": "Responsible sourcing",
      "description": "Sourcing assessments and supplier substitution analysis."
    },
    {
      "name": "Ownership & leases",
      "description": "Ownership transfers, leases and custody of individual product items."
    },
    {
      "name": "Claims & evidence graph",
      "description": "Reusable claims backed by reviewed, hash-pinned evidence; which passport fields rely on them; which passports lose support when a document expires. Field-level provenance is under Passports."
    },
    {
      "name": "Remediation campaigns",
      "description": "Work through an issued regulatory impact report: one item per passport failing the new rule set, supplier evidence requests, deterministic re-checks, waivers with reasons and a CSV audit report."
    },
    {
      "name": "Integration hub",
      "description": "Reusable mappings from ERP / PIM / PLM exports and HTTPS feeds to product fields and passport data, with transforms, dry-run diffs, daily feeds and a recorded history of every run."
    },
    {
      "name": "Lifecycle reports",
      "description": "Repairs, inspections, recycling and returns reported by credentialed partners (POST /regulator/passports/{id}/reports with an approved grant token), and the issuer's accept / reject decisions."
    },
    {
      "name": "Chain of custody",
      "description": "Custody ledgers per material and ISO 22095 model (identity preserved, segregated, controlled blending, mass balance, book and claim): inputs, allocations to passports, adjustments and reversals, refused when the ledger cannot cover them; a passport's custody statement."
    },
    {
      "name": "Product models",
      "description": "Models (styles, families) and their variants: matrix generation of variant products and passports, shared passport data propagated as new versions, linking existing products."
    },
    {
      "name": "Organization identity",
      "description": "LEI, VAT and domain checked against GLEIF, VIES and DNS for the organization and its suppliers; verification of verifiable credentials (VC-JWT, eddsa-jcs-2022) with did:web, did:key and did:jwk issuers and status lists."
    }
  ],
  "paths": {
    "/.well-known/jwks.json": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "Jwks_jwks",
        "summary": "List resolver document jwks.json",
        "description": "Public: no API key needed.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "keys": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "kty": {
                            "type": "string"
                          },
                          "crv": {
                            "type": "string"
                          },
                          "use": {
                            "type": "string"
                          },
                          "alg": {
                            "type": "string"
                          },
                          "kid": {
                            "type": "string"
                          },
                          "x": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "kty",
                          "crv",
                          "use",
                          "alg",
                          "kid"
                        ]
                      }
                    }
                  },
                  "required": [
                    "keys"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/action-inbox": {
      "get": {
        "tags": [
          "Action inbox"
        ],
        "operationId": "ActionInbox_list",
        "summary": "List action inbox",
        "description": "API key scope `action-inbox:read` (or `action-inbox:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ActionItem"
                      }
                    },
                    "owners": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "email": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "email"
                        ]
                      }
                    },
                    "limited": {
                      "type": "boolean"
                    },
                    "generatedAt": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "items",
                    "owners",
                    "limited",
                    "generatedAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "action-inbox:read"
      }
    },
    "/action-inbox/{key}/assignment": {
      "post": {
        "tags": [
          "Action inbox"
        ],
        "operationId": "ActionInbox_assign",
        "summary": "Add action inbox assignment",
        "description": "Assign ownership, deadline and priority without dismissing the source workflow.\n\nAPI key scope `action-inbox:write` (or `action-inbox:*`, `*`).",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ownerId": {
                    "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"
                      }
                    ]
                  },
                  "dueDate": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "priority": {
                    "type": "string",
                    "enum": [
                      "normal",
                      "high",
                      "urgent"
                    ]
                  },
                  "note": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "expectedRevision": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "ownerId",
                  "dueDate",
                  "priority",
                  "note",
                  "expectedRevision"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActionAssignment"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "action-inbox:write"
      }
    },
    "/analytics/benchmarks": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "operationId": "Analytics_benchmarks",
        "summary": "List analytics report benchmarks",
        "description": "Anonymized fleet-wide category benchmarks (no tenant identifiers).\n\nAPI key scope `analytics:read` (or `analytics:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "generatedAt": {
                      "type": "string"
                    },
                    "privacy": {
                      "type": "string"
                    },
                    "participatingOrganizations": {
                      "type": "number"
                    },
                    "categories": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "category": {
                            "type": "string"
                          },
                          "organizations": {
                            "type": "number"
                          },
                          "validatedPassports": {
                            "type": "number"
                          },
                          "avgScore": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "readinessPassedSharePct": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "legallyAssessedPassports": {
                            "type": "number"
                          },
                          "compliantSharePct": {
                            "type": [
                              "number",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "category",
                          "organizations",
                          "validatedPassports",
                          "avgScore",
                          "readinessPassedSharePct",
                          "legallyAssessedPassports",
                          "compliantSharePct"
                        ]
                      }
                    }
                  },
                  "required": [
                    "generatedAt",
                    "privacy",
                    "participatingOrganizations",
                    "categories"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "analytics:read"
      }
    },
    "/analytics/carbon": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "operationId": "CarbonReport_portfolio",
        "summary": "List analytics report carbon",
        "description": "Portfolio footprint: coverage, totals, baselines in motion and where the emissions sit.\n\nAPI key scope `analytics:read` (or `analytics:*`, `*`).",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "generatedAt": {
                      "type": "string"
                    },
                    "passports": {
                      "type": "number"
                    },
                    "scannedLimit": {
                      "type": "number"
                    },
                    "coverage": {
                      "type": "object",
                      "properties": {
                        "withFootprint": {
                          "type": "number"
                        },
                        "percent": {
                          "type": "number"
                        },
                        "note": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "withFootprint",
                        "percent",
                        "note"
                      ]
                    },
                    "totals": {
                      "type": "object",
                      "properties": {
                        "totalKgCo2e": {
                          "type": "number"
                        },
                        "declaredByIssuerKgCo2e": {
                          "type": "number"
                        },
                        "declaredBySuppliersKgCo2e": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "totalKgCo2e",
                        "declaredByIssuerKgCo2e",
                        "declaredBySuppliersKgCo2e"
                      ]
                    },
                    "baselines": {
                      "type": "object",
                      "properties": {
                        "withBaseline": {
                          "type": "number"
                        },
                        "improving": {
                          "type": "number"
                        },
                        "regressing": {
                          "type": "number"
                        },
                        "flat": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "withBaseline",
                        "improving",
                        "regressing",
                        "flat"
                      ]
                    },
                    "byCategory": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "category": {
                            "type": "string"
                          },
                          "passports": {
                            "type": "number"
                          },
                          "withFootprint": {
                            "type": "number"
                          },
                          "totalKgCo2e": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "category",
                          "passports",
                          "withFootprint",
                          "totalKgCo2e"
                        ]
                      }
                    },
                    "topContributors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "dppId": {
                            "type": "string"
                          },
                          "product": {
                            "type": "string"
                          },
                          "category": {
                            "type": "string"
                          },
                          "totalKgCo2e": {
                            "type": "number"
                          },
                          "status": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "dppId",
                          "product",
                          "category",
                          "totalKgCo2e",
                          "status"
                        ]
                      }
                    },
                    "issuedReports": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "reference": {
                            "type": "string"
                          },
                          "dppId": {
                            "type": "string"
                          },
                          "totalKgCo2e": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "issuedAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "reference",
                          "dppId",
                          "totalKgCo2e",
                          "issuedAt"
                        ]
                      }
                    },
                    "methodologyVersion": {
                      "type": "string"
                    },
                    "disclaimer": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "generatedAt",
                    "passports",
                    "scannedLimit",
                    "coverage",
                    "totals",
                    "baselines",
                    "byCategory",
                    "topContributors",
                    "issuedReports",
                    "methodologyVersion",
                    "disclaimer"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "analytics:read"
      }
    },
    "/analytics/chemicals": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "operationId": "Chemicals_portfolio",
        "summary": "List analytics report chemicals",
        "description": "Portfolio classification position: hazards, obligations, unresolved components, reviews due.\n\nAPI key scope `analytics:read` (or `analytics:*`, `*`).",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "generatedAt": {
                      "type": "string"
                    },
                    "passports": {
                      "type": "number"
                    },
                    "scannedLimit": {
                      "type": "number"
                    },
                    "coverage": {
                      "type": "object",
                      "properties": {
                        "withComposition": {
                          "type": "number"
                        },
                        "classified": {
                          "type": "number"
                        },
                        "percent": {
                          "type": "number"
                        },
                        "note": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "withComposition",
                        "classified",
                        "percent",
                        "note"
                      ]
                    },
                    "classification": {
                      "type": "object",
                      "properties": {
                        "danger": {
                          "type": "number"
                        },
                        "warning": {
                          "type": "number"
                        },
                        "unresolvedComponents": {
                          "type": "number"
                        },
                        "rulesToVerify": {
                          "type": "number"
                        },
                        "physicalHazardsMissing": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "danger",
                        "warning",
                        "unresolvedComponents",
                        "rulesToVerify",
                        "physicalHazardsMissing"
                      ]
                    },
                    "obligations": {
                      "type": "object",
                      "properties": {
                        "outstanding": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "regulation": {
                                "type": "string"
                              },
                              "requirement": {
                                "type": "string"
                              },
                              "outstanding": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "id",
                              "regulation",
                              "requirement",
                              "outstanding"
                            ]
                          }
                        },
                        "ufiMissing": {
                          "type": "number"
                        },
                        "sdsMissing": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "outstanding",
                        "ufiMissing",
                        "sdsMissing"
                      ]
                    },
                    "topHazards": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string"
                          },
                          "text": {
                            "type": "string"
                          },
                          "passports": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "code",
                          "text",
                          "passports"
                        ]
                      }
                    },
                    "byCategory": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "category": {
                            "type": "string"
                          },
                          "passports": {
                            "type": "number"
                          },
                          "withComposition": {
                            "type": "number"
                          },
                          "classified": {
                            "type": "number"
                          },
                          "unresolved": {
                            "type": "number"
                          },
                          "ufiMissing": {
                            "type": "number"
                          },
                          "sdsMissing": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "category",
                          "passports",
                          "withComposition",
                          "classified",
                          "unresolved",
                          "ufiMissing",
                          "sdsMissing"
                        ]
                      }
                    },
                    "revisionsDue": {
                      "type": "number"
                    },
                    "clpSubsetVersion": {
                      "type": "string"
                    },
                    "method": {
                      "type": "string"
                    },
                    "disclaimer": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "generatedAt",
                    "passports",
                    "scannedLimit",
                    "coverage",
                    "classification",
                    "obligations",
                    "topHazards",
                    "byCategory",
                    "revisionsDue",
                    "clpSubsetVersion",
                    "method",
                    "disclaimer"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "analytics:read"
      }
    },
    "/analytics/construction": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "operationId": "Construction_portfolio",
        "summary": "List analytics report construction",
        "description": "Construction portfolio: EPD coverage, module depth, declared GWP and the most common gaps.\n\nAPI key scope `analytics:read` (or `analytics:*`, `*`).",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "generatedAt": {
                      "type": "string"
                    },
                    "methodVersion": {
                      "type": "string"
                    },
                    "standard": {
                      "type": "string"
                    },
                    "passports": {
                      "type": "number"
                    },
                    "scannedLimit": {
                      "type": "number"
                    },
                    "coverage": {
                      "type": "object",
                      "properties": {
                        "withEpd": {
                          "type": "number"
                        },
                        "withVerifiedEpd": {
                          "type": "number"
                        },
                        "withReadyDop": {
                          "type": "number"
                        },
                        "percent": {
                          "type": "number"
                        },
                        "note": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "withEpd",
                        "withVerifiedEpd",
                        "withReadyDop",
                        "percent",
                        "note"
                      ]
                    },
                    "coreIndicatorCoveragePercent": {
                      "type": "number"
                    },
                    "gwp": {
                      "type": "object",
                      "properties": {
                        "productStageAverageKgCo2e": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "passports": {
                          "type": "number"
                        },
                        "note": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "productStageAverageKgCo2e",
                        "passports",
                        "note"
                      ]
                    },
                    "modules": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "module": {
                            "type": "string"
                          },
                          "passports": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "module",
                          "passports"
                        ]
                      }
                    },
                    "indicators": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string"
                          },
                          "passports": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "key",
                          "passports"
                        ]
                      }
                    },
                    "taxonomyVerdicts": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "number"
                      }
                    },
                    "gapSummary": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "severity": {
                            "type": "string"
                          },
                          "count": {
                            "type": "number"
                          },
                          "clause": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "severity",
                          "count",
                          "clause"
                        ]
                      }
                    },
                    "byCategory": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "category": {
                            "type": "string"
                          },
                          "passports": {
                            "type": "number"
                          },
                          "withEpd": {
                            "type": "number"
                          },
                          "verified": {
                            "type": "number"
                          },
                          "dopReady": {
                            "type": "number"
                          },
                          "avgCoverage": {
                            "type": [
                              "number",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "category",
                          "passports",
                          "withEpd",
                          "verified",
                          "dopReady",
                          "avgCoverage"
                        ]
                      }
                    },
                    "caveats": {
                      "type": "object",
                      "properties": {
                        "epd": {
                          "type": "string"
                        },
                        "dop": {
                          "type": "string"
                        },
                        "taxonomy": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "epd",
                        "dop",
                        "taxonomy"
                      ]
                    }
                  },
                  "required": [
                    "generatedAt",
                    "methodVersion",
                    "standard",
                    "passports",
                    "scannedLimit",
                    "coverage",
                    "coreIndicatorCoveragePercent",
                    "gwp",
                    "modules",
                    "indicators",
                    "taxonomyVerdicts",
                    "gapSummary",
                    "byCategory",
                    "caveats"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "analytics:read"
      }
    },
    "/analytics/crosscheck": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "operationId": "Crosscheck_portfolio",
        "summary": "List analytics report crosscheck",
        "description": "Portfolio view: unresolved disagreements, documents that could not be read, published verdicts.\n\nAPI key scope `analytics:read` (or `analytics:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "crosscheckVersion": {
                      "type": "string"
                    },
                    "passports": {
                      "type": "number"
                    },
                    "openConflicts": {
                      "type": "number"
                    },
                    "criticalPassports": {
                      "type": "number"
                    },
                    "conflictsPerPassport": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "dppId": {
                            "type": "string"
                          },
                          "critical": {
                            "type": "number"
                          },
                          "major": {
                            "type": "number"
                          },
                          "minor": {
                            "type": "number"
                          },
                          "open": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "dppId",
                          "critical",
                          "major",
                          "minor",
                          "open"
                        ]
                      }
                    },
                    "topPaths": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "path": {
                            "type": "string"
                          },
                          "passports": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "path",
                          "passports"
                        ]
                      }
                    },
                    "documents": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "unreadable": {
                          "type": "number"
                        },
                        "unreadableNote": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "total",
                        "unreadable",
                        "unreadableNote"
                      ]
                    },
                    "reports": {
                      "type": "object",
                      "properties": {
                        "issued": {
                          "type": "number"
                        },
                        "lastReference": {},
                        "verdicts": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "number"
                          }
                        }
                      },
                      "required": [
                        "issued",
                        "lastReference",
                        "verdicts"
                      ]
                    },
                    "caveat": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "crosscheckVersion",
                    "passports",
                    "openConflicts",
                    "criticalPassports",
                    "conflictsPerPassport",
                    "topPaths",
                    "documents",
                    "reports",
                    "caveat"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "analytics:read"
      }
    },
    "/analytics/materials": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "operationId": "Materials_portfolio",
        "summary": "List analytics report materials",
        "description": "Portfolio durability: coverage, repairability classes, recycled content, unsubstantiated claims.\n\nAPI key scope `analytics:read` (or `analytics:*`, `*`).",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "generatedAt": {
                      "type": "string"
                    },
                    "passports": {
                      "type": "number"
                    },
                    "scannedLimit": {
                      "type": "number"
                    },
                    "coverage": {
                      "type": "object",
                      "properties": {
                        "withBillOfMaterials": {
                          "type": "number"
                        },
                        "withRepairabilityScore": {
                          "type": "number"
                        },
                        "withCriticalMaterials": {
                          "type": "number"
                        },
                        "percent": {
                          "type": "number"
                        },
                        "note": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "withBillOfMaterials",
                        "withRepairabilityScore",
                        "withCriticalMaterials",
                        "percent",
                        "note"
                      ]
                    },
                    "repairability": {
                      "type": "object",
                      "properties": {
                        "average": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "scored": {
                          "type": "number"
                        },
                        "classes": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "number"
                          }
                        },
                        "caveat": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "average",
                        "scored",
                        "classes",
                        "caveat"
                      ]
                    },
                    "recycledContent": {
                      "type": "object",
                      "properties": {
                        "averageWeightedPercent": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "passportsReporting": {
                          "type": "number"
                        },
                        "strategicBenchmark": {
                          "type": "object",
                          "properties": {
                            "percent": {
                              "type": "number"
                            },
                            "year": {
                              "type": "number"
                            },
                            "basis": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "percent",
                            "year",
                            "basis"
                          ]
                        }
                      },
                      "required": [
                        "averageWeightedPercent",
                        "passportsReporting",
                        "strategicBenchmark"
                      ]
                    },
                    "claims": {
                      "type": "object",
                      "properties": {
                        "unsubstantiated": {
                          "type": "number"
                        },
                        "errorGaps": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "unsubstantiated",
                        "errorGaps"
                      ]
                    },
                    "byCategory": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "category": {
                            "type": "string"
                          },
                          "passports": {
                            "type": "number"
                          },
                          "withBom": {
                            "type": "number"
                          },
                          "withRepairability": {
                            "type": "number"
                          },
                          "avgRepairability": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "avgRecycled": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "unsubstantiated": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "category",
                          "passports",
                          "withBom",
                          "withRepairability",
                          "avgRepairability",
                          "avgRecycled",
                          "unsubstantiated"
                        ]
                      }
                    },
                    "topMaterials": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "weightedAvgRecycled": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "material": {
                            "type": "string"
                          },
                          "passports": {
                            "type": "number"
                          },
                          "critical": {
                            "type": "boolean"
                          },
                          "sampleCount": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "weightedAvgRecycled",
                          "material",
                          "passports",
                          "critical",
                          "sampleCount"
                        ]
                      }
                    },
                    "gapSummary": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "severity": {
                            "type": "string"
                          },
                          "count": {
                            "type": "number"
                          },
                          "requirement": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "severity",
                          "count",
                          "requirement"
                        ]
                      }
                    },
                    "crmListVersion": {
                      "type": "string"
                    },
                    "methodVersion": {
                      "type": "string"
                    },
                    "disclaimer": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "generatedAt",
                    "passports",
                    "scannedLimit",
                    "coverage",
                    "repairability",
                    "recycledContent",
                    "claims",
                    "byCategory",
                    "topMaterials",
                    "gapSummary",
                    "crmListVersion",
                    "methodVersion",
                    "disclaimer"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "analytics:read"
      }
    },
    "/analytics/portfolio": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "operationId": "Analytics_portfolio",
        "summary": "List analytics report portfolio",
        "description": "API key scope `analytics:read` (or `analytics:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "generatedAt": {
                      "type": "string"
                    },
                    "products": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "byCategory": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "number"
                          }
                        }
                      },
                      "required": [
                        "total",
                        "byCategory"
                      ]
                    },
                    "passports": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "byStatus": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "number"
                          }
                        },
                        "published": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "total",
                        "byStatus",
                        "published"
                      ]
                    },
                    "compliance": {
                      "type": "object",
                      "properties": {
                        "validatedPassports": {
                          "type": "number"
                        },
                        "avgScore": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "readinessPassedSharePct": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "legallyAssessedPassports": {
                          "type": "number"
                        },
                        "compliantSharePct": {
                          "type": [
                            "number",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "validatedPassports",
                        "avgScore",
                        "readinessPassedSharePct",
                        "legallyAssessedPassports",
                        "compliantSharePct"
                      ]
                    },
                    "documents": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "expiringWithin30Days": {
                          "type": "number"
                        },
                        "publicDocuments": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "total",
                        "expiringWithin30Days",
                        "publicDocuments"
                      ]
                    },
                    "scans": {
                      "type": "object",
                      "properties": {
                        "total": {},
                        "topCountries": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "country": {},
                              "scans": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "country",
                              "scans"
                            ]
                          }
                        }
                      },
                      "required": [
                        "total",
                        "topCountries"
                      ]
                    },
                    "suppliers": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "avgTrustScore": {
                          "type": [
                            "number",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "total",
                        "avgTrustScore"
                      ]
                    },
                    "workspaces": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "names": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "total",
                        "names"
                      ]
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "generatedAt",
                    "products",
                    "passports",
                    "compliance",
                    "documents",
                    "scans",
                    "suppliers",
                    "workspaces",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "analytics:read"
      }
    },
    "/analytics/sourcing": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "operationId": "Sourcing_portfolio",
        "summary": "List analytics report sourcing",
        "description": "Portfolio view: fragile passports, concentrated materials, open decisions.\n\nAPI key scope `analytics:read` (or `analytics:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "sourcingVersion": {
                      "type": "string"
                    },
                    "passportsWithAlternatives": {
                      "type": "number"
                    },
                    "openDecisions": {
                      "type": "number"
                    },
                    "shortlisted": {
                      "type": "number"
                    },
                    "adopted": {
                      "type": "number"
                    },
                    "blockedCandidates": {
                      "type": "number"
                    },
                    "assessments": {
                      "type": "number"
                    },
                    "bands": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "number"
                      }
                    },
                    "weakest": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "dppId": {},
                          "reference": {},
                          "index": {},
                          "band": {},
                          "singleSource": {},
                          "critical": {}
                        },
                        "required": [
                          "dppId",
                          "reference",
                          "index",
                          "band",
                          "singleSource",
                          "critical"
                        ]
                      }
                    },
                    "topMaterials": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "material": {
                            "type": "string"
                          },
                          "passports": {
                            "type": "number"
                          },
                          "critical": {
                            "type": "number"
                          },
                          "blocked": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "material",
                          "passports",
                          "critical",
                          "blocked"
                        ]
                      }
                    },
                    "byPassport": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "materials": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "dppId": {
                            "type": "string"
                          },
                          "proposed": {
                            "type": "number"
                          },
                          "shortlisted": {
                            "type": "number"
                          },
                          "adopted": {
                            "type": "number"
                          },
                          "blocked": {
                            "type": "number"
                          },
                          "critical": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "materials",
                          "dppId",
                          "proposed",
                          "shortlisted",
                          "adopted",
                          "blocked",
                          "critical"
                        ]
                      }
                    },
                    "caveat": {
                      "type": "string"
                    },
                    "emptyNote": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "sourcingVersion",
                    "passportsWithAlternatives",
                    "openDecisions",
                    "shortlisted",
                    "adopted",
                    "blockedCandidates",
                    "assessments",
                    "bands",
                    "weakest",
                    "topMaterials",
                    "byPassport",
                    "caveat",
                    "emptyNote"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "analytics:read"
      }
    },
    "/analytics/substances": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "operationId": "Substances_portfolio",
        "summary": "List analytics report substances",
        "description": "Portfolio substance exposure: where SVHCs are, and where the obligations are unmet.\n\nAPI key scope `analytics:read` (or `analytics:*`, `*`).",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "generatedAt": {
                      "type": "string"
                    },
                    "passports": {
                      "type": "number"
                    },
                    "scannedLimit": {
                      "type": "number"
                    },
                    "coverage": {
                      "type": "object",
                      "properties": {
                        "withDeclaration": {
                          "type": "number"
                        },
                        "percent": {
                          "type": "number"
                        },
                        "note": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "withDeclaration",
                        "percent",
                        "note"
                      ]
                    },
                    "findings": {
                      "type": "object",
                      "properties": {
                        "containsSvhc": {
                          "type": "number"
                        },
                        "restrictedExceeded": {
                          "type": "number"
                        },
                        "scipRequired": {
                          "type": "number"
                        },
                        "scipMissing": {
                          "type": "number"
                        },
                        "unresolvedSubstances": {
                          "type": "number"
                        },
                        "propagationGaps": {
                          "type": "number"
                        },
                        "watchlisted": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "containsSvhc",
                        "restrictedExceeded",
                        "scipRequired",
                        "scipMissing",
                        "unresolvedSubstances",
                        "propagationGaps",
                        "watchlisted"
                      ]
                    },
                    "bySubstance": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "cas": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "passports": {
                            "type": "number"
                          },
                          "highestPercent": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "aboveThreshold": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "cas",
                          "name",
                          "passports",
                          "highestPercent",
                          "aboveThreshold"
                        ]
                      }
                    },
                    "byCategory": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "category": {
                            "type": "string"
                          },
                          "passports": {
                            "type": "number"
                          },
                          "declared": {
                            "type": "number"
                          },
                          "containsSvhc": {
                            "type": "number"
                          },
                          "scipMissing": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "category",
                          "passports",
                          "declared",
                          "containsSvhc",
                          "scipMissing"
                        ]
                      }
                    },
                    "propagationGaps": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "dppId": {
                            "type": "string"
                          },
                          "product": {
                            "type": "string"
                          },
                          "cas": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "entity": {
                            "type": "string"
                          },
                          "tier": {
                            "type": "number"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "dppId",
                          "product",
                          "cas",
                          "name",
                          "entity",
                          "tier",
                          "message"
                        ]
                      }
                    },
                    "candidateListVersion": {
                      "type": "string"
                    },
                    "candidateListAge": {
                      "$ref": "#/components/schemas/SvhcListAge"
                    },
                    "methodVersion": {
                      "type": "string"
                    },
                    "disclaimer": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "generatedAt",
                    "passports",
                    "scannedLimit",
                    "coverage",
                    "findings",
                    "bySubstance",
                    "byCategory",
                    "propagationGaps",
                    "candidateListVersion",
                    "candidateListAge",
                    "methodVersion",
                    "disclaimer"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "analytics:read"
      }
    },
    "/audit-logs": {
      "get": {
        "tags": [
          "Audit log"
        ],
        "operationId": "Audit_list",
        "summary": "List audit log",
        "description": "API key scope `audit-logs:read` (or `audit-logs:*`, `*`). Console users need the admin / owner role.",
        "parameters": [
          {
            "name": "entityType",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entityId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AuditLog"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "audit-logs:read"
      }
    },
    "/audit-logs/export.ndjson": {
      "get": {
        "tags": [
          "Audit log"
        ],
        "operationId": "Audit_exportNdjson",
        "summary": "List audit log entry export.ndjson",
        "description": "The audit chain as newline-delimited JSON for a SIEM or an archive: one entry per line in chain order, with its sequence number and hashes so the copy can be verified on its own. Page through a long history with `afterSeq` (the last `seq` received); at most 50,000 entries per request.\n\nAPI key scope `audit-logs:read` (or `audit-logs:*`, `*`). Console users need the admin / owner role.",
        "parameters": [
          {
            "name": "afterSeq",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "audit-logs:read"
      }
    },
    "/audit-logs/verify": {
      "get": {
        "tags": [
          "Audit log"
        ],
        "operationId": "Audit_verify",
        "summary": "Verify audit log",
        "description": "Recompute the organization's audit hash chain (migration 0052) and report the first break. A break is a row whose content no longer matches its hash, a row that does not point at its predecessor's hash, or a gap in the sequence - an edited, reordered or deleted entry.\n\nAPI key scope `audit-logs:read` (or `audit-logs:*`, `*`). Console users need the admin / owner role.",
        "parameters": [
          {
            "name": "anchorSeq",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "anchorHash",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "anchor": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "seq": {
                              "type": "number"
                            },
                            "matches": {
                              "type": "boolean"
                            },
                            "reason": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "seq",
                            "matches"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "entries": {
                      "type": "number"
                    },
                    "unchained": {
                      "type": "number"
                    },
                    "headSeq": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "headHash": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "firstBreak": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "checkedAt": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "ok",
                    "anchor",
                    "entries",
                    "unchained",
                    "headSeq",
                    "headHash",
                    "firstBreak",
                    "checkedAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "audit-logs:read"
      }
    },
    "/audit-streams": {
      "get": {
        "tags": [
          "Audit log"
        ],
        "operationId": "AuditStreams_list",
        "summary": "List audit streams",
        "description": "Streams with their cursor, the chain head and how far each one lags. Secrets are never returned.\n\nAPI key scope `audit-streams:read` (or `audit-streams:*`, `*`). Console users need the owner / admin role.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "headSeq": {
                      "type": "number"
                    },
                    "streams": {
                      "type": "array",
                      "items": {}
                    }
                  },
                  "required": [
                    "headSeq",
                    "streams"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "audit-streams:read"
      },
      "post": {
        "tags": [
          "Audit log"
        ],
        "operationId": "AuditStreams_create",
        "summary": "Create a audit stream",
        "description": "Creates a stream starting from now or from the beginning of the chain.\n\nAPI key scope `audit-streams:write` (or `audit-streams:*`, `*`). Console users need the owner / admin role.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "https",
                      "splunk-hec",
                      "datadog"
                    ]
                  },
                  "endpoint": {
                    "type": "string",
                    "maxLength": 1000,
                    "format": "uri"
                  },
                  "secret": {
                    "type": "string",
                    "minLength": 8,
                    "maxLength": 500
                  },
                  "startFrom": {
                    "default": "now",
                    "type": "string",
                    "enum": [
                      "now",
                      "beginning"
                    ]
                  }
                },
                "required": [
                  "name",
                  "kind",
                  "endpoint",
                  "secret",
                  "startFrom"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "audit-streams:write"
      }
    },
    "/audit-streams/{id}": {
      "get": {
        "tags": [
          "Audit log"
        ],
        "operationId": "AuditStreams_get",
        "summary": "Get a audit stream",
        "description": "API key scope `audit-streams:read` (or `audit-streams:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "audit-streams:read"
      },
      "patch": {
        "tags": [
          "Audit log"
        ],
        "operationId": "AuditStreams_update",
        "summary": "Update a audit stream",
        "description": "Renames, re-points, re-keys, pauses or resumes a stream. A new host needs the secret again.\n\nAPI key scope `audit-streams:write` (or `audit-streams:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "endpoint": {
                    "type": "string",
                    "maxLength": 1000,
                    "format": "uri"
                  },
                  "secret": {
                    "type": "string",
                    "minLength": 8,
                    "maxLength": 500
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "active",
                      "paused"
                    ]
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "audit-streams:write"
      },
      "delete": {
        "tags": [
          "Audit log"
        ],
        "operationId": "AuditStreams_remove",
        "summary": "Delete a audit stream",
        "description": "API key scope `audit-streams:write` (or `audit-streams:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "deleted": {
                      "type": "boolean"
                    },
                    "id": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "deleted",
                    "id"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "audit-streams:write"
      }
    },
    "/audit-streams/{id}/test": {
      "post": {
        "tags": [
          "Audit log"
        ],
        "operationId": "AuditStreams_test",
        "summary": "Test a audit stream",
        "description": "Sends one synthetic test event; the cursor does not move.\n\nAPI key scope `audit-streams:write` (or `audit-streams:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "delivered": {
                      "type": "boolean"
                    },
                    "status": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "error": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "delivered",
                    "status",
                    "error"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "audit-streams:write"
      }
    },
    "/authoring-drafts/{kind}/{id}": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "WorkingDrafts_get",
        "summary": "Get a authoring draft",
        "description": "Private recovery state for the current user; expires after thirty days. Never a release.\n\nAPI key scope `authoring-drafts:read` (or `authoring-drafts:*`, `*`).",
        "parameters": [
          {
            "name": "kind",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/WorkingDraft"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "authoring-drafts:read"
      },
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "WorkingDrafts_save",
        "summary": "Post a authoring draft",
        "description": "API key scope `authoring-drafts:write` (or `authoring-drafts:*`, `*`).",
        "parameters": [
          {
            "name": "kind",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "baseVersion": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "schemaVersion": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "data": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  },
                  "expectedRevision": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "baseVersion",
                  "schemaVersion",
                  "data",
                  "expectedRevision"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "revision": {
                      "type": "number"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "revision",
                    "updatedAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "authoring-drafts:write"
      },
      "delete": {
        "tags": [
          "Passports"
        ],
        "operationId": "WorkingDrafts_discard",
        "summary": "Delete a authoring draft",
        "description": "API key scope `authoring-drafts:write` (or `authoring-drafts:*`, `*`).",
        "parameters": [
          {
            "name": "kind",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "revision",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "discarded": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "discarded"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "authoring-drafts:write"
      }
    },
    "/carbon-estimates": {
      "get": {
        "tags": [
          "Carbon & LCA"
        ],
        "operationId": "CarbonEstimate_portfolio",
        "summary": "List carbon estimates",
        "description": "Portfolio view: coverage, verdict mix and the materials that keep blocking a figure.\n\nAPI key scope `carbon-estimates:read` (or `carbon-estimates:*`, `*`).",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "passportsEstimated": {
                      "type": "number"
                    },
                    "estimates": {
                      "type": "number"
                    },
                    "verdictCounts": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "number"
                      }
                    },
                    "degradedRuns": {
                      "type": "number"
                    },
                    "averageMassCoveragePercent": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "totalKgCo2e": {
                      "type": "number"
                    },
                    "blockedMaterials": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "material": {
                            "type": "string"
                          },
                          "reason": {
                            "type": "string"
                          },
                          "count": {
                            "type": "number"
                          },
                          "action": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "material",
                          "reason",
                          "count",
                          "action"
                        ]
                      }
                    },
                    "recent": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "dppId": {
                            "type": "string"
                          },
                          "reference": {
                            "type": "string"
                          },
                          "verdict": {
                            "type": "string"
                          },
                          "product": {
                            "type": "string"
                          },
                          "sku": {
                            "type": "string"
                          },
                          "category": {
                            "type": "string"
                          },
                          "totalKgCo2e": {
                            "type": "number"
                          },
                          "massCoveragePercent": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "unresolved": {
                            "type": "number"
                          },
                          "unplaced": {
                            "type": "number"
                          },
                          "ignored": {
                            "type": "number"
                          },
                          "degraded": {
                            "type": "boolean"
                          },
                          "createdAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "id",
                          "dppId",
                          "reference",
                          "verdict",
                          "product",
                          "sku",
                          "category",
                          "totalKgCo2e",
                          "massCoveragePercent",
                          "unresolved",
                          "unplaced",
                          "ignored",
                          "degraded",
                          "createdAt"
                        ]
                      }
                    },
                    "factorTableVersion": {
                      "type": "string"
                    },
                    "note": {
                      "type": "string"
                    },
                    "disclaimer": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "passportsEstimated",
                    "estimates",
                    "verdictCounts",
                    "degradedRuns",
                    "averageMassCoveragePercent",
                    "totalKgCo2e",
                    "blockedMaterials",
                    "recent",
                    "factorTableVersion",
                    "note",
                    "disclaimer"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "carbon-estimates:read"
      }
    },
    "/carbon-estimates/{reference}": {
      "get": {
        "tags": [
          "Carbon & LCA"
        ],
        "operationId": "CarbonEstimate_byReference",
        "summary": "Get a carbon estimate",
        "description": "API key scope `carbon-estimates:read` (or `carbon-estimates:*`, `*`).",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CarbonEstimate"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "carbon-estimates:read"
      }
    },
    "/carbon-estimates/{reference}.csv": {
      "get": {
        "tags": [
          "Carbon & LCA"
        ],
        "operationId": "CarbonEstimate_csv",
        "summary": "Get a carbon estimate",
        "description": "API key scope `carbon-estimates:read` (or `carbon-estimates:*`, `*`).",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "carbon-estimates:read"
      }
    },
    "/carbon-estimates/{reference}/revoke": {
      "post": {
        "tags": [
          "Carbon & LCA"
        ],
        "operationId": "CarbonEstimate_revoke",
        "summary": "Revoke a carbon estimate",
        "description": "A superseded run stays readable; revoking marks it as not usable for a decision.\n\nAPI key scope `carbon-estimates:write` (or `carbon-estimates:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CarbonEstimate"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "carbon-estimates:write"
      }
    },
    "/carbon-estimates/catalogue": {
      "get": {
        "tags": [
          "Carbon & LCA"
        ],
        "operationId": "CarbonEstimate_catalogue",
        "summary": "List carbon estimate catalogue",
        "description": "Declared before `:reference` so \"catalogue\" is not read as a reference.\n\nAPI key scope `carbon-estimates:read` (or `carbon-estimates:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "estimateVersion": {
                      "type": "string"
                    },
                    "factorTableVersion": {
                      "type": "string"
                    },
                    "methodology": {
                      "type": "object",
                      "properties": {
                        "version": {
                          "type": "string",
                          "enum": [
                            "bom-estimate-1.0"
                          ]
                        },
                        "factorTable": {
                          "type": "string",
                          "enum": [
                            "screening-factors-2026-09"
                          ]
                        },
                        "standard": {
                          "type": "string",
                          "enum": [
                            "ISO 14067 screening study class"
                          ]
                        },
                        "boundary": {
                          "type": "string",
                          "enum": [
                            "A1 materials from the bill of materials, plus A2/A3 only when the caller supplies the transport legs and a measured electricity figure"
                          ]
                        },
                        "note": {
                          "type": "string",
                          "enum": [
                            "The model maps lines to reviewed factor keys; every figure is computed from the platform's factor table."
                          ]
                        }
                      },
                      "required": [
                        "version",
                        "factorTable",
                        "standard",
                        "boundary",
                        "note"
                      ]
                    },
                    "caveat": {
                      "type": "string"
                    },
                    "disclaimer": {
                      "type": "string"
                    },
                    "rules": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "units": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "estimateVersion",
                    "factorTableVersion",
                    "methodology",
                    "caveat",
                    "disclaimer",
                    "rules",
                    "units"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "carbon-estimates:read"
      }
    },
    "/carbon-reports/{reference}/revoke": {
      "post": {
        "tags": [
          "Carbon & LCA"
        ],
        "operationId": "CarbonReport_revoke",
        "summary": "Revoke a carbon report",
        "description": "API key scope `carbon-reports:write` (or `carbon-reports:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "reference": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "revokedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "reference",
                    "status",
                    "revokedAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "carbon-reports:write"
      }
    },
    "/carriers/{id}/analytics": {
      "get": {
        "tags": [
          "Data carriers (QR / GS1)"
        ],
        "operationId": "Carriers_analytics",
        "summary": "Get carrier analytics",
        "description": "API key scope `carriers:read` (or `carriers:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "carrier": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        },
                        "dppId": {
                          "type": "string"
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "payload": {
                          "type": [
                            "object",
                            "null"
                          ],
                          "additionalProperties": {}
                        }
                      },
                      "required": [
                        "id",
                        "type",
                        "dppId",
                        "createdAt",
                        "payload"
                      ]
                    },
                    "scanCount": {
                      "type": "number"
                    },
                    "byCountry": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string"
                          },
                          "count": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "key",
                          "count"
                        ]
                      }
                    },
                    "byDevice": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string"
                          },
                          "count": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "key",
                          "count"
                        ]
                      }
                    },
                    "byDay": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "day": {
                            "type": "string"
                          },
                          "count": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "day",
                          "count"
                        ]
                      }
                    },
                    "recent": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "country": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "device": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "createdAt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "string",
                                "format": "date-time"
                              }
                            ]
                          }
                        },
                        "required": [
                          "country",
                          "device",
                          "createdAt"
                        ]
                      }
                    }
                  },
                  "required": [
                    "carrier",
                    "scanCount",
                    "byCountry",
                    "byDevice",
                    "byDay",
                    "recent"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "carriers:read"
      }
    },
    "/carriers/datamatrix": {
      "post": {
        "tags": [
          "Data carriers (QR / GS1)"
        ],
        "operationId": "Carriers_datamatrix",
        "summary": "Create carrier datamatrix",
        "description": "GS1 DataMatrix carrier: the symbol regulated products actually carry (small enough for a cell or a device label). `encoding=element-string` encodes AIs with FNC1, `digital-link` encodes the resolvable URI.\n\nAPI key scope `carriers:write` (or `carriers:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "dppId": {
                    "type": "string"
                  },
                  "encoding": {
                    "type": "string",
                    "enum": [
                      "digital-link",
                      "element-string"
                    ]
                  },
                  "serial": {
                    "type": "string"
                  },
                  "batch": {
                    "type": "string"
                  },
                  "scale": {
                    "type": "number"
                  }
                },
                "required": [
                  "dppId"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "symbol": {
                      "type": "object",
                      "properties": {
                        "encoding": {
                          "type": "string",
                          "enum": [
                            "digital-link",
                            "element-string"
                          ]
                        },
                        "text": {
                          "type": "string"
                        },
                        "human": {
                          "type": "string"
                        },
                        "png": {
                          "type": "string"
                        },
                        "svg": {
                          "type": "string"
                        },
                        "width": {
                          "type": "number"
                        },
                        "height": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "encoding",
                        "text",
                        "human",
                        "png",
                        "svg",
                        "width",
                        "height"
                      ]
                    },
                    "type": {
                      "type": "string"
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "dppId": {
                      "type": "string"
                    },
                    "payload": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "symbol",
                    "type",
                    "id",
                    "organizationId",
                    "createdAt",
                    "dppId",
                    "payload"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "carriers:write"
      }
    },
    "/carriers/nfc": {
      "post": {
        "tags": [
          "Data carriers (QR / GS1)"
        ],
        "operationId": "Carriers_nfc",
        "summary": "Create carrier nfc",
        "description": "API key scope `carriers:write` (or `carriers:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "dppId": {
                    "type": "string"
                  }
                },
                "required": [
                  "dppId"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Carrier"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "carriers:write"
      }
    },
    "/carriers/qr": {
      "post": {
        "tags": [
          "Data carriers (QR / GS1)"
        ],
        "operationId": "Carriers_qr",
        "summary": "Create carrier qr",
        "description": "API key scope `carriers:write` (or `carriers:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "dppId": {
                    "type": "string"
                  },
                  "format": {
                    "type": "string",
                    "enum": [
                      "url",
                      "gs1"
                    ]
                  }
                },
                "required": [
                  "dppId"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Carrier"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "carriers:write"
      }
    },
    "/carriers/rfid": {
      "post": {
        "tags": [
          "Data carriers (QR / GS1)"
        ],
        "operationId": "Carriers_rfid",
        "summary": "Create carrier rfid",
        "description": "API key scope `carriers:write` (or `carriers:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "dppId": {
                    "type": "string"
                  },
                  "filterValue": {
                    "type": "number"
                  },
                  "serial": {
                    "type": "string"
                  }
                },
                "required": [
                  "dppId"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Carrier"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "carriers:write"
      }
    },
    "/carriers/symbol": {
      "post": {
        "tags": [
          "Data carriers (QR / GS1)"
        ],
        "operationId": "Carriers_symbol",
        "summary": "Create carrier symbol",
        "description": "Renders a symbol without persisting it (label design, pre-flight checks).\n\nAPI key scope `carriers:write` (or `carriers:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "gtin": {
                    "type": "string"
                  },
                  "serial": {
                    "type": "string"
                  },
                  "batch": {
                    "type": "string"
                  },
                  "encoding": {
                    "type": "string",
                    "enum": [
                      "digital-link",
                      "element-string"
                    ]
                  },
                  "scale": {
                    "type": "number"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RenderedSymbol"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "carriers:write"
      }
    },
    "/channels": {
      "get": {
        "tags": [
          "Marketplace channels"
        ],
        "operationId": "Channels_catalogue",
        "summary": "List channels",
        "description": "The channel catalogue: attribute sets, where they come from and what they require.\n\nAPI key scope `channels:read` (or `channels:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "profileVersion": {
                      "type": "string"
                    },
                    "generatedAt": {
                      "type": "string"
                    },
                    "channels": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "marketplace",
                              "storefront"
                            ]
                          },
                          "market": {
                            "type": "string"
                          },
                          "specReference": {
                            "type": "string"
                          },
                          "requiresPublished": {
                            "type": "boolean"
                          },
                          "formats": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "json",
                                "csv"
                              ]
                            }
                          },
                          "delivery": {
                            "type": "string",
                            "enum": [
                              "feed",
                              "metafields"
                            ]
                          },
                          "categories": {
                            "type": "object",
                            "additionalProperties": {
                              "type": "string"
                            }
                          },
                          "attributes": {
                            "type": "number"
                          },
                          "required": {
                            "type": "number"
                          },
                          "conditional": {
                            "type": "number"
                          },
                          "optional": {
                            "type": "number"
                          },
                          "derived": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "id",
                          "label",
                          "kind",
                          "market",
                          "specReference",
                          "requiresPublished",
                          "formats",
                          "delivery",
                          "categories",
                          "attributes",
                          "required",
                          "conditional",
                          "optional",
                          "derived"
                        ]
                      }
                    },
                    "caveat": {
                      "type": "string"
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "profileVersion",
                    "generatedAt",
                    "channels",
                    "caveat",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "channels:read"
      }
    },
    "/channels/{channel}": {
      "get": {
        "tags": [
          "Marketplace channels"
        ],
        "operationId": "Channels_detail",
        "summary": "Get a channel",
        "description": "One channel's attribute set in full.\n\nAPI key scope `channels:read` (or `channels:*`, `*`).",
        "parameters": [
          {
            "name": "channel",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "caveat": {
                      "type": "string"
                    },
                    "id": {
                      "type": "string"
                    },
                    "label": {
                      "type": "string"
                    },
                    "kind": {
                      "type": "string",
                      "enum": [
                        "marketplace",
                        "storefront"
                      ]
                    },
                    "market": {
                      "type": "string"
                    },
                    "specReference": {
                      "type": "string"
                    },
                    "categories": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    },
                    "requiresPublished": {
                      "type": "boolean"
                    },
                    "formats": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "json",
                          "csv"
                        ]
                      }
                    },
                    "delivery": {
                      "type": "string",
                      "enum": [
                        "feed",
                        "metafields"
                      ]
                    },
                    "attributes": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ChannelAttribute"
                      }
                    },
                    "profileVersion": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "caveat",
                    "id",
                    "label",
                    "kind",
                    "market",
                    "specReference",
                    "categories",
                    "requiresPublished",
                    "formats",
                    "delivery",
                    "attributes",
                    "profileVersion"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "channels:read"
      }
    },
    "/channels/{channel}/endpoint": {
      "post": {
        "tags": [
          "Marketplace channels"
        ],
        "operationId": "Channels_setEndpoint",
        "summary": "Add channel endpoint",
        "description": "API key scope `channels:write` (or `channels:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "channel",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "mode": {
                    "type": "string",
                    "enum": [
                      "push",
                      "manual"
                    ]
                  },
                  "url": {
                    "type": "string"
                  },
                  "secret": {
                    "type": "string"
                  },
                  "enabled": {
                    "type": "boolean"
                  },
                  "externalAccount": {
                    "type": "string"
                  },
                  "notes": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/ChannelEndpoint"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "signingSecret": {
                          "type": "string"
                        },
                        "id": {
                          "type": "string"
                        },
                        "organizationId": {
                          "type": "string"
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "createdBy": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "channel": {
                          "type": "string"
                        },
                        "webhookId": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "mode": {
                          "type": "string"
                        },
                        "enabled": {
                          "type": "boolean"
                        },
                        "externalAccount": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "notes": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "lastSyncAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        }
                      },
                      "required": [
                        "signingSecret",
                        "id",
                        "organizationId",
                        "createdAt",
                        "createdBy",
                        "updatedAt",
                        "channel",
                        "webhookId",
                        "mode",
                        "enabled",
                        "externalAccount",
                        "notes",
                        "lastSyncAt"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "channels:write"
      }
    },
    "/channels/{channel}/feed": {
      "get": {
        "tags": [
          "Marketplace channels"
        ],
        "operationId": "Channels_feed",
        "summary": "Get channel feed",
        "description": "The generated upload payload (JSON, or CSV with `?format=csv`).\n\nAPI key scope `channels:read` (or `channels:*`, `*`).",
        "parameters": [
          {
            "name": "channel",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dppIds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeOptional",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/ChannelFeed"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "csv": {
                          "type": "string"
                        },
                        "channel": {
                          "type": "string"
                        },
                        "channelLabel": {
                          "type": "string"
                        },
                        "profileVersion": {
                          "type": "string"
                        },
                        "generatedAt": {
                          "type": "string"
                        },
                        "includeOptional": {
                          "type": "boolean"
                        },
                        "columns": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "label": {
                                "type": "string"
                              },
                              "type": {
                                "type": "string",
                                "enum": [
                                  "number",
                                  "boolean",
                                  "date",
                                  "url",
                                  "gtin",
                                  "text",
                                  "integer",
                                  "enum"
                                ]
                              },
                              "unit": {
                                "type": "string"
                              },
                              "alwaysRequired": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "key",
                              "label",
                              "type",
                              "alwaysRequired"
                            ]
                          }
                        },
                        "products": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "dppId": {
                                "type": "string"
                              },
                              "sku": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "name": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "ready": {
                                "type": "boolean"
                              },
                              "values": {
                                "type": "object",
                                "additionalProperties": {
                                  "anyOf": [
                                    {
                                      "type": "boolean"
                                    },
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              },
                              "sources": {
                                "type": "object",
                                "additionalProperties": {
                                  "type": "string",
                                  "enum": [
                                    "declared",
                                    "derived",
                                    "missing",
                                    "invalid"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "dppId",
                              "sku",
                              "name",
                              "ready",
                              "values",
                              "sources"
                            ]
                          }
                        },
                        "skipped": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "dppId": {
                                "type": "string"
                              },
                              "sku": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "reason": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "dppId",
                              "sku",
                              "reason"
                            ]
                          }
                        },
                        "counts": {
                          "type": "object",
                          "properties": {
                            "products": {
                              "type": "number"
                            },
                            "ready": {
                              "type": "number"
                            },
                            "notReady": {
                              "type": "number"
                            },
                            "skipped": {
                              "type": "number"
                            },
                            "rows": {
                              "type": "number"
                            },
                            "attributesFilled": {
                              "type": "number"
                            },
                            "attributesMissing": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "products",
                            "ready",
                            "notReady",
                            "skipped",
                            "rows",
                            "attributesFilled",
                            "attributesMissing"
                          ]
                        },
                        "caveat": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "csv",
                        "channel",
                        "channelLabel",
                        "profileVersion",
                        "generatedAt",
                        "includeOptional",
                        "columns",
                        "products",
                        "skipped",
                        "counts",
                        "caveat"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "channels:read"
      }
    },
    "/channels/{channel}/feed.csv": {
      "get": {
        "tags": [
          "Marketplace channels"
        ],
        "operationId": "Channels_feedCsv",
        "summary": "Get channel feed.csv",
        "description": "API key scope `channels:read` (or `channels:*`, `*`).",
        "parameters": [
          {
            "name": "channel",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dppIds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeOptional",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "channels:read"
      }
    },
    "/channels/{channel}/readiness": {
      "get": {
        "tags": [
          "Marketplace channels"
        ],
        "operationId": "Channels_readiness",
        "summary": "Get channel readiness",
        "description": "Per-passport readiness: what is filled, what a mandatory attribute is missing.\n\nAPI key scope `channels:read` (or `channels:*`, `*`).",
        "parameters": [
          {
            "name": "channel",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dppIds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "channel": {
                      "type": "string"
                    },
                    "channelLabel": {
                      "type": "string"
                    },
                    "profileVersion": {
                      "type": "string"
                    },
                    "generatedAt": {
                      "type": "string"
                    },
                    "requiredAttributes": {
                      "type": "number"
                    },
                    "conditionalAttributes": {
                      "type": "number"
                    },
                    "counts": {
                      "type": "object",
                      "properties": {
                        "passports": {
                          "type": "number"
                        },
                        "ready": {
                          "type": "number"
                        },
                        "notReady": {
                          "type": "number"
                        },
                        "unpublished": {
                          "type": "number"
                        },
                        "missingRequired": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "passports",
                        "ready",
                        "notReady",
                        "unpublished",
                        "missingRequired"
                      ]
                    },
                    "commonBlockers": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string"
                          },
                          "count": {
                            "type": "number"
                          },
                          "example": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "key",
                          "count",
                          "example"
                        ]
                      }
                    },
                    "rows": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ChannelRow"
                      }
                    },
                    "caveat": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "channel",
                    "channelLabel",
                    "profileVersion",
                    "generatedAt",
                    "requiredAttributes",
                    "conditionalAttributes",
                    "counts",
                    "commonBlockers",
                    "rows",
                    "caveat"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "channels:read"
      }
    },
    "/channels/{channel}/sync": {
      "post": {
        "tags": [
          "Marketplace channels"
        ],
        "operationId": "Channels_sync",
        "summary": "Sync a channel",
        "description": "Builds the payload, records the sync and — when an endpoint is configured — dispatches it.\n\nAPI key scope `channels:write` (or `channels:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "channel",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "dppIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "limit": {
                    "type": "number"
                  },
                  "includeOptional": {
                    "type": "boolean"
                  },
                  "format": {
                    "type": "string",
                    "enum": [
                      "json",
                      "csv"
                    ]
                  },
                  "dryRun": {
                    "type": "boolean"
                  },
                  "note": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "channel": {
                          "type": "string"
                        },
                        "dryRun": {
                          "type": "boolean"
                        },
                        "counts": {
                          "type": "object",
                          "properties": {
                            "products": {
                              "type": "number"
                            },
                            "ready": {
                              "type": "number"
                            },
                            "notReady": {
                              "type": "number"
                            },
                            "skipped": {
                              "type": "number"
                            },
                            "rows": {
                              "type": "number"
                            },
                            "attributesFilled": {
                              "type": "number"
                            },
                            "attributesMissing": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "products",
                            "ready",
                            "notReady",
                            "skipped",
                            "rows",
                            "attributesFilled",
                            "attributesMissing"
                          ]
                        },
                        "rows": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "dppId": {
                                "type": "string"
                              },
                              "sku": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "ready": {
                                "type": "boolean"
                              },
                              "blocking": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "counts": {
                                "type": "object",
                                "properties": {
                                  "filled": {
                                    "type": "number"
                                  },
                                  "missing": {
                                    "type": "number"
                                  },
                                  "invalid": {
                                    "type": "number"
                                  },
                                  "required": {
                                    "type": "number"
                                  },
                                  "requiredMissing": {
                                    "type": "number"
                                  },
                                  "optionalMissing": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "filled",
                                  "missing",
                                  "invalid",
                                  "required",
                                  "requiredMissing",
                                  "optionalMissing"
                                ]
                              }
                            },
                            "required": [
                              "dppId",
                              "sku",
                              "ready",
                              "blocking",
                              "counts"
                            ]
                          }
                        },
                        "skipped": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "dppId": {
                                "type": "string"
                              },
                              "sku": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "reason": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "dppId",
                              "sku",
                              "reason"
                            ]
                          }
                        },
                        "payloadHash": {
                          "type": "string"
                        },
                        "note": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "channel",
                        "dryRun",
                        "counts",
                        "rows",
                        "skipped",
                        "payloadHash",
                        "note"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "counts": {
                          "type": "object",
                          "properties": {
                            "products": {
                              "type": "number"
                            },
                            "ready": {
                              "type": "number"
                            },
                            "notReady": {
                              "type": "number"
                            },
                            "skipped": {
                              "type": "number"
                            },
                            "rows": {
                              "type": "number"
                            },
                            "attributesFilled": {
                              "type": "number"
                            },
                            "attributesMissing": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "products",
                            "ready",
                            "notReady",
                            "skipped",
                            "rows",
                            "attributesFilled",
                            "attributesMissing"
                          ]
                        },
                        "skipped": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "dppId": {
                                "type": "string"
                              },
                              "sku": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "reason": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "dppId",
                              "sku",
                              "reason"
                            ]
                          }
                        },
                        "blocking": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "dppId": {
                                "type": "string"
                              },
                              "sku": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "blocking": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            },
                            "required": [
                              "dppId",
                              "sku",
                              "blocking"
                            ]
                          }
                        },
                        "nextStep": {
                          "type": "string"
                        },
                        "id": {
                          "type": "string"
                        },
                        "organizationId": {
                          "type": "string"
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "status": {
                          "type": "string"
                        },
                        "createdBy": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "payload": {},
                        "products": {
                          "type": "number"
                        },
                        "format": {
                          "type": "string"
                        },
                        "rows": {},
                        "reference": {
                          "type": "string"
                        },
                        "versionNumber": {
                          "type": "number"
                        },
                        "channel": {
                          "type": "string"
                        },
                        "profileVersion": {
                          "type": "string"
                        },
                        "includeOptional": {
                          "type": "boolean"
                        },
                        "readyProducts": {
                          "type": "number"
                        },
                        "skippedProducts": {
                          "type": "number"
                        },
                        "attributesFilled": {
                          "type": "number"
                        },
                        "attributesMissing": {
                          "type": "number"
                        },
                        "requiredMissing": {
                          "type": "number"
                        },
                        "payloadHash": {
                          "type": "string"
                        },
                        "endpointId": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "webhookId": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "dispatched": {
                          "type": "boolean"
                        },
                        "externalId": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "acknowledgedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "acknowledgedBy": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "note": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "cancelledAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "cancelledReason": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "dryRun": {
                          "type": "null"
                        }
                      },
                      "required": [
                        "counts",
                        "skipped",
                        "blocking",
                        "nextStep",
                        "id",
                        "organizationId",
                        "createdAt",
                        "status",
                        "createdBy",
                        "payload",
                        "products",
                        "format",
                        "rows",
                        "reference",
                        "versionNumber",
                        "channel",
                        "profileVersion",
                        "includeOptional",
                        "readyProducts",
                        "skippedProducts",
                        "attributesFilled",
                        "attributesMissing",
                        "requiredMissing",
                        "payloadHash",
                        "endpointId",
                        "webhookId",
                        "dispatched",
                        "externalId",
                        "acknowledgedAt",
                        "acknowledgedBy",
                        "note",
                        "cancelledAt",
                        "cancelledReason"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "channels:write"
      }
    },
    "/channels/endpoints": {
      "get": {
        "tags": [
          "Marketplace channels"
        ],
        "operationId": "Channels_endpoints",
        "summary": "List channel endpoints",
        "description": "Where each channel's feed goes.\n\nAPI key scope `channels:read` (or `channels:*`, `*`). Console users need the owner / admin role.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "channel": {
                        "type": "string"
                      },
                      "label": {
                        "type": "string"
                      },
                      "configured": {
                        "type": "boolean"
                      },
                      "mode": {
                        "type": "string"
                      },
                      "enabled": {
                        "type": "boolean"
                      },
                      "externalAccount": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "lastSyncAt": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "date-time"
                      },
                      "webhookId": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "notes": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "channel",
                      "label",
                      "configured",
                      "mode",
                      "enabled",
                      "externalAccount",
                      "lastSyncAt",
                      "webhookId",
                      "notes"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "channels:read"
      }
    },
    "/channels/submissions": {
      "get": {
        "tags": [
          "Marketplace channels"
        ],
        "operationId": "ChannelSubmissions_list",
        "summary": "List channel submissions",
        "description": "API key scope `channels:read` (or `channels:*`, `*`).",
        "parameters": [
          {
            "name": "channel",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "reference": {
                        "type": "string"
                      },
                      "versionNumber": {
                        "type": "number"
                      },
                      "channel": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "format": {
                        "type": "string"
                      },
                      "products": {
                        "type": "number"
                      },
                      "readyProducts": {
                        "type": "number"
                      },
                      "skippedProducts": {
                        "type": "number"
                      },
                      "attributesFilled": {
                        "type": "number"
                      },
                      "attributesMissing": {
                        "type": "number"
                      },
                      "requiredMissing": {
                        "type": "number"
                      },
                      "payloadHash": {
                        "type": "string"
                      },
                      "dispatched": {
                        "type": "boolean"
                      },
                      "externalId": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "createdAt": {
                        "type": "string",
                        "format": "date-time"
                      },
                      "acknowledgedAt": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "date-time"
                      },
                      "cancelledAt": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "date-time"
                      }
                    },
                    "required": [
                      "reference",
                      "versionNumber",
                      "channel",
                      "status",
                      "format",
                      "products",
                      "readyProducts",
                      "skippedProducts",
                      "attributesFilled",
                      "attributesMissing",
                      "requiredMissing",
                      "payloadHash",
                      "dispatched",
                      "externalId",
                      "createdAt",
                      "acknowledgedAt",
                      "cancelledAt"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "channels:read"
      }
    },
    "/channels/submissions/{reference}": {
      "get": {
        "tags": [
          "Marketplace channels"
        ],
        "operationId": "ChannelSubmissions_get",
        "summary": "Get channel submissions",
        "description": "API key scope `channels:read` (or `channels:*`, `*`).",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChannelSubmission"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "channels:read"
      }
    },
    "/channels/submissions/{reference}/acknowledge": {
      "post": {
        "tags": [
          "Marketplace channels"
        ],
        "operationId": "ChannelSubmissions_acknowledge",
        "summary": "Acknowledge submissions of a channel",
        "description": "Records the channel's own identifier — the difference between \"sent\" and \"done\".\n\nAPI key scope `channels:write` (or `channels:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "externalId": {
                    "type": "string"
                  },
                  "note": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChannelSubmission"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "channels:write"
      }
    },
    "/channels/submissions/{reference}/cancel": {
      "post": {
        "tags": [
          "Marketplace channels"
        ],
        "operationId": "ChannelSubmissions_cancel",
        "summary": "Cancel submissions of a channel",
        "description": "API key scope `channels:write` (or `channels:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChannelSubmission"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "channels:write"
      }
    },
    "/channels/widget/snippet": {
      "get": {
        "tags": [
          "Marketplace channels"
        ],
        "operationId": "Channels_widgetSnippet",
        "summary": "List channel widget snippet",
        "description": "The embed snippet for a passport, plus a preview URL.\n\nAPI key scope `channels:read` (or `channels:*`, `*`).",
        "parameters": [
          {
            "name": "dppId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "channel",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "targetId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "theme",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "previewUrl": {
                      "type": "string"
                    },
                    "note": {
                      "type": "string"
                    },
                    "html": {
                      "type": "string"
                    },
                    "targetId": {
                      "type": "string"
                    },
                    "scriptUrl": {
                      "type": "string"
                    },
                    "dppId": {
                      "type": "string"
                    },
                    "channel": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "previewUrl",
                    "note",
                    "html",
                    "targetId",
                    "scriptUrl",
                    "dppId",
                    "channel"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "channels:read"
      }
    },
    "/chemicals/catalogue": {
      "get": {
        "tags": [
          "Substances & materials"
        ],
        "operationId": "Chemicals_catalogue",
        "summary": "List chemical catalogue",
        "description": "The classification basis: H/P statements with their mixture rules, labelled substances, sections.\n\nAPI key scope `chemicals:read` (or `chemicals:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "clpSubsetVersion": {
                      "type": "string"
                    },
                    "method": {
                      "type": "string"
                    },
                    "hazardStatements": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/HazardStatement"
                      }
                    },
                    "precautionaryStatements": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string"
                          },
                          "text": {
                            "type": "string"
                          },
                          "forCodes": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "code",
                          "text",
                          "forCodes"
                        ]
                      }
                    },
                    "classifiedSubstances": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ClassifiedSubstance"
                      }
                    },
                    "counts": {
                      "type": "object",
                      "properties": {
                        "statements": {
                          "type": "number"
                        },
                        "substances": {
                          "type": "number"
                        },
                        "rules": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "number"
                          }
                        }
                      },
                      "required": [
                        "statements",
                        "substances",
                        "rules"
                      ]
                    },
                    "rulesMarkedForVerification": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string"
                          },
                          "reason": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "code",
                          "reason"
                        ]
                      }
                    },
                    "sdsSections": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "number": {
                            "type": "string"
                          },
                          "title": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "number",
                          "title"
                        ]
                      }
                    },
                    "disclaimer": {
                      "type": "string"
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "clpSubsetVersion",
                    "method",
                    "hazardStatements",
                    "precautionaryStatements",
                    "classifiedSubstances",
                    "counts",
                    "rulesMarkedForVerification",
                    "sdsSections",
                    "disclaimer",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "chemicals:read"
      }
    },
    "/chemicals/reviews-due": {
      "get": {
        "tags": [
          "Substances & materials"
        ],
        "operationId": "Chemicals_reviewsDue",
        "summary": "List chemical reviews due",
        "description": "SDS revisions whose review date has passed (the Art. 31 \"keep it current\" duty).\n\nAPI key scope `chemicals:read` (or `chemicals:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "due": {
                      "type": "number"
                    },
                    "revisions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": {}
                      }
                    }
                  },
                  "required": [
                    "due",
                    "revisions"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "chemicals:read"
      }
    },
    "/claims": {
      "get": {
        "tags": [
          "Claims & evidence graph"
        ],
        "operationId": "Claims_list",
        "summary": "List claims",
        "description": "Claims with derived support status and the number of passports relying on each (newest 1,000; filter by status or search text).\n\nAPI key scope `claims:read` (or `claims:*`, `*`).",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "claims": {
                      "type": "array",
                      "items": {}
                    },
                    "limited": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "claims",
                    "limited"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "claims:read"
      },
      "post": {
        "tags": [
          "Claims & evidence graph"
        ],
        "operationId": "Claims_create",
        "summary": "Create a claim",
        "description": "Records a claim: one subject, attribute and value, optionally attributed to a supplier.\n\nAPI key scope `claims:write` (or `claims:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "subjectKind": {
                    "type": "string",
                    "enum": [
                      "product",
                      "component",
                      "material",
                      "batch",
                      "supplier",
                      "organization"
                    ]
                  },
                  "subject": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "attribute": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "value": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 2000
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "boolean"
                      }
                    ]
                  },
                  "unit": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 40
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "supplierId": {
                    "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"
                      }
                    ]
                  },
                  "note": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 2000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "subjectKind",
                  "subject",
                  "attribute",
                  "value"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Claim"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "claims:write"
      }
    },
    "/claims/{id}": {
      "get": {
        "tags": [
          "Claims & evidence graph"
        ],
        "operationId": "Claims_get",
        "summary": "Get a claim",
        "description": "One claim with its evidence (health, issuer, reviewer) and every passport field relying on it, with consistency.\n\nAPI key scope `claims:read` (or `claims:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "supplier": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "country": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "country"
                      ]
                    },
                    "support": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "enum": [
                            "supported",
                            "expiring",
                            "unsupported",
                            "withdrawn"
                          ]
                        },
                        "supportedUntil": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "acceptedEvidence": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "status",
                        "supportedUntil",
                        "acceptedEvidence"
                      ]
                    },
                    "evidence": {
                      "type": "array",
                      "items": {}
                    },
                    "applications": {
                      "type": "array",
                      "items": {}
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "subjectKind": {
                      "type": "string"
                    },
                    "subject": {
                      "type": "string"
                    },
                    "attribute": {
                      "type": "string"
                    },
                    "value": {},
                    "unit": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "supplierId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "status": {
                      "type": "string"
                    },
                    "note": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "revision": {
                      "type": "number"
                    },
                    "createdBy": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "updatedBy": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "supplier",
                    "evidence",
                    "applications",
                    "id",
                    "organizationId",
                    "subjectKind",
                    "subject",
                    "attribute",
                    "value",
                    "unit",
                    "supplierId",
                    "status",
                    "note",
                    "revision",
                    "createdBy",
                    "updatedBy",
                    "createdAt",
                    "updatedAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "claims:read"
      },
      "patch": {
        "tags": [
          "Claims & evidence graph"
        ],
        "operationId": "Claims_update",
        "summary": "Update a claim",
        "description": "Value changes and withdrawal affect every passport relying on the claim, so they are reserved to administrators.\n\nAPI key scope `claims:write` (or `claims:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "expectedRevision": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "value": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 2000
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "boolean"
                      }
                    ]
                  },
                  "unit": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 40
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "note": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 2000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "active",
                      "withdrawn"
                    ]
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "expectedRevision",
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Claim2"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "claims:write"
      }
    },
    "/claims/{id}/applications": {
      "post": {
        "tags": [
          "Claims & evidence graph"
        ],
        "operationId": "Claims_apply",
        "summary": "Add claim applications",
        "description": "Records that a passport field relies on the claim; the working revision must already state the claimed value.\n\nAPI key scope `claims:write` (or `claims:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "dppId": {
                    "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)$"
                  },
                  "fieldPath": {
                    "type": "string",
                    "maxLength": 200,
                    "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.(?:[A-Za-z][A-Za-z0-9_-]*|\\d+))*$"
                  }
                },
                "required": [
                  "dppId",
                  "fieldPath"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClaimApplication"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "claims:write"
      }
    },
    "/claims/{id}/applications/{applicationId}": {
      "delete": {
        "tags": [
          "Claims & evidence graph"
        ],
        "operationId": "Claims_unapply",
        "summary": "Delete claim applications",
        "description": "Stops tracing a passport field to the claim; the passport value is not changed.\n\nAPI key scope `claims:write` (or `claims:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "applicationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "removed": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "removed"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "claims:write"
      }
    },
    "/claims/{id}/evidence": {
      "post": {
        "tags": [
          "Claims & evidence graph"
        ],
        "operationId": "Claims_addEvidence",
        "summary": "Add claim evidence",
        "description": "Attaches an accepted, current, unexpired document as support; its SHA-256 is pinned.\n\nAPI key scope `claims:write` (or `claims:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "documentId": {
                    "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)$"
                  },
                  "page": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10000
                  },
                  "quote": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 4000
                  }
                },
                "required": [
                  "documentId",
                  "quote"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClaimEvidence"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "claims:write"
      }
    },
    "/claims/{id}/evidence/{evidenceId}": {
      "delete": {
        "tags": [
          "Claims & evidence graph"
        ],
        "operationId": "Claims_removeEvidence",
        "summary": "Delete claim evidence",
        "description": "Detaches a document from the claim (administrators); the audit log keeps the reference.\n\nAPI key scope `claims:write` (or `claims:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "evidenceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "removed": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "removed"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "claims:write"
      }
    },
    "/claims/from-fact": {
      "post": {
        "tags": [
          "Claims & evidence graph"
        ],
        "operationId": "Claims_fromFact",
        "summary": "Create claim from fact",
        "description": "Promotes an extracted document fact to a claim (the human approval step); attaches its accepted document and records reliance when the passport agrees.\n\nAPI key scope `claims:write` (or `claims:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "factId": {
                    "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)$"
                  },
                  "subjectKind": {
                    "type": "string",
                    "enum": [
                      "product",
                      "component",
                      "material",
                      "batch",
                      "supplier",
                      "organization"
                    ]
                  },
                  "subject": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  }
                },
                "required": [
                  "factId"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "claim": {
                      "$ref": "#/components/schemas/Claim"
                    },
                    "evidence": {
                      "type": "string",
                      "enum": [
                        "attached",
                        "document_not_accepted",
                        "no_document"
                      ]
                    },
                    "reliance": {
                      "type": "string",
                      "enum": [
                        "applied",
                        "value_differs",
                        "field_empty"
                      ]
                    }
                  },
                  "required": [
                    "claim",
                    "evidence",
                    "reliance"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "claims:write"
      }
    },
    "/commerce/connections": {
      "get": {
        "tags": [
          "Store sync (Shopify / WooCommerce)"
        ],
        "operationId": "Commerce_list",
        "summary": "List commerce connections",
        "description": "API key scope `commerce:read` (or `commerce:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "provider": {
                        "type": "string"
                      },
                      "providerLabel": {
                        "type": "string"
                      },
                      "storeUrl": {
                        "type": "string"
                      },
                      "storeName": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "credentialHint": {
                        "type": "string"
                      },
                      "lastImportAt": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "date-time"
                      },
                      "lastExportAt": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "date-time"
                      },
                      "lastError": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "autoSync": {
                        "type": "string"
                      },
                      "lastAutoSyncAt": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "date-time"
                      },
                      "instantSync": {
                        "type": [
                          "boolean",
                          "null"
                        ]
                      },
                      "linkedProducts": {
                        "type": "number"
                      },
                      "createdAt": {
                        "type": "string",
                        "format": "date-time"
                      }
                    },
                    "required": [
                      "id",
                      "provider",
                      "providerLabel",
                      "storeUrl",
                      "storeName",
                      "credentialHint",
                      "lastImportAt",
                      "lastExportAt",
                      "lastError",
                      "autoSync",
                      "lastAutoSyncAt",
                      "instantSync",
                      "linkedProducts",
                      "createdAt"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "commerce:read"
      },
      "post": {
        "tags": [
          "Store sync (Shopify / WooCommerce)"
        ],
        "operationId": "Commerce_connect",
        "summary": "Create commerce connections",
        "description": "API key scope `commerce:write` (or `commerce:*`, `*`). Console users need the owner / admin role.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "provider": {
                      "type": "string"
                    },
                    "providerLabel": {
                      "type": "string"
                    },
                    "storeUrl": {
                      "type": "string"
                    },
                    "storeName": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "credentialHint": {
                      "type": "string"
                    },
                    "lastImportAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "lastExportAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "lastError": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "autoSync": {
                      "type": "string"
                    },
                    "lastAutoSyncAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "instantSync": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "linkedProducts": {
                      "type": "number"
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "id",
                    "provider",
                    "providerLabel",
                    "storeUrl",
                    "storeName",
                    "credentialHint",
                    "lastImportAt",
                    "lastExportAt",
                    "lastError",
                    "autoSync",
                    "lastAutoSyncAt",
                    "instantSync",
                    "linkedProducts",
                    "createdAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "commerce:write"
      }
    },
    "/commerce/connections/{id}": {
      "delete": {
        "tags": [
          "Store sync (Shopify / WooCommerce)"
        ],
        "operationId": "Commerce_disconnect",
        "summary": "Delete commerce connections",
        "description": "API key scope `commerce:write` (or `commerce:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "deleted": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "deleted"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "commerce:write"
      },
      "patch": {
        "tags": [
          "Store sync (Shopify / WooCommerce)"
        ],
        "operationId": "Commerce_update",
        "summary": "Update commerce connections",
        "description": "Opt in to a daily sync of linked products: { autoSync: \"off\" | \"import\" | \"export\" }.\n\nAPI key scope `commerce:write` (or `commerce:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "autoSync": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "provider": {
                      "type": "string"
                    },
                    "providerLabel": {
                      "type": "string"
                    },
                    "storeUrl": {
                      "type": "string"
                    },
                    "storeName": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "credentialHint": {
                      "type": "string"
                    },
                    "lastImportAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "lastExportAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "lastError": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "autoSync": {
                      "type": "string"
                    },
                    "lastAutoSyncAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "instantSync": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "linkedProducts": {
                      "type": "number"
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "id",
                    "provider",
                    "providerLabel",
                    "storeUrl",
                    "storeName",
                    "credentialHint",
                    "lastImportAt",
                    "lastExportAt",
                    "lastError",
                    "autoSync",
                    "lastAutoSyncAt",
                    "instantSync",
                    "linkedProducts",
                    "createdAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "commerce:write"
      }
    },
    "/commerce/connections/{id}/export": {
      "post": {
        "tags": [
          "Store sync (Shopify / WooCommerce)"
        ],
        "operationId": "Commerce_exportProducts",
        "summary": "Export connections of a commerce",
        "description": "API key scope `commerce:write` (or `commerce:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "productIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "summary": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "number"
                      }
                    },
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "productId": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "action": {
                            "type": "string",
                            "enum": [
                              "error",
                              "linked",
                              "created",
                              "updated"
                            ]
                          },
                          "externalId": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "productId",
                          "name",
                          "action"
                        ]
                      }
                    }
                  },
                  "required": [
                    "summary",
                    "results"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "commerce:write"
      }
    },
    "/commerce/connections/{id}/import": {
      "post": {
        "tags": [
          "Store sync (Shopify / WooCommerce)"
        ],
        "operationId": "Commerce_importProducts",
        "summary": "Import connections of a commerce",
        "description": "API key scope `commerce:write` (or `commerce:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "summary": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "number"
                      }
                    },
                    "plan": {
                      "$ref": "#/components/schemas/PlanCheck"
                    },
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "externalId": {
                            "type": "string"
                          },
                          "title": {
                            "type": "string"
                          },
                          "action": {
                            "type": "string",
                            "enum": [
                              "skipped",
                              "error",
                              "linked",
                              "created",
                              "updated",
                              "unchanged",
                              "unlinked"
                            ]
                          },
                          "productId": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "externalId",
                          "title",
                          "action"
                        ]
                      }
                    }
                  },
                  "required": [
                    "summary",
                    "plan",
                    "results"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "commerce:write"
      }
    },
    "/commerce/connections/{id}/instant": {
      "post": {
        "tags": [
          "Store sync (Shopify / WooCommerce)"
        ],
        "operationId": "Commerce_instant",
        "summary": "Add commerce connections instant",
        "description": "WooCommerce: register product webhooks so store changes reach DPP Shield within seconds.\n\nAPI key scope `commerce:write` (or `commerce:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "provider": {
                      "type": "string"
                    },
                    "providerLabel": {
                      "type": "string"
                    },
                    "storeUrl": {
                      "type": "string"
                    },
                    "storeName": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "credentialHint": {
                      "type": "string"
                    },
                    "lastImportAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "lastExportAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "lastError": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "autoSync": {
                      "type": "string"
                    },
                    "lastAutoSyncAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "instantSync": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "linkedProducts": {
                      "type": "number"
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "id",
                    "provider",
                    "providerLabel",
                    "storeUrl",
                    "storeName",
                    "credentialHint",
                    "lastImportAt",
                    "lastExportAt",
                    "lastError",
                    "autoSync",
                    "lastAutoSyncAt",
                    "instantSync",
                    "linkedProducts",
                    "createdAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "commerce:write"
      }
    },
    "/commerce/connections/{id}/links": {
      "get": {
        "tags": [
          "Store sync (Shopify / WooCommerce)"
        ],
        "operationId": "Commerce_links",
        "summary": "Get commerce connections links",
        "description": "API key scope `commerce:read` (or `commerce:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "productId": {
                        "type": "string"
                      },
                      "externalId": {
                        "type": "string"
                      },
                      "lastImportedAt": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "date-time"
                      },
                      "lastExportedAt": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "date-time"
                      }
                    },
                    "required": [
                      "productId",
                      "externalId",
                      "lastImportedAt",
                      "lastExportedAt"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "commerce:read"
      }
    },
    "/commerce/connections/{id}/passport-links": {
      "post": {
        "tags": [
          "Store sync (Shopify / WooCommerce)"
        ],
        "operationId": "Commerce_passportLinks",
        "summary": "Add commerce connections passport links",
        "description": "Write passport links (URL, QR image, GS1 Digital Link) onto linked store products; call again while `remaining` > 0.\n\nAPI key scope `commerce:write` (or `commerce:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "productIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "summary": {
                      "type": "object",
                      "properties": {
                        "set": {
                          "type": "number"
                        },
                        "cleared": {
                          "type": "number"
                        },
                        "unchanged": {
                          "type": "number"
                        },
                        "error": {
                          "type": "number"
                        },
                        "remaining": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "set",
                        "cleared",
                        "unchanged",
                        "error",
                        "remaining"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "productId": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "productId",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "summary",
                    "errors"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "commerce:write"
      }
    },
    "/commerce/connections/{id}/products": {
      "get": {
        "tags": [
          "Store sync (Shopify / WooCommerce)"
        ],
        "operationId": "Commerce_preview",
        "summary": "Get commerce connections products",
        "description": "API key scope `commerce:read` (or `commerce:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "connection": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "provider": {
                          "type": "string"
                        },
                        "providerLabel": {
                          "type": "string"
                        },
                        "storeUrl": {
                          "type": "string"
                        },
                        "storeName": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "credentialHint": {
                          "type": "string"
                        },
                        "lastImportAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "lastExportAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "lastError": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "autoSync": {
                          "type": "string"
                        },
                        "lastAutoSyncAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "instantSync": {
                          "type": [
                            "boolean",
                            "null"
                          ]
                        },
                        "linkedProducts": {
                          "type": "number"
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        }
                      },
                      "required": [
                        "id",
                        "provider",
                        "providerLabel",
                        "storeUrl",
                        "storeName",
                        "credentialHint",
                        "lastImportAt",
                        "lastExportAt",
                        "lastError",
                        "autoSync",
                        "lastAutoSyncAt",
                        "instantSync",
                        "linkedProducts",
                        "createdAt"
                      ]
                    },
                    "truncated": {
                      "type": "boolean"
                    },
                    "plan": {
                      "$ref": "#/components/schemas/PlanCheck"
                    },
                    "products": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "externalId": {
                            "type": "string"
                          },
                          "title": {
                            "type": "string"
                          },
                          "sku": {
                            "type": "string"
                          },
                          "skuGenerated": {
                            "type": "boolean"
                          },
                          "gtin": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "barcodeIgnored": {
                            "type": "boolean"
                          },
                          "vendor": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "imageUrl": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "status": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "updatedAt": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "variantCount": {
                            "type": "number"
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "match",
                              "invalid",
                              "linked",
                              "new"
                            ]
                          },
                          "reason": {
                            "type": "string"
                          },
                          "productId": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "productName": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "suggestedCategory": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "externalId",
                          "title",
                          "sku",
                          "skuGenerated",
                          "gtin",
                          "barcodeIgnored",
                          "vendor",
                          "imageUrl",
                          "status",
                          "updatedAt",
                          "variantCount",
                          "state",
                          "productId",
                          "productName",
                          "suggestedCategory"
                        ]
                      }
                    }
                  },
                  "required": [
                    "connection",
                    "truncated",
                    "plan",
                    "products"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "commerce:read"
      }
    },
    "/commerce/shopify/claim": {
      "post": {
        "tags": [
          "Store sync (Shopify / WooCommerce)"
        ],
        "operationId": "Commerce_shopifyClaim",
        "summary": "Create commerce shopify claim",
        "description": "Attach a shop that installed the DPP Shield Shopify app to this organization.\n\nAPI key scope `commerce:write` (or `commerce:*`, `*`). Console users need the owner / admin role.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "connectionId": {
                      "type": "string"
                    },
                    "shop": {
                      "type": "string"
                    },
                    "storeName": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "connectionId",
                    "shop",
                    "storeName"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "commerce:write"
      }
    },
    "/commerce/woocommerce/authorize": {
      "post": {
        "tags": [
          "Store sync (Shopify / WooCommerce)"
        ],
        "operationId": "Commerce_wooAuthorize",
        "summary": "Create commerce woocommerce authorize",
        "description": "Start the one-click WooCommerce connection; the browser is sent to the returned URL.\n\nAPI key scope `commerce:write` (or `commerce:*`, `*`). Console users need the owner / admin role.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "storeUrl": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "url"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "commerce:write"
      }
    },
    "/compliance-rules": {
      "get": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "OrgRules_list",
        "summary": "List compliance rules",
        "description": "API key scope `compliance-rules:read` (or `compliance-rules:*`, `*`).",
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrganizationRule"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "compliance-rules:read"
      },
      "post": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "OrgRules_create",
        "summary": "Create a compliance rule",
        "description": "API key scope `compliance-rules:write` (or `compliance-rules:*`, `*`). Console users need the owner / admin role.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrgRuleInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationRule2"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "compliance-rules:write"
      }
    },
    "/compliance-rules/{id}": {
      "get": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "OrgRules_get",
        "summary": "Get a compliance rule",
        "description": "API key scope `compliance-rules:read` (or `compliance-rules:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationRule"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "compliance-rules:read"
      },
      "patch": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "OrgRules_update",
        "summary": "Update a compliance rule",
        "description": "API key scope `compliance-rules:write` (or `compliance-rules:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "category": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "severity": {
                    "type": "string",
                    "enum": [
                      "error",
                      "info",
                      "warning"
                    ]
                  },
                  "definition": {
                    "type": "object",
                    "additionalProperties": {}
                  },
                  "note": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "active": {
                    "type": "boolean"
                  },
                  "effectiveFrom": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "effectiveTo": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationRule"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "compliance-rules:write"
      },
      "delete": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "OrgRules_remove",
        "summary": "Delete a compliance rule",
        "description": "API key scope `compliance-rules:write` (or `compliance-rules:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "deleted": {
                      "type": "boolean"
                    },
                    "id": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "deleted",
                    "id"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "compliance-rules:write"
      }
    },
    "/compliance/deadlines": {
      "get": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "ComplianceDeadlines_deadlines",
        "summary": "List compliance deadlines",
        "description": "Upcoming regulatory rule effective dates for the portfolio's categories.\n\nAPI key scope `compliance:read` (or `compliance:*`, `*`).",
        "parameters": [
          {
            "name": "horizonDays",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "calendarVersion": {
                      "type": "string"
                    },
                    "caveat": {
                      "type": "string"
                    },
                    "categoriesWithoutRulePack": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "horizonDays": {
                      "type": "number"
                    },
                    "lookbackDays": {
                      "type": "number"
                    },
                    "categories": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "upcoming": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Item"
                      }
                    },
                    "overdue": {
                      "type": "number"
                    },
                    "needsLegalConfirmation": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Item"
                      }
                    }
                  },
                  "required": [
                    "calendarVersion",
                    "caveat",
                    "horizonDays",
                    "lookbackDays",
                    "categories",
                    "upcoming",
                    "overdue",
                    "needsLegalConfirmation"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "compliance:read"
      }
    },
    "/consistency-reports": {
      "get": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "Crosscheck_allReports",
        "summary": "List consistency reports",
        "description": "API key scope `consistency-reports:read` (or `consistency-reports:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "reference": {},
                      "versionNumber": {},
                      "status": {},
                      "verdict": {},
                      "crosscheckVersion": {},
                      "dppVersion": {},
                      "counts": {
                        "type": "object",
                        "properties": {
                          "paths": {},
                          "facts": {},
                          "conflicts": {},
                          "gaps": {},
                          "agreeing": {},
                          "critical": {},
                          "major": {},
                          "minor": {},
                          "openConflicts": {},
                          "resolvedConflicts": {}
                        },
                        "required": [
                          "paths",
                          "facts",
                          "conflicts",
                          "gaps",
                          "agreeing",
                          "critical",
                          "major",
                          "minor",
                          "openConflicts",
                          "resolvedConflicts"
                        ]
                      },
                      "documents": {
                        "type": "object",
                        "properties": {
                          "total": {},
                          "read": {},
                          "unreadable": {}
                        },
                        "required": [
                          "total",
                          "read",
                          "unreadable"
                        ]
                      },
                      "conflictingPaths": {},
                      "gaps": {},
                      "outOfScope": {},
                      "headline": {},
                      "note": {},
                      "supersededBy": {},
                      "issuedAt": {},
                      "revokedAt": {},
                      "revokeReason": {},
                      "caveat": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "reference",
                      "versionNumber",
                      "status",
                      "verdict",
                      "crosscheckVersion",
                      "dppVersion",
                      "counts",
                      "documents",
                      "conflictingPaths",
                      "gaps",
                      "outOfScope",
                      "headline",
                      "note",
                      "supersededBy",
                      "issuedAt",
                      "revokedAt",
                      "revokeReason",
                      "caveat"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "consistency-reports:read"
      }
    },
    "/consistency-reports/{reference}": {
      "get": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "Crosscheck_report",
        "summary": "Get a consistency report",
        "description": "API key scope `consistency-reports:read` (or `consistency-reports:*`, `*`).",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "payload": {},
                    "reference": {},
                    "versionNumber": {},
                    "status": {},
                    "verdict": {},
                    "crosscheckVersion": {},
                    "dppVersion": {},
                    "counts": {
                      "type": "object",
                      "properties": {
                        "paths": {},
                        "facts": {},
                        "conflicts": {},
                        "gaps": {},
                        "agreeing": {},
                        "critical": {},
                        "major": {},
                        "minor": {},
                        "openConflicts": {},
                        "resolvedConflicts": {}
                      },
                      "required": [
                        "paths",
                        "facts",
                        "conflicts",
                        "gaps",
                        "agreeing",
                        "critical",
                        "major",
                        "minor",
                        "openConflicts",
                        "resolvedConflicts"
                      ]
                    },
                    "documents": {
                      "type": "object",
                      "properties": {
                        "total": {},
                        "read": {},
                        "unreadable": {}
                      },
                      "required": [
                        "total",
                        "read",
                        "unreadable"
                      ]
                    },
                    "conflictingPaths": {},
                    "gaps": {},
                    "outOfScope": {},
                    "headline": {},
                    "note": {},
                    "supersededBy": {},
                    "issuedAt": {},
                    "revokedAt": {},
                    "revokeReason": {},
                    "caveat": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "payload",
                    "reference",
                    "versionNumber",
                    "status",
                    "verdict",
                    "crosscheckVersion",
                    "dppVersion",
                    "counts",
                    "documents",
                    "conflictingPaths",
                    "gaps",
                    "outOfScope",
                    "headline",
                    "note",
                    "supersededBy",
                    "issuedAt",
                    "revokedAt",
                    "revokeReason",
                    "caveat"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "consistency-reports:read"
      }
    },
    "/consistency-reports/{reference}/consistency.csv": {
      "get": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "Crosscheck_csv",
        "summary": "Get consistency report consistency.csv",
        "description": "API key scope `consistency-reports:read` (or `consistency-reports:*`, `*`).",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "consistency-reports:read"
      }
    },
    "/consistency-reports/{reference}/revoke": {
      "post": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "Crosscheck_revoke",
        "summary": "Revoke a consistency report",
        "description": "API key scope `consistency-reports:write` (or `consistency-reports:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "reference": {},
                    "versionNumber": {},
                    "status": {},
                    "verdict": {},
                    "crosscheckVersion": {},
                    "dppVersion": {},
                    "counts": {
                      "type": "object",
                      "properties": {
                        "paths": {},
                        "facts": {},
                        "conflicts": {},
                        "gaps": {},
                        "agreeing": {},
                        "critical": {},
                        "major": {},
                        "minor": {},
                        "openConflicts": {},
                        "resolvedConflicts": {}
                      },
                      "required": [
                        "paths",
                        "facts",
                        "conflicts",
                        "gaps",
                        "agreeing",
                        "critical",
                        "major",
                        "minor",
                        "openConflicts",
                        "resolvedConflicts"
                      ]
                    },
                    "documents": {
                      "type": "object",
                      "properties": {
                        "total": {},
                        "read": {},
                        "unreadable": {}
                      },
                      "required": [
                        "total",
                        "read",
                        "unreadable"
                      ]
                    },
                    "conflictingPaths": {},
                    "gaps": {},
                    "outOfScope": {},
                    "headline": {},
                    "note": {},
                    "supersededBy": {},
                    "issuedAt": {},
                    "revokedAt": {},
                    "revokeReason": {},
                    "caveat": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "reference",
                    "versionNumber",
                    "status",
                    "verdict",
                    "crosscheckVersion",
                    "dppVersion",
                    "counts",
                    "documents",
                    "conflictingPaths",
                    "gaps",
                    "outOfScope",
                    "headline",
                    "note",
                    "supersededBy",
                    "issuedAt",
                    "revokedAt",
                    "revokeReason",
                    "caveat"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "consistency-reports:write"
      }
    },
    "/construction/catalogue": {
      "get": {
        "tags": [
          "Construction products"
        ],
        "operationId": "Construction_catalogue",
        "summary": "List construction catalogue",
        "description": "Reference data: modules, indicators, AVCP systems, Taxonomy screening, and the caveats.\n\nAPI key scope `construction:read` (or `construction:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "methodVersion": {
                      "type": "string"
                    },
                    "standard": {
                      "type": "string"
                    },
                    "generatedAt": {
                      "type": "string"
                    },
                    "modules": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/EpdModule"
                      }
                    },
                    "indicators": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/EpdIndicator"
                      }
                    },
                    "counts": {
                      "type": "object",
                      "properties": {
                        "modules": {
                          "type": "number"
                        },
                        "indicators": {
                          "type": "number"
                        },
                        "coreIndicators": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "modules",
                        "indicators",
                        "coreIndicators"
                      ]
                    },
                    "avcpSystems": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "notifiedBodyRequired": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "key",
                          "label",
                          "notifiedBodyRequired"
                        ]
                      }
                    },
                    "taxonomy": {
                      "type": "object",
                      "properties": {
                        "reference": {
                          "type": "object",
                          "properties": {
                            "version": {
                              "type": "string"
                            },
                            "activity": {
                              "type": "string"
                            },
                            "gwpPerSquareMetreThresholdKgCo2e": {
                              "type": "number"
                            },
                            "note": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "version",
                            "activity",
                            "gwpPerSquareMetreThresholdKgCo2e",
                            "note"
                          ]
                        },
                        "criteria": {
                          "type": "array",
                          "prefixItems": [
                            {
                              "type": "object",
                              "properties": {
                                "key": {
                                  "type": "string",
                                  "enum": [
                                    "climate_adaptation"
                                  ]
                                },
                                "label": {
                                  "type": "string",
                                  "enum": [
                                    "DNSH — climate change adaptation"
                                  ]
                                },
                                "expects": {
                                  "type": "string",
                                  "enum": [
                                    "a screening of climate-related hazards for the product and its use, with the adaptation measures taken"
                                  ]
                                }
                              },
                              "required": [
                                "key",
                                "label",
                                "expects"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "key": {
                                  "type": "string",
                                  "enum": [
                                    "water_marine"
                                  ]
                                },
                                "label": {
                                  "type": "string",
                                  "enum": [
                                    "DNSH — sustainable use and protection of water and marine resources"
                                  ]
                                },
                                "expects": {
                                  "type": "string",
                                  "enum": [
                                    "whether the manufacturing process affects water bodies, with the water management measures"
                                  ]
                                }
                              },
                              "required": [
                                "key",
                                "label",
                                "expects"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "key": {
                                  "type": "string",
                                  "enum": [
                                    "circular_economy"
                                  ]
                                },
                                "label": {
                                  "type": "string",
                                  "enum": [
                                    "DNSH — transition to a circular economy"
                                  ]
                                },
                                "expects": {
                                  "type": "string",
                                  "enum": [
                                    "recycled and bio-based content, durability, deconstruction and reuse potential"
                                  ]
                                }
                              },
                              "required": [
                                "key",
                                "label",
                                "expects"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "key": {
                                  "type": "string",
                                  "enum": [
                                    "pollution"
                                  ]
                                },
                                "label": {
                                  "type": "string",
                                  "enum": [
                                    "DNSH — pollution prevention and control"
                                  ]
                                },
                                "expects": {
                                  "type": "string",
                                  "enum": [
                                    "declared dangerous substances and emissions to air, water and soil"
                                  ]
                                }
                              },
                              "required": [
                                "key",
                                "label",
                                "expects"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "key": {
                                  "type": "string",
                                  "enum": [
                                    "biodiversity"
                                  ]
                                },
                                "label": {
                                  "type": "string",
                                  "enum": [
                                    "DNSH — protection and restoration of biodiversity and ecosystems"
                                  ]
                                },
                                "expects": {
                                  "type": "string",
                                  "enum": [
                                    "sourcing evidence for the raw materials (a certification reference, not a promise)"
                                  ]
                                }
                              },
                              "required": [
                                "key",
                                "label",
                                "expects"
                              ]
                            }
                          ]
                        }
                      },
                      "required": [
                        "reference",
                        "criteria"
                      ]
                    },
                    "caveats": {
                      "type": "object",
                      "properties": {
                        "epd": {
                          "type": "string"
                        },
                        "dop": {
                          "type": "string"
                        },
                        "taxonomy": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "epd",
                        "dop",
                        "taxonomy"
                      ]
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "methodVersion",
                    "standard",
                    "generatedAt",
                    "modules",
                    "indicators",
                    "counts",
                    "avcpSystems",
                    "taxonomy",
                    "caveats",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "construction:read"
      }
    },
    "/credentials": {
      "get": {
        "tags": [
          "Verifiable credentials"
        ],
        "operationId": "Credentials_list",
        "summary": "List credentials",
        "description": "Issuance history, optionally scoped to one passport.\n\nAPI key scope `credentials:read` (or `credentials:*`, `*`).",
        "parameters": [
          {
            "name": "dppId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "dppId": {
                        "type": "string"
                      },
                      "jti": {
                        "type": "string"
                      },
                      "kid": {
                        "type": "string"
                      },
                      "version": {
                        "type": "number"
                      },
                      "status": {
                        "type": "string"
                      },
                      "issuedAt": {
                        "type": "string",
                        "format": "date-time"
                      },
                      "expiresAt": {
                        "type": "string",
                        "format": "date-time"
                      },
                      "revokedAt": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "date-time"
                      },
                      "revokedReason": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "subjectHash": {
                        "type": "string"
                      },
                      "claims": {},
                      "token": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "dppId",
                      "jti",
                      "kid",
                      "version",
                      "status",
                      "issuedAt",
                      "expiresAt",
                      "revokedAt",
                      "revokedReason",
                      "subjectHash",
                      "claims",
                      "token"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "credentials:read"
      }
    },
    "/credentials/{jti}/revoke": {
      "post": {
        "tags": [
          "Verifiable credentials"
        ],
        "operationId": "Credentials_revoke",
        "summary": "Revoke a credential",
        "description": "Revocation is permanent and visible to every verifier.\n\nAPI key scope `credentials:write` (or `credentials:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "jti",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "jti": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "revokedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "jti",
                    "status",
                    "revokedAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "credentials:write"
      }
    },
    "/credentials/keys": {
      "get": {
        "tags": [
          "Verifiable credentials"
        ],
        "operationId": "Credentials_keys",
        "summary": "List credential keys",
        "description": "API key scope `credentials:read` (or `credentials:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "kid": {
                        "type": "string"
                      },
                      "alg": {
                        "type": "string"
                      },
                      "curvename": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "createdAt": {
                        "type": "string",
                        "format": "date-time"
                      },
                      "retiredAt": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "date-time"
                      },
                      "publicJwk": {}
                    },
                    "required": [
                      "id",
                      "kid",
                      "alg",
                      "curvename",
                      "status",
                      "createdAt",
                      "retiredAt",
                      "publicJwk"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "credentials:read"
      }
    },
    "/credentials/keys/rotate": {
      "post": {
        "tags": [
          "Verifiable credentials"
        ],
        "operationId": "Credentials_rotate",
        "summary": "Rotate keys of credentials",
        "description": "Creates a new Ed25519 keypair; the previous key stays published for verification.\n\nAPI key scope `credentials:write` (or `credentials:*`, `*`). Console users need the owner / admin role.",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "kid": {
                      "type": "string"
                    },
                    "publicJwk": {
                      "type": "object",
                      "additionalProperties": {}
                    },
                    "privateJwk": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": {}
                    },
                    "privateJwkEncrypted": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "status": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "organizationId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "kid",
                    "publicJwk",
                    "privateJwk",
                    "privateJwkEncrypted",
                    "status",
                    "createdAt",
                    "organizationId"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "credentials:write"
      }
    },
    "/credentials/public/{dppId}": {
      "get": {
        "tags": [
          "Verifiable credentials"
        ],
        "operationId": "PublicCredentials_latest",
        "summary": "Get credential public",
        "description": "The newest valid credential for a published passport.\n\nPublic: no API key needed.",
        "parameters": [
          {
            "name": "dppId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "jti": {
                      "type": "string"
                    },
                    "kid": {
                      "type": "string"
                    },
                    "token": {
                      "type": "string"
                    },
                    "claims": {},
                    "expiresAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "jti",
                    "kid",
                    "token",
                    "claims",
                    "expiresAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/credentials/public/{dppId}/file": {
      "get": {
        "tags": [
          "Verifiable credentials"
        ],
        "operationId": "PublicCredentials_download",
        "summary": "Get credential public file",
        "description": "Download the signed JWT for independent verification or an evidence handoff.\n\nPublic: no API key needed.",
        "parameters": [
          {
            "name": "dppId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/credentials/verify": {
      "post": {
        "tags": [
          "Verifiable credentials"
        ],
        "operationId": "PublicCredentials_verify",
        "summary": "Verify credentials",
        "description": "Verifies a credential token: signature, validity window, revocation, payload freshness.\n\nPublic: no API key needed.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "credential": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "valid": {
                          "type": "boolean"
                        },
                        "checks": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/CredentialCheck"
                          }
                        },
                        "claims": {
                          "type": "null"
                        },
                        "summary": {
                          "type": "null"
                        },
                        "kid": {
                          "type": "null"
                        },
                        "status": {
                          "type": "null"
                        }
                      },
                      "required": [
                        "valid",
                        "checks",
                        "claims"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "valid": {
                          "type": "boolean"
                        },
                        "checks": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/CredentialCheckResult"
                          }
                        },
                        "claims": {
                          "$ref": "#/components/schemas/VerifiableCredentialClaims"
                        },
                        "summary": {
                          "type": "null"
                        },
                        "kid": {
                          "type": "null"
                        },
                        "status": {
                          "type": "null"
                        }
                      },
                      "required": [
                        "valid",
                        "checks",
                        "claims"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "valid": {
                          "type": "boolean"
                        },
                        "checks": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/CredentialCheck"
                          }
                        },
                        "claims": {
                          "$ref": "#/components/schemas/VerifiableCredentialClaims"
                        },
                        "summary": {
                          "type": "string"
                        },
                        "kid": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "valid",
                        "checks",
                        "claims",
                        "summary",
                        "kid",
                        "status"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/crosscheck/catalogue": {
      "get": {
        "tags": [
          "Cross-checks"
        ],
        "operationId": "Crosscheck_catalogue",
        "summary": "List crosscheck catalogue",
        "description": "What is compared, what is out of scope, and what each outcome means.\n\nAPI key scope `crosscheck:read` (or `crosscheck:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "version": {
                      "type": "string"
                    },
                    "outcomes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string"
                          },
                          "meaning": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "key",
                          "meaning"
                        ]
                      }
                    },
                    "severities": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string"
                          },
                          "meaning": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "key",
                          "meaning"
                        ]
                      }
                    },
                    "tolerances": {
                      "type": "object",
                      "properties": {
                        "percentPoints": {
                          "type": "number"
                        },
                        "relativeFraction": {
                          "type": "number"
                        },
                        "days": {
                          "type": "number"
                        },
                        "note": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "percentPoints",
                        "relativeFraction",
                        "days",
                        "note"
                      ]
                    },
                    "remediationHints": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    },
                    "statuses": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "caveat": {
                      "type": "string"
                    },
                    "scopeNote": {
                      "type": "string"
                    },
                    "methods": {
                      "type": "object",
                      "properties": {
                        "heuristic": {
                          "type": "string"
                        },
                        "model": {
                          "type": "string"
                        },
                        "manual": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "heuristic",
                        "model",
                        "manual"
                      ]
                    }
                  },
                  "required": [
                    "version",
                    "outcomes",
                    "severities",
                    "tolerances",
                    "remediationHints",
                    "statuses",
                    "caveat",
                    "scopeNote",
                    "methods"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "crosscheck:read"
      }
    },
    "/crosscheck/conflicts": {
      "get": {
        "tags": [
          "Cross-checks"
        ],
        "operationId": "Crosscheck_conflicts",
        "summary": "List crosscheck conflicts",
        "description": "Conflicts across the tenant (or one passport with `?dppId=`).\n\nAPI key scope `crosscheck:read` (or `crosscheck:*`, `*`).",
        "parameters": [
          {
            "name": "dppId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeCleared",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "conflicts": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {},
                          "path": {},
                          "outcome": {},
                          "severity": {},
                          "status": {},
                          "occurrences": {},
                          "values": {},
                          "hint": {},
                          "cleared": {},
                          "clearedAt": {},
                          "detectedAt": {},
                          "lastSeenAt": {},
                          "resolvedValue": {},
                          "resolutionNote": {},
                          "resolvedAt": {},
                          "remediation": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "path",
                          "outcome",
                          "severity",
                          "status",
                          "occurrences",
                          "values",
                          "hint",
                          "cleared",
                          "clearedAt",
                          "detectedAt",
                          "lastSeenAt",
                          "resolvedValue",
                          "resolutionNote",
                          "resolvedAt",
                          "remediation"
                        ]
                      }
                    },
                    "counts": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "open": {
                          "type": "number"
                        },
                        "resolved": {
                          "type": "number"
                        },
                        "dismissed": {
                          "type": "number"
                        },
                        "cleared": {
                          "type": "number"
                        },
                        "critical": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "total",
                        "open",
                        "resolved",
                        "dismissed",
                        "cleared",
                        "critical"
                      ]
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "conflicts",
                    "counts",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "crosscheck:read"
      }
    },
    "/crosscheck/conflicts/{conflictId}/dismiss": {
      "post": {
        "tags": [
          "Cross-checks"
        ],
        "operationId": "Crosscheck_dismiss",
        "summary": "Add crosscheck conflicts dismiss",
        "description": "Dismiss a conflict as expected (never allowed for a critical one).\n\nAPI key scope `crosscheck:write` (or `crosscheck:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "conflictId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {},
                    "path": {},
                    "outcome": {},
                    "severity": {},
                    "status": {},
                    "occurrences": {},
                    "values": {},
                    "hint": {},
                    "cleared": {},
                    "clearedAt": {},
                    "detectedAt": {},
                    "lastSeenAt": {},
                    "resolvedValue": {},
                    "resolutionNote": {},
                    "resolvedAt": {},
                    "remediation": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "path",
                    "outcome",
                    "severity",
                    "status",
                    "occurrences",
                    "values",
                    "hint",
                    "cleared",
                    "clearedAt",
                    "detectedAt",
                    "lastSeenAt",
                    "resolvedValue",
                    "resolutionNote",
                    "resolvedAt",
                    "remediation"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "crosscheck:write"
      }
    },
    "/crosscheck/conflicts/{conflictId}/resolve": {
      "post": {
        "tags": [
          "Cross-checks"
        ],
        "operationId": "Crosscheck_resolve",
        "summary": "Resolve conflicts of a crosscheck",
        "description": "Resolve a conflict by stating which value was accepted, and why.\n\nAPI key scope `crosscheck:write` (or `crosscheck:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "conflictId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string"
                  },
                  "note": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {},
                    "path": {},
                    "outcome": {},
                    "severity": {},
                    "status": {},
                    "occurrences": {},
                    "values": {},
                    "hint": {},
                    "cleared": {},
                    "clearedAt": {},
                    "detectedAt": {},
                    "lastSeenAt": {},
                    "resolvedValue": {},
                    "resolutionNote": {},
                    "resolvedAt": {},
                    "remediation": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "path",
                    "outcome",
                    "severity",
                    "status",
                    "occurrences",
                    "values",
                    "hint",
                    "cleared",
                    "clearedAt",
                    "detectedAt",
                    "lastSeenAt",
                    "resolvedValue",
                    "resolutionNote",
                    "resolvedAt",
                    "remediation"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "crosscheck:write"
      }
    },
    "/crosscheck/facts/{factId}": {
      "delete": {
        "tags": [
          "Cross-checks"
        ],
        "operationId": "Crosscheck_removeFact",
        "summary": "Delete crosscheck facts",
        "description": "API key scope `crosscheck:write` (or `crosscheck:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "factId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "deleted": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "id",
                    "deleted"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "crosscheck:write"
      }
    },
    "/custody/accounts": {
      "get": {
        "tags": [
          "Chain of custody"
        ],
        "operationId": "Custody_list",
        "summary": "List custody accounts",
        "description": "Accounts with their credit and quantity balances.\n\nAPI key scope `custody:read` (or `custody:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {}
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "custody:read"
      },
      "post": {
        "tags": [
          "Chain of custody"
        ],
        "operationId": "Custody_create",
        "summary": "Create custody accounts",
        "description": "Opens an account: one material under one custody model (identity preserved, segregated, controlled blending, mass balance, book and claim).\n\nAPI key scope `custody:write` (or `custody:*`, `*`). Console users need the owner / admin / member role.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "material": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "model": {
                    "type": "string",
                    "enum": [
                      "identity_preserved",
                      "segregated",
                      "controlled_blending",
                      "mass_balance",
                      "book_and_claim"
                    ]
                  },
                  "claim": {
                    "type": "string",
                    "enum": [
                      "recycled",
                      "bio_based",
                      "certified_sustainable",
                      "responsibly_sourced"
                    ]
                  },
                  "scheme": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 80
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "certificateDocumentId": {
                    "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"
                      }
                    ]
                  },
                  "site": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 200
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "unit": {
                    "type": "string",
                    "enum": [
                      "kg",
                      "t",
                      "l",
                      "m3",
                      "unit"
                    ]
                  },
                  "creditValidityDays": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 3650
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "name",
                  "material",
                  "model"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustodyAccount"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "custody:write"
      }
    },
    "/custody/accounts/{id}": {
      "get": {
        "tags": [
          "Chain of custody"
        ],
        "operationId": "Custody_get",
        "summary": "Get custody accounts",
        "description": "One account with its full ledger, lots and balances as of today.\n\nAPI key scope `custody:read` (or `custody:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "modelInfo": {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "lotBased": {
                          "type": "boolean"
                        },
                        "creditPool": {
                          "type": "boolean"
                        },
                        "publicWording": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "label",
                        "lotBased",
                        "creditPool",
                        "publicWording"
                      ]
                    },
                    "state": {
                      "$ref": "#/components/schemas/LedgerState"
                    },
                    "entries": {
                      "type": "array",
                      "items": {}
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "material": {
                      "type": "string"
                    },
                    "model": {
                      "type": "string"
                    },
                    "claim": {
                      "type": "string"
                    },
                    "scheme": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "certificateDocumentId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "site": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "unit": {
                      "type": "string"
                    },
                    "creditValidityDays": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "status": {
                      "type": "string"
                    },
                    "createdBy": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "modelInfo",
                    "state",
                    "entries",
                    "id",
                    "organizationId",
                    "name",
                    "material",
                    "model",
                    "claim",
                    "scheme",
                    "certificateDocumentId",
                    "site",
                    "unit",
                    "creditValidityDays",
                    "status",
                    "createdBy",
                    "createdAt",
                    "updatedAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "custody:read"
      },
      "patch": {
        "tags": [
          "Chain of custody"
        ],
        "operationId": "Custody_update",
        "summary": "Update custody accounts",
        "description": "API key scope `custody:write` (or `custody:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "scheme": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 80
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "certificateDocumentId": {
                    "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"
                      }
                    ]
                  },
                  "site": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 200
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "creditValidityDays": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 3650
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "active",
                      "closed"
                    ]
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustodyAccount2"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "custody:write"
      }
    },
    "/custody/accounts/{id}/entries": {
      "post": {
        "tags": [
          "Chain of custody"
        ],
        "operationId": "Custody_addEntry",
        "summary": "Add custody accounts entries",
        "description": "Records an input, an allocation (to a passport or batch) or an adjustment; refused when the ledger cannot cover it.\n\nAPI key scope `custody:write` (or `custody:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "const": "input"
                      },
                      "occurredOn": {
                        "type": "string",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                      },
                      "reference": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 120
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "note": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 1000
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "documentId": {
                        "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"
                          }
                        ]
                      },
                      "quantity": {
                        "type": "number",
                        "exclusiveMinimum": 0,
                        "maximum": 1000000000000
                      },
                      "certifiedShare": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 100
                      },
                      "expiresOn": {
                        "anyOf": [
                          {
                            "type": "string",
                            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "supplierId": {
                        "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"
                          }
                        ]
                      },
                      "batch": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 80
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "kind",
                      "occurredOn",
                      "quantity",
                      "certifiedShare"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "const": "allocation"
                      },
                      "occurredOn": {
                        "type": "string",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                      },
                      "reference": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 120
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "note": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 1000
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "documentId": {
                        "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"
                          }
                        ]
                      },
                      "quantity": {
                        "type": "number",
                        "exclusiveMinimum": 0,
                        "maximum": 1000000000000
                      },
                      "certifiedShare": {
                        "anyOf": [
                          {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "conversionFactor": {
                        "anyOf": [
                          {
                            "type": "number",
                            "exclusiveMinimum": 0,
                            "maximum": 10
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "inputEntryId": {
                        "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"
                          }
                        ]
                      },
                      "dppId": {
                        "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"
                          }
                        ]
                      },
                      "batch": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 80
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "kind",
                      "occurredOn",
                      "quantity"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "const": "adjustment"
                      },
                      "occurredOn": {
                        "type": "string",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                      },
                      "reference": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 120
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "note": {
                        "type": "string",
                        "minLength": 3,
                        "maxLength": 1000
                      },
                      "documentId": {
                        "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"
                          }
                        ]
                      },
                      "credits": {
                        "type": "number"
                      },
                      "expiresOn": {
                        "anyOf": [
                          {
                            "type": "string",
                            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "kind",
                      "occurredOn",
                      "note",
                      "credits"
                    ],
                    "additionalProperties": false
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustodyEntry2"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "custody:write"
      }
    },
    "/custody/entries/{id}/reverse": {
      "post": {
        "tags": [
          "Chain of custody"
        ],
        "operationId": "Custody_reverse",
        "summary": "Add custody entries reverse",
        "description": "Corrects an entry by recording its reversal; the entry itself is never changed.\n\nAPI key scope `custody:write` (or `custody:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "note": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 1000
                  }
                },
                "required": [
                  "note"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustodyEntry"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "custody:write"
      }
    },
    "/data-mappings": {
      "get": {
        "tags": [
          "Integration hub"
        ],
        "operationId": "DataMapping_list",
        "summary": "List data mappings",
        "description": "Mappings of this organization; feed tokens are never returned, only whether one is set.\n\nAPI key scope `data-mappings:read` (or `data-mappings:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {}
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "data-mappings:read"
      },
      "post": {
        "tags": [
          "Integration hub"
        ],
        "operationId": "DataMapping_create",
        "summary": "Create a data mapping",
        "description": "Creates a mapping: key field, rules (source -> product field or passport data path, with transforms) and an optional daily HTTPS feed.\n\nAPI key scope `data-mappings:write` (or `data-mappings:*`, `*`). Console users need the owner / admin role.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "records",
                      "bom"
                    ]
                  },
                  "sourceFormat": {
                    "type": "string",
                    "enum": [
                      "csv",
                      "json",
                      "xml"
                    ]
                  },
                  "recordsPath": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 200,
                        "pattern": "^[A-Za-z_][A-Za-z0-9_-]*(?:\\.(?:[A-Za-z_][A-Za-z0-9_-]*|\\d+))*$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "keyField": {
                    "type": "string",
                    "enum": [
                      "sku",
                      "gtin"
                    ]
                  },
                  "keySource": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "rules": {
                    "minItems": 1,
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "target": {
                          "type": "string",
                          "maxLength": 210
                        },
                        "transform": {
                          "default": "text",
                          "type": "string",
                          "enum": [
                            "text",
                            "number",
                            "integer",
                            "boolean",
                            "date",
                            "upper",
                            "lower",
                            "country"
                          ]
                        },
                        "scale": {
                          "type": "number",
                          "exclusiveMinimum": 0,
                          "maximum": 1000000000
                        },
                        "valueMap": {
                          "type": "object",
                          "propertyNames": {
                            "type": "string",
                            "maxLength": 200
                          },
                          "additionalProperties": {
                            "type": "string",
                            "maxLength": 500
                          }
                        },
                        "required": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "source",
                        "target",
                        "transform"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "feedUrl": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 1000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "feedToken": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 10000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "feedAuth": {
                    "type": "string",
                    "enum": [
                      "none",
                      "bearer",
                      "basic",
                      "header",
                      "oauth2",
                      "sftp-password",
                      "sftp-key"
                    ]
                  },
                  "feedAuthHeader": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9-]{1,64}$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "feedOAuth": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "tokenUrl": {
                            "type": "string",
                            "maxLength": 1000
                          },
                          "clientId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "scope": {
                            "anyOf": [
                              {
                                "type": "string",
                                "maxLength": 1000
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "grant": {
                            "type": "string",
                            "enum": [
                              "client_credentials",
                              "password"
                            ]
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string",
                                "maxLength": 300
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "clientAuth": {
                            "default": "basic",
                            "type": "string",
                            "enum": [
                              "basic",
                              "body"
                            ]
                          }
                        },
                        "required": [
                          "tokenUrl",
                          "clientId",
                          "grant",
                          "clientAuth"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "feedMethod": {
                    "type": "string",
                    "enum": [
                      "GET",
                      "POST"
                    ]
                  },
                  "feedBody": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 20000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "feedHostKey": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^SHA256:[A-Za-z0-9+/]{43}$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "feedSchedule": {
                    "type": "string",
                    "enum": [
                      "manual",
                      "hourly",
                      "daily"
                    ]
                  },
                  "createMissing": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "category": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 60
                          },
                          "workspaceId": {
                            "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"
                              }
                            ]
                          }
                        },
                        "required": [
                          "category"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "name",
                  "sourceFormat",
                  "keyField",
                  "keySource",
                  "rules"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "data-mappings:write"
      }
    },
    "/data-mappings/{id}": {
      "get": {
        "tags": [
          "Integration hub"
        ],
        "operationId": "DataMapping_get",
        "summary": "Get a data mapping",
        "description": "One mapping with its 50 most recent runs.\n\nAPI key scope `data-mappings:read` (or `data-mappings:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "data-mappings:read"
      },
      "patch": {
        "tags": [
          "Integration hub"
        ],
        "operationId": "DataMapping_update",
        "summary": "Update a data mapping",
        "description": "Changes a mapping (revision-checked). An empty feedToken clears the stored token.\n\nAPI key scope `data-mappings:write` (or `data-mappings:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "records",
                      "bom"
                    ]
                  },
                  "sourceFormat": {
                    "type": "string",
                    "enum": [
                      "csv",
                      "json",
                      "xml"
                    ]
                  },
                  "recordsPath": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 200,
                        "pattern": "^[A-Za-z_][A-Za-z0-9_-]*(?:\\.(?:[A-Za-z_][A-Za-z0-9_-]*|\\d+))*$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "keyField": {
                    "type": "string",
                    "enum": [
                      "sku",
                      "gtin"
                    ]
                  },
                  "keySource": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "rules": {
                    "minItems": 1,
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "target": {
                          "type": "string",
                          "maxLength": 210
                        },
                        "transform": {
                          "default": "text",
                          "type": "string",
                          "enum": [
                            "text",
                            "number",
                            "integer",
                            "boolean",
                            "date",
                            "upper",
                            "lower",
                            "country"
                          ]
                        },
                        "scale": {
                          "type": "number",
                          "exclusiveMinimum": 0,
                          "maximum": 1000000000
                        },
                        "valueMap": {
                          "type": "object",
                          "propertyNames": {
                            "type": "string",
                            "maxLength": 200
                          },
                          "additionalProperties": {
                            "type": "string",
                            "maxLength": 500
                          }
                        },
                        "required": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "source",
                        "target",
                        "transform"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "feedUrl": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 1000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "feedToken": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 10000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "feedAuth": {
                    "type": "string",
                    "enum": [
                      "none",
                      "bearer",
                      "basic",
                      "header",
                      "oauth2",
                      "sftp-password",
                      "sftp-key"
                    ]
                  },
                  "feedAuthHeader": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9-]{1,64}$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "feedOAuth": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "tokenUrl": {
                            "type": "string",
                            "maxLength": 1000
                          },
                          "clientId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "scope": {
                            "anyOf": [
                              {
                                "type": "string",
                                "maxLength": 1000
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "grant": {
                            "type": "string",
                            "enum": [
                              "client_credentials",
                              "password"
                            ]
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string",
                                "maxLength": 300
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "clientAuth": {
                            "default": "basic",
                            "type": "string",
                            "enum": [
                              "basic",
                              "body"
                            ]
                          }
                        },
                        "required": [
                          "tokenUrl",
                          "clientId",
                          "grant",
                          "clientAuth"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "feedMethod": {
                    "type": "string",
                    "enum": [
                      "GET",
                      "POST"
                    ]
                  },
                  "feedBody": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 20000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "feedHostKey": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^SHA256:[A-Za-z0-9+/]{43}$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "feedSchedule": {
                    "type": "string",
                    "enum": [
                      "manual",
                      "hourly",
                      "daily"
                    ]
                  },
                  "createMissing": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "category": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 60
                          },
                          "workspaceId": {
                            "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"
                              }
                            ]
                          }
                        },
                        "required": [
                          "category"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "expectedRevision": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "expectedRevision"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "data-mappings:write"
      },
      "delete": {
        "tags": [
          "Integration hub"
        ],
        "operationId": "DataMapping_remove",
        "summary": "Delete a data mapping",
        "description": "API key scope `data-mappings:write` (or `data-mappings:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "removed": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "removed"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "data-mappings:write"
      }
    },
    "/data-mappings/{id}/push-token": {
      "post": {
        "tags": [
          "Integration hub"
        ],
        "operationId": "DataMapping_issuePushToken",
        "summary": "Add data mapping push token",
        "description": "Issues or replaces the token the source system uses to push records to this mapping; shown once.\n\nAPI key scope `data-mappings:write` (or `data-mappings:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "token": {
                      "type": "string"
                    },
                    "prefix": {
                      "type": "string"
                    },
                    "endpoint": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "token",
                    "prefix",
                    "endpoint"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "data-mappings:write"
      },
      "delete": {
        "tags": [
          "Integration hub"
        ],
        "operationId": "DataMapping_revokePushToken",
        "summary": "Delete data mapping push token",
        "description": "API key scope `data-mappings:write` (or `data-mappings:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "revoked": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "revoked"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "data-mappings:write"
      }
    },
    "/data-mappings/{id}/runs": {
      "post": {
        "tags": [
          "Integration hub"
        ],
        "operationId": "DataMapping_execute",
        "summary": "Add data mapping runs",
        "description": "Runs the mapping over uploaded file content or its feed. A dry run returns the per-record diff without writing.\n\nAPI key scope `data-mappings:write` (or `data-mappings:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "dryRun": {
                    "type": "boolean"
                  },
                  "content": {
                    "type": "string",
                    "maxLength": 10000000
                  },
                  "feed": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "dryRun"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "runId": {
                      "type": "string"
                    },
                    "dryRun": {
                      "type": "boolean"
                    },
                    "summary": {
                      "type": "object",
                      "properties": {
                        "records": {
                          "type": "number"
                        },
                        "updated": {
                          "type": "number"
                        },
                        "wouldUpdate": {
                          "type": "number"
                        },
                        "created": {
                          "type": "number"
                        },
                        "wouldCreate": {
                          "type": "number"
                        },
                        "unchanged": {
                          "type": "number"
                        },
                        "unmatched": {
                          "type": "number"
                        },
                        "errors": {
                          "type": "number"
                        },
                        "fieldChanges": {
                          "type": "number"
                        },
                        "outcomesTruncated": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "records",
                        "updated",
                        "wouldUpdate",
                        "created",
                        "wouldCreate",
                        "unchanged",
                        "unmatched",
                        "errors",
                        "fieldChanges",
                        "outcomesTruncated"
                      ]
                    },
                    "outcomes": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Outcome"
                      }
                    }
                  },
                  "required": [
                    "runId",
                    "dryRun",
                    "summary",
                    "outcomes"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "data-mappings:write"
      }
    },
    "/data-mappings/{id}/runs/{runId}": {
      "get": {
        "tags": [
          "Integration hub"
        ],
        "operationId": "DataMapping_run",
        "summary": "Get data mapping runs",
        "description": "One recorded run with its per-record outcomes (first 1,000).\n\nAPI key scope `data-mappings:read` (or `data-mappings:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "runId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataMappingRun"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "data-mappings:read"
      }
    },
    "/data-mappings/{id}/test-feed": {
      "post": {
        "tags": [
          "Integration hub"
        ],
        "operationId": "DataMapping_testFeed",
        "summary": "Add data mapping test feed",
        "description": "Reads the feed without writing: whether it answers, its record count and fields, and (SFTP) the host key presented.\n\nAPI key scope `data-mappings:write` (or `data-mappings:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "ok": {
                          "type": "boolean"
                        },
                        "status": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "bytes": {
                          "type": "number"
                        },
                        "records": {
                          "type": "number"
                        },
                        "hostKey": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "sampleFields": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "error": {
                          "type": "null"
                        }
                      },
                      "required": [
                        "ok",
                        "status",
                        "bytes",
                        "records",
                        "hostKey",
                        "sampleFields"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "ok": {
                          "type": "boolean"
                        },
                        "error": {
                          "type": "string"
                        },
                        "hostKey": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "status": {
                          "type": "null"
                        },
                        "bytes": {
                          "type": "null"
                        },
                        "records": {
                          "type": "null"
                        },
                        "sampleFields": {
                          "type": "null"
                        }
                      },
                      "required": [
                        "ok",
                        "error",
                        "hostKey"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "data-mappings:write"
      }
    },
    "/data-mappings/templates": {
      "get": {
        "tags": [
          "Integration hub"
        ],
        "operationId": "DataMapping_templates",
        "summary": "List data mapping templates",
        "description": "Starting points for SAP, Dynamics 365, NetSuite, Odoo, Akeneo, Pimcore, Salsify, Plytix and PLM BOM exports.\n\nAPI key scope `data-mappings:read` (or `data-mappings:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MappingTemplate"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "data-mappings:read"
      }
    },
    "/documents": {
      "get": {
        "tags": [
          "Documents"
        ],
        "operationId": "Documents_list",
        "summary": "List documents",
        "description": "API key scope `documents:read` (or `documents:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Document"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "documents:read"
      },
      "post": {
        "tags": [
          "Documents"
        ],
        "operationId": "Documents_register",
        "summary": "Create a document",
        "description": "API key scope `documents:write` (or `documents:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "dppId": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "storageKey": {
                    "type": "string"
                  },
                  "sha256": {
                    "type": "string"
                  },
                  "accessLevel": {
                    "type": "string"
                  },
                  "supersedesId": {
                    "type": "string"
                  },
                  "ocrLanguages": {}
                },
                "required": [
                  "type",
                  "title",
                  "storageKey"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "documents:write"
      }
    },
    "/documents/{id}": {
      "get": {
        "tags": [
          "Documents"
        ],
        "operationId": "Documents_get",
        "summary": "Get a document",
        "description": "API key scope `documents:read` (or `documents:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Document"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "documents:read"
      },
      "delete": {
        "tags": [
          "Documents"
        ],
        "operationId": "Documents_remove",
        "summary": "Delete a document",
        "description": "API key scope `documents:write` (or `documents:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "deleted": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "deleted"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "documents:write"
      }
    },
    "/documents/{id}/correction-request": {
      "post": {
        "tags": [
          "Documents"
        ],
        "operationId": "EvidenceReview_correction",
        "summary": "Add document correction request",
        "description": "Creates an idempotent follow-up request; the organization sends its invitation separately.\n\nAPI key scope `documents:write` (or `documents:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "requestId": {
                      "type": "string"
                    },
                    "supplierId": {
                      "type": "string"
                    },
                    "reused": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "requestId",
                    "supplierId",
                    "reused"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "documents:write"
      }
    },
    "/documents/{id}/credential": {
      "post": {
        "tags": [
          "Documents"
        ],
        "operationId": "Identity_attach",
        "summary": "Add document credential",
        "description": "Attaches a credential to an evidence document and records its verification, including whether it names the file's hash.\n\nAPI key scope `documents:write` (or `documents:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "credential": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 10,
                        "maxLength": 65536
                      },
                      {
                        "type": "object",
                        "propertyNames": {
                          "type": "string"
                        },
                        "additionalProperties": {}
                      }
                    ]
                  }
                },
                "required": [
                  "credential"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialVerification"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "documents:write"
      }
    },
    "/documents/{id}/credential/recheck": {
      "post": {
        "tags": [
          "Documents"
        ],
        "operationId": "Identity_recheck",
        "summary": "Add document credential recheck",
        "description": "Verifies the attached credential again: status lists change and keys rotate.\n\nAPI key scope `documents:write` (or `documents:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialVerification"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "documents:write"
      }
    },
    "/documents/{id}/file": {
      "get": {
        "tags": [
          "Documents"
        ],
        "operationId": "Documents_download",
        "summary": "Get document file",
        "description": "API key scope `documents:read` (or `documents:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "documents:read"
      }
    },
    "/documents/{id}/read-text": {
      "post": {
        "tags": [
          "Documents"
        ],
        "operationId": "Documents_readText",
        "summary": "Add document read text",
        "description": "API key scope `documents:write` (or `documents:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ocrLanguages": {},
                  "force": {
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "documentId": {},
                    "job": {},
                    "reading": {},
                    "characterCount": {}
                  },
                  "required": [
                    "documentId",
                    "job",
                    "reading",
                    "characterCount"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "documents:write"
      },
      "get": {
        "tags": [
          "Documents"
        ],
        "operationId": "Documents_readingStatus",
        "summary": "Get document read text",
        "description": "API key scope `documents:read` (or `documents:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "documents:read"
      }
    },
    "/documents/{id}/review": {
      "post": {
        "tags": [
          "Documents"
        ],
        "operationId": "EvidenceReview_review",
        "summary": "Add document review",
        "description": "Human review of evidence with revision conflict protection; never modifies file bytes.\n\nAPI key scope `documents:write` (or `documents:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "expectedRevision": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "under_review",
                      "accepted",
                      "rejected"
                    ]
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "issuedAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "expiresAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "issuerName": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "issuerIdentifier": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "expectedRevision",
                  "status",
                  "reason",
                  "issuedAt",
                  "expiresAt"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Document"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "documents:write"
      }
    },
    "/documents/{id}/signed-url": {
      "post": {
        "tags": [
          "Documents"
        ],
        "operationId": "Documents_signedUrl",
        "summary": "Add document signed url",
        "description": "Issue a short-lived signed download URL for a stored document.\n\nAPI key scope `documents:write` (or `documents:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "expiresIn": {
                    "type": "number"
                  },
                  "disposition": {
                    "type": "string",
                    "enum": [
                      "inline",
                      "attachment"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SignedUrl"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "documents:write"
      }
    },
    "/documents/{id}/verify": {
      "post": {
        "tags": [
          "Documents"
        ],
        "operationId": "Documents_verify",
        "summary": "Verify a document",
        "description": "API key scope `documents:write` (or `documents:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "valid": {
                      "type": "boolean"
                    },
                    "sha256": {
                      "type": "string"
                    },
                    "stored": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "valid",
                    "sha256",
                    "stored"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "documents:write"
      }
    },
    "/documents/{id}/versions": {
      "get": {
        "tags": [
          "Documents"
        ],
        "operationId": "Documents_versions",
        "summary": "Get document versions",
        "description": "Document version chain (supersession history) for a document.\n\nAPI key scope `documents:read` (or `documents:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "documentId": {
                      "type": "string"
                    },
                    "versions": {
                      "type": "array",
                      "items": {}
                    }
                  },
                  "required": [
                    "documentId",
                    "versions"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "documents:read"
      }
    },
    "/documents/by-key/{key}/file": {
      "get": {
        "tags": [
          "Documents"
        ],
        "operationId": "Documents_downloadByKey",
        "summary": "Get document by key file",
        "description": "Download a stored document file (used when object storage hands out no direct link).\n\nAPI key scope `documents:read` (or `documents:*`, `*`).",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "documents:read"
      }
    },
    "/documents/expiring": {
      "get": {
        "tags": [
          "Documents"
        ],
        "operationId": "Documents_expiring",
        "summary": "List document expiring",
        "description": "API key scope `documents:read` (or `documents:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Document"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "documents:read"
      }
    },
    "/documents/upload": {
      "post": {
        "tags": [
          "Documents"
        ],
        "operationId": "Documents_upload",
        "summary": "Create document upload",
        "description": "API key scope `documents:write` (or `documents:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "filename": {
                    "type": "string"
                  },
                  "contentType": {
                    "type": "string"
                  },
                  "dppId": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "accessLevel": {
                    "type": "string"
                  },
                  "data": {
                    "type": "string"
                  },
                  "supersedesId": {
                    "type": "string"
                  },
                  "ocrLanguages": {}
                },
                "required": [
                  "filename",
                  "type",
                  "title",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "documents:write"
      }
    },
    "/documents/upload-multipart": {
      "post": {
        "tags": [
          "Documents"
        ],
        "operationId": "Documents_uploadMultipart",
        "summary": "Create document upload multipart",
        "description": "API key scope `documents:write` (or `documents:*`, `*`).",
        "responses": {
          "201": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "documents:write"
      }
    },
    "/dop-records/{reference}/revoke": {
      "post": {
        "tags": [
          "Construction products"
        ],
        "operationId": "Construction_revokeDop",
        "summary": "Revoke a dop record",
        "description": "API key scope `dop-records:write` (or `dop-records:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dop-records:write"
      }
    },
    "/dpp": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_list",
        "summary": "List passports",
        "description": "Passports, most recently changed first: at most LIST_MAX rows per request; page with `limit` and `offset`.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "gtin",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "product": {
                          "$ref": "#/components/schemas/Product"
                        },
                        "version": {
                          "$ref": "#/components/schemas/DppVersion"
                        },
                        "id": {
                          "type": "string"
                        },
                        "organizationId": {
                          "type": "string"
                        },
                        "productId": {
                          "type": "string"
                        },
                        "schemaId": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        },
                        "lifecycleState": {
                          "type": "string"
                        },
                        "currentVersion": {
                          "type": "number"
                        },
                        "publishedVersion": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "publishedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "publishedMarkets": {
                          "anyOf": [
                            {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "publicRedactions": {},
                        "publicDisclosures": {},
                        "pendingPublicRedactions": {},
                        "pendingPublicDisclosures": {},
                        "derivedFromId": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "derivation": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "derivationMeta": {},
                        "sourceLocale": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "carbonBaseline": {},
                        "correctionOpenedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "suspendedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "suspensionReason": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "suspendedFromLifecycleState": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time"
                        }
                      },
                      "required": [
                        "product",
                        "version",
                        "id",
                        "organizationId",
                        "productId",
                        "schemaId",
                        "status",
                        "lifecycleState",
                        "currentVersion",
                        "publishedVersion",
                        "publishedAt",
                        "publishedMarkets",
                        "publicRedactions",
                        "publicDisclosures",
                        "pendingPublicRedactions",
                        "pendingPublicDisclosures",
                        "derivedFromId",
                        "derivation",
                        "derivationMeta",
                        "sourceLocale",
                        "carbonBaseline",
                        "correctionOpenedAt",
                        "suspendedAt",
                        "suspensionReason",
                        "suspendedFromLifecycleState",
                        "createdAt",
                        "updatedAt"
                      ]
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "currentVersion": {
                            "type": "number"
                          },
                          "schemaId": {
                            "type": "string"
                          },
                          "productId": {
                            "type": "string"
                          },
                          "productName": {
                            "type": "string"
                          },
                          "category": {
                            "type": "string"
                          },
                          "updatedAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "id",
                          "status",
                          "currentVersion",
                          "schemaId",
                          "productId",
                          "productName",
                          "category",
                          "updatedAt"
                        ]
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      },
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_create",
        "summary": "Create a passport",
        "description": "API key scope `dpp:write` (or `dpp:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "productId": {
                    "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)$"
                  },
                  "schemaId": {
                    "type": "string",
                    "minLength": 2
                  },
                  "schemaVersion": {
                    "default": "1.0",
                    "type": "string"
                  },
                  "data": {
                    "default": {},
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "productId",
                  "schemaId",
                  "schemaVersion",
                  "data"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "product": {
                          "$ref": "#/components/schemas/Product"
                        },
                        "version": {
                          "$ref": "#/components/schemas/DppVersion"
                        },
                        "id": {
                          "type": "string"
                        },
                        "organizationId": {
                          "type": "string"
                        },
                        "productId": {
                          "type": "string"
                        },
                        "schemaId": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        },
                        "lifecycleState": {
                          "type": "string"
                        },
                        "currentVersion": {
                          "type": "number"
                        },
                        "publishedVersion": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "publishedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "publishedMarkets": {
                          "anyOf": [
                            {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "publicRedactions": {},
                        "publicDisclosures": {},
                        "pendingPublicRedactions": {},
                        "pendingPublicDisclosures": {},
                        "derivedFromId": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "derivation": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "derivationMeta": {},
                        "sourceLocale": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "carbonBaseline": {},
                        "correctionOpenedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "suspendedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "suspensionReason": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "suspendedFromLifecycleState": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time"
                        }
                      },
                      "required": [
                        "product",
                        "version",
                        "id",
                        "organizationId",
                        "productId",
                        "schemaId",
                        "status",
                        "lifecycleState",
                        "currentVersion",
                        "publishedVersion",
                        "publishedAt",
                        "publishedMarkets",
                        "publicRedactions",
                        "publicDisclosures",
                        "pendingPublicRedactions",
                        "pendingPublicDisclosures",
                        "derivedFromId",
                        "derivation",
                        "derivationMeta",
                        "sourceLocale",
                        "carbonBaseline",
                        "correctionOpenedAt",
                        "suspendedAt",
                        "suspensionReason",
                        "suspendedFromLifecycleState",
                        "createdAt",
                        "updatedAt"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "product": {},
                        "version": {
                          "type": "object",
                          "properties": {
                            "data": {
                              "type": "object",
                              "additionalProperties": {}
                            }
                          },
                          "required": [
                            "data"
                          ]
                        },
                        "id": {
                          "type": "string"
                        },
                        "organizationId": {
                          "type": "string"
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "status": {
                          "type": "string"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "productId": {
                          "type": "string"
                        },
                        "schemaId": {
                          "type": "string"
                        },
                        "lifecycleState": {
                          "type": "string"
                        },
                        "currentVersion": {
                          "type": "number"
                        },
                        "publishedVersion": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "publishedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "publishedMarkets": {
                          "anyOf": [
                            {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "publicRedactions": {},
                        "publicDisclosures": {},
                        "pendingPublicRedactions": {},
                        "pendingPublicDisclosures": {},
                        "derivedFromId": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "derivation": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "derivationMeta": {},
                        "sourceLocale": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "carbonBaseline": {},
                        "correctionOpenedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "suspendedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "suspensionReason": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "suspendedFromLifecycleState": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "product",
                        "version",
                        "id",
                        "organizationId",
                        "createdAt",
                        "status",
                        "updatedAt",
                        "productId",
                        "schemaId",
                        "lifecycleState",
                        "currentVersion",
                        "publishedVersion",
                        "publishedAt",
                        "publishedMarkets",
                        "publicRedactions",
                        "publicDisclosures",
                        "pendingPublicRedactions",
                        "pendingPublicDisclosures",
                        "derivedFromId",
                        "derivation",
                        "derivationMeta",
                        "sourceLocale",
                        "carbonBaseline",
                        "correctionOpenedAt",
                        "suspendedAt",
                        "suspensionReason",
                        "suspendedFromLifecycleState"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_get",
        "summary": "Get a passport",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product": {
                      "$ref": "#/components/schemas/Product"
                    },
                    "version": {
                      "$ref": "#/components/schemas/DppVersion"
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "productId": {
                      "type": "string"
                    },
                    "schemaId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "lifecycleState": {
                      "type": "string"
                    },
                    "currentVersion": {
                      "type": "number"
                    },
                    "publishedVersion": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "publishedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "publishedMarkets": {
                      "anyOf": [
                        {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "publicRedactions": {},
                    "publicDisclosures": {},
                    "pendingPublicRedactions": {},
                    "pendingPublicDisclosures": {},
                    "derivedFromId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "derivation": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "derivationMeta": {},
                    "sourceLocale": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "carbonBaseline": {},
                    "correctionOpenedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "suspendedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "suspensionReason": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "suspendedFromLifecycleState": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "product",
                    "version",
                    "id",
                    "organizationId",
                    "productId",
                    "schemaId",
                    "status",
                    "lifecycleState",
                    "currentVersion",
                    "publishedVersion",
                    "publishedAt",
                    "publishedMarkets",
                    "publicRedactions",
                    "publicDisclosures",
                    "pendingPublicRedactions",
                    "pendingPublicDisclosures",
                    "derivedFromId",
                    "derivation",
                    "derivationMeta",
                    "sourceLocale",
                    "carbonBaseline",
                    "correctionOpenedAt",
                    "suspendedAt",
                    "suspensionReason",
                    "suspendedFromLifecycleState",
                    "createdAt",
                    "updatedAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      },
      "put": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_update",
        "summary": "Replace a passport",
        "description": "API key scope `dpp:write` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "expectedVersion": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "schemaVersion": {
                    "type": "string"
                  },
                  "data": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "data"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product": {
                      "$ref": "#/components/schemas/Product"
                    },
                    "version": {
                      "$ref": "#/components/schemas/DppVersion"
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "productId": {
                      "type": "string"
                    },
                    "schemaId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "lifecycleState": {
                      "type": "string"
                    },
                    "currentVersion": {
                      "type": "number"
                    },
                    "publishedVersion": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "publishedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "publishedMarkets": {
                      "anyOf": [
                        {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "publicRedactions": {},
                    "publicDisclosures": {},
                    "pendingPublicRedactions": {},
                    "pendingPublicDisclosures": {},
                    "derivedFromId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "derivation": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "derivationMeta": {},
                    "sourceLocale": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "carbonBaseline": {},
                    "correctionOpenedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "suspendedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "suspensionReason": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "suspendedFromLifecycleState": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "product",
                    "version",
                    "id",
                    "organizationId",
                    "productId",
                    "schemaId",
                    "status",
                    "lifecycleState",
                    "currentVersion",
                    "publishedVersion",
                    "publishedAt",
                    "publishedMarkets",
                    "publicRedactions",
                    "publicDisclosures",
                    "pendingPublicRedactions",
                    "pendingPublicDisclosures",
                    "derivedFromId",
                    "derivation",
                    "derivationMeta",
                    "sourceLocale",
                    "carbonBaseline",
                    "correctionOpenedAt",
                    "suspendedAt",
                    "suspensionReason",
                    "suspendedFromLifecycleState",
                    "createdAt",
                    "updatedAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      },
      "delete": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_archive",
        "summary": "Delete a passport",
        "description": "Archive one passport. Editors may archive or recall a single passport (as the role guide states); portfolio-wide publication, archive and recall through bulk-action are reserved to owners and admins.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "registry": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "enum": [
                            "not_required",
                            "not_configured",
                            "submitted",
                            "failed"
                          ]
                        },
                        "error": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "status"
                      ]
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "productId": {
                      "type": "string"
                    },
                    "schemaId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "lifecycleState": {
                      "type": "string"
                    },
                    "currentVersion": {
                      "type": "number"
                    },
                    "publishedVersion": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "publishedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "publishedMarkets": {
                      "anyOf": [
                        {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "publicRedactions": {},
                    "publicDisclosures": {},
                    "pendingPublicRedactions": {},
                    "pendingPublicDisclosures": {},
                    "derivedFromId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "derivation": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "derivationMeta": {},
                    "sourceLocale": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "carbonBaseline": {},
                    "correctionOpenedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "suspendedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "suspensionReason": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "suspendedFromLifecycleState": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "registry",
                    "id",
                    "organizationId",
                    "productId",
                    "schemaId",
                    "status",
                    "lifecycleState",
                    "currentVersion",
                    "publishedVersion",
                    "publishedAt",
                    "publishedMarkets",
                    "publicRedactions",
                    "publicDisclosures",
                    "pendingPublicRedactions",
                    "pendingPublicDisclosures",
                    "derivedFromId",
                    "derivation",
                    "derivationMeta",
                    "sourceLocale",
                    "carbonBaseline",
                    "correctionOpenedAt",
                    "suspendedAt",
                    "suspensionReason",
                    "suspendedFromLifecycleState",
                    "createdAt",
                    "updatedAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/aas.json": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Aas_export",
        "summary": "Get passport aas.json",
        "description": "Asset Administration Shell (metamodel V3 JSON) of a passport version - published by default - with Nameplate, full passport data and product structure.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "assetAdministrationShells": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "modelType": {
                            "type": "string"
                          },
                          "id": {
                            "type": "string"
                          },
                          "idShort": {
                            "type": "string"
                          },
                          "assetInformation": {
                            "type": "object",
                            "properties": {
                              "specificAssetIds": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "value": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "name",
                                    "value"
                                  ]
                                }
                              },
                              "assetKind": {
                                "type": "string"
                              },
                              "globalAssetId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "assetKind",
                              "globalAssetId"
                            ]
                          },
                          "submodels": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "type": "string"
                                },
                                "keys": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string"
                                      },
                                      "value": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "type",
                                      "value"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "type",
                                "keys"
                              ]
                            }
                          }
                        },
                        "required": [
                          "modelType",
                          "id",
                          "idShort",
                          "assetInformation",
                          "submodels"
                        ]
                      }
                    },
                    "submodels": {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "modelType": {
                                "type": "string"
                              },
                              "id": {
                                "type": "string"
                              },
                              "idShort": {
                                "type": "string"
                              },
                              "kind": {
                                "type": "string"
                              },
                              "semanticId": {
                                "type": "object",
                                "properties": {
                                  "type": {
                                    "type": "string",
                                    "enum": [
                                      "ExternalReference",
                                      "ModelReference"
                                    ]
                                  },
                                  "keys": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string"
                                        },
                                        "value": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "value"
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "type",
                                  "keys"
                                ]
                              },
                              "submodelElements": {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "modelType": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "modelType"
                                      ],
                                      "additionalProperties": {}
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              }
                            },
                            "required": [
                              "modelType",
                              "id",
                              "idShort",
                              "kind",
                              "semanticId",
                              "submodelElements"
                            ]
                          },
                          {
                            "type": "object",
                            "properties": {
                              "modelType": {
                                "type": "string"
                              },
                              "id": {
                                "type": "string"
                              },
                              "idShort": {
                                "type": "string"
                              },
                              "kind": {
                                "type": "string"
                              },
                              "semanticId": {
                                "type": "object",
                                "properties": {
                                  "type": {
                                    "type": "string",
                                    "enum": [
                                      "ExternalReference",
                                      "ModelReference"
                                    ]
                                  },
                                  "keys": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string"
                                        },
                                        "value": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "value"
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "type",
                                  "keys"
                                ]
                              },
                              "submodelElements": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "modelType": {
                                      "type": "string"
                                    },
                                    "idShort": {
                                      "type": "string"
                                    },
                                    "orderRelevant": {
                                      "type": "boolean"
                                    },
                                    "typeValueListElement": {
                                      "type": "string"
                                    },
                                    "value": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "modelType": {
                                            "type": "string"
                                          },
                                          "value": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "modelType": {
                                                  "type": "string"
                                                }
                                              },
                                              "required": [
                                                "modelType"
                                              ],
                                              "additionalProperties": {}
                                            }
                                          }
                                        },
                                        "required": [
                                          "modelType",
                                          "value"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "modelType",
                                    "idShort",
                                    "orderRelevant",
                                    "typeValueListElement",
                                    "value"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "modelType",
                              "id",
                              "idShort",
                              "kind",
                              "semanticId",
                              "submodelElements"
                            ]
                          }
                        ]
                      }
                    },
                    "conceptDescriptions": {
                      "type": "array",
                      "items": {}
                    }
                  },
                  "required": [
                    "assetAdministrationShells",
                    "submodels",
                    "conceptDescriptions"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/audit-package": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "EvidenceLinks_auditPackage",
        "summary": "Get passport audit package",
        "description": "Version-specific internal JSON audit package; contains no file bytes or storage credentials.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/bim": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Construction_bim",
        "summary": "Get passport bim",
        "description": "BIM parameters (IFC property sets / Revit shared parameters) and the object links.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "declared": {
                      "type": "boolean"
                    },
                    "parameters": {
                      "type": "object",
                      "properties": {
                        "ifc": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "value": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            },
                            "required": [
                              "name",
                              "value"
                            ]
                          }
                        },
                        "revit": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "value": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            },
                            "required": [
                              "name",
                              "value"
                            ]
                          }
                        }
                      },
                      "required": [
                        "ifc",
                        "revit"
                      ]
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "modelUrl": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "apiUrl": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "modelUrl",
                        "apiUrl"
                      ]
                    },
                    "lod": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "classification": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "gaps": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "caveat": {
                      "type": "string"
                    },
                    "dppId": {
                      "type": "string"
                    },
                    "product": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "sku": {
                          "type": "string"
                        },
                        "gtin": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "category": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "name",
                        "sku",
                        "gtin",
                        "category"
                      ]
                    },
                    "version": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "declared",
                    "parameters",
                    "links",
                    "lod",
                    "classification",
                    "gaps",
                    "caveat",
                    "dppId",
                    "product",
                    "version"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/carbon-baseline": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "CarbonReport_setBaseline",
        "summary": "Add passport carbon baseline",
        "description": "Sets the reference footprint (and optional target) a reduction claim is measured against.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "footprintKgCo2e": {
                    "type": "number"
                  },
                  "useDeclared": {
                    "type": "boolean"
                  },
                  "reductionTargetPercent": {
                    "type": "number"
                  },
                  "note": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CarbonBaseline"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      },
      "delete": {
        "tags": [
          "Passports"
        ],
        "operationId": "CarbonReport_clearBaseline",
        "summary": "Delete passport carbon baseline",
        "description": "API key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "baseline": {
                      "type": "null"
                    }
                  },
                  "required": [
                    "dppId",
                    "baseline"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/carbon-estimate": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "CarbonEstimate_estimate",
        "summary": "Add passport carbon estimate",
        "description": "Estimates a bill of materials (or the text layer of a stored document). dryRun records nothing.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CarbonEstimateInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "recorded": {
                          "type": "boolean"
                        },
                        "notes": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "dppId": {
                          "type": "string"
                        },
                        "reference": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "generatedAt": {
                          "type": "string"
                        },
                        "product": {
                          "type": "object",
                          "properties": {
                            "category": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            },
                            "sku": {
                              "type": "string"
                            },
                            "gtin": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "category",
                            "name",
                            "sku",
                            "gtin"
                          ]
                        },
                        "version": {
                          "type": "number"
                        },
                        "source": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "document",
                                "bom"
                              ]
                            },
                            "documentId": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "documentTitle": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "characters": {
                              "type": "number"
                            },
                            "truncated": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "type",
                            "documentId",
                            "documentTitle",
                            "characters",
                            "truncated"
                          ]
                        },
                        "bom": {
                          "type": "object",
                          "properties": {
                            "lines": {
                              "type": "number"
                            },
                            "mappableLines": {
                              "type": "number"
                            },
                            "unreadableLines": {
                              "type": "array",
                              "items": {
                                "$ref": "#/components/schemas/UnplacedBomLine"
                              }
                            },
                            "mapping": {
                              "$ref": "#/components/schemas/BomProposalResult"
                            },
                            "mappedBy": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "lines",
                            "mappableLines",
                            "unreadableLines",
                            "mapping",
                            "mappedBy"
                          ]
                        },
                        "provider": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "model": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "configured": {
                              "type": "boolean"
                            },
                            "degraded": {
                              "type": "boolean"
                            },
                            "providerError": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "latencyMs": {
                              "type": [
                                "number",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "name",
                            "model",
                            "configured",
                            "degraded",
                            "providerError",
                            "latencyMs"
                          ]
                        },
                        "estimate": {
                          "type": "object",
                          "properties": {
                            "method": {
                              "type": "string"
                            },
                            "methodology": {
                              "type": "string"
                            },
                            "functionalUnit": {
                              "type": "string"
                            },
                            "totalKgCo2e": {
                              "type": "number"
                            },
                            "stages": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "key": {
                                    "type": "string"
                                  },
                                  "name": {
                                    "type": "string"
                                  },
                                  "value": {
                                    "type": "number"
                                  },
                                  "share": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "key",
                                  "name",
                                  "value",
                                  "share"
                                ]
                              }
                            },
                            "hotspots": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "material": {
                                    "type": "string"
                                  },
                                  "valueKgCo2e": {
                                    "type": "number"
                                  },
                                  "sharePct": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "material",
                                  "valueKgCo2e",
                                  "sharePct"
                                ]
                              }
                            },
                            "recommendations": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "massKg": {
                              "type": "number"
                            },
                            "energyKwh": {
                              "type": "number"
                            },
                            "transportMassKg": {
                              "type": "number"
                            },
                            "uncertaintyPct": {
                              "type": "number"
                            },
                            "confidence": {
                              "type": "string"
                            },
                            "factorTableVersion": {
                              "type": "string"
                            },
                            "estimateVersion": {
                              "type": "string"
                            },
                            "a1FromMapping": {
                              "type": "number"
                            },
                            "a1FromCalculator": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "method",
                            "methodology",
                            "functionalUnit",
                            "totalKgCo2e",
                            "stages",
                            "hotspots",
                            "recommendations",
                            "massKg",
                            "energyKwh",
                            "transportMassKg",
                            "uncertaintyPct",
                            "confidence",
                            "factorTableVersion",
                            "estimateVersion",
                            "a1FromMapping",
                            "a1FromCalculator"
                          ]
                        },
                        "signals": {
                          "type": "object",
                          "properties": {
                            "verdict": {
                              "type": "string",
                              "enum": [
                                "partial",
                                "complete",
                                "thin"
                              ]
                            },
                            "reasons": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "lineCoveragePercent": {
                              "type": [
                                "number",
                                "null"
                              ]
                            },
                            "massCoveragePercent": {
                              "type": [
                                "number",
                                "null"
                              ]
                            },
                            "note": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "verdict",
                            "reasons",
                            "lineCoveragePercent",
                            "massCoveragePercent",
                            "note"
                          ]
                        },
                        "comparison": {
                          "$ref": "#/components/schemas/DeclaredComparison"
                        },
                        "gapActions": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "declaredPath": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "note": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "caveat": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "writtenToPassport": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "recorded",
                        "notes",
                        "dppId",
                        "reference",
                        "generatedAt",
                        "product",
                        "version",
                        "source",
                        "bom",
                        "provider",
                        "estimate",
                        "signals",
                        "comparison",
                        "gapActions",
                        "declaredPath",
                        "note",
                        "caveat",
                        "disclaimer",
                        "writtenToPassport"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "recorded": {
                          "type": "boolean"
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "notes": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "reference": {
                          "type": "string"
                        },
                        "dppId": {
                          "type": "string"
                        },
                        "generatedAt": {
                          "type": "string"
                        },
                        "product": {
                          "type": "object",
                          "properties": {
                            "category": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            },
                            "sku": {
                              "type": "string"
                            },
                            "gtin": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "category",
                            "name",
                            "sku",
                            "gtin"
                          ]
                        },
                        "version": {
                          "type": "number"
                        },
                        "source": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "document",
                                "bom"
                              ]
                            },
                            "documentId": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "documentTitle": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "characters": {
                              "type": "number"
                            },
                            "truncated": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "type",
                            "documentId",
                            "documentTitle",
                            "characters",
                            "truncated"
                          ]
                        },
                        "bom": {
                          "type": "object",
                          "properties": {
                            "lines": {
                              "type": "number"
                            },
                            "mappableLines": {
                              "type": "number"
                            },
                            "unreadableLines": {
                              "type": "array",
                              "items": {
                                "$ref": "#/components/schemas/UnplacedBomLine"
                              }
                            },
                            "mapping": {
                              "$ref": "#/components/schemas/BomProposalResult"
                            },
                            "mappedBy": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "lines",
                            "mappableLines",
                            "unreadableLines",
                            "mapping",
                            "mappedBy"
                          ]
                        },
                        "provider": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "model": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "configured": {
                              "type": "boolean"
                            },
                            "degraded": {
                              "type": "boolean"
                            },
                            "providerError": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "latencyMs": {
                              "type": [
                                "number",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "name",
                            "model",
                            "configured",
                            "degraded",
                            "providerError",
                            "latencyMs"
                          ]
                        },
                        "estimate": {
                          "type": "object",
                          "properties": {
                            "method": {
                              "type": "string"
                            },
                            "methodology": {
                              "type": "string"
                            },
                            "functionalUnit": {
                              "type": "string"
                            },
                            "totalKgCo2e": {
                              "type": "number"
                            },
                            "stages": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "key": {
                                    "type": "string"
                                  },
                                  "name": {
                                    "type": "string"
                                  },
                                  "value": {
                                    "type": "number"
                                  },
                                  "share": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "key",
                                  "name",
                                  "value",
                                  "share"
                                ]
                              }
                            },
                            "hotspots": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "material": {
                                    "type": "string"
                                  },
                                  "valueKgCo2e": {
                                    "type": "number"
                                  },
                                  "sharePct": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "material",
                                  "valueKgCo2e",
                                  "sharePct"
                                ]
                              }
                            },
                            "recommendations": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "massKg": {
                              "type": "number"
                            },
                            "energyKwh": {
                              "type": "number"
                            },
                            "transportMassKg": {
                              "type": "number"
                            },
                            "uncertaintyPct": {
                              "type": "number"
                            },
                            "confidence": {
                              "type": "string"
                            },
                            "factorTableVersion": {
                              "type": "string"
                            },
                            "estimateVersion": {
                              "type": "string"
                            },
                            "a1FromMapping": {
                              "type": "number"
                            },
                            "a1FromCalculator": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "method",
                            "methodology",
                            "functionalUnit",
                            "totalKgCo2e",
                            "stages",
                            "hotspots",
                            "recommendations",
                            "massKg",
                            "energyKwh",
                            "transportMassKg",
                            "uncertaintyPct",
                            "confidence",
                            "factorTableVersion",
                            "estimateVersion",
                            "a1FromMapping",
                            "a1FromCalculator"
                          ]
                        },
                        "signals": {
                          "type": "object",
                          "properties": {
                            "verdict": {
                              "type": "string",
                              "enum": [
                                "partial",
                                "complete",
                                "thin"
                              ]
                            },
                            "reasons": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "lineCoveragePercent": {
                              "type": [
                                "number",
                                "null"
                              ]
                            },
                            "massCoveragePercent": {
                              "type": [
                                "number",
                                "null"
                              ]
                            },
                            "note": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "verdict",
                            "reasons",
                            "lineCoveragePercent",
                            "massCoveragePercent",
                            "note"
                          ]
                        },
                        "comparison": {
                          "$ref": "#/components/schemas/DeclaredComparison"
                        },
                        "gapActions": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "declaredPath": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "note": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "caveat": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "writtenToPassport": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "id",
                        "recorded",
                        "createdAt",
                        "notes",
                        "reference",
                        "dppId",
                        "generatedAt",
                        "product",
                        "version",
                        "source",
                        "bom",
                        "provider",
                        "estimate",
                        "signals",
                        "comparison",
                        "gapActions",
                        "declaredPath",
                        "note",
                        "caveat",
                        "disclaimer",
                        "writtenToPassport"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/carbon-estimates": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "CarbonEstimate_history",
        "summary": "Get passport carbon estimates",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "reference": {
                            "type": "string"
                          },
                          "versionNumber": {
                            "type": "number"
                          },
                          "status": {
                            "type": "string"
                          },
                          "dppVersion": {
                            "type": "number"
                          },
                          "source": {
                            "type": "string"
                          },
                          "provider": {
                            "type": "string"
                          },
                          "model": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "degraded": {
                            "type": "boolean"
                          },
                          "placedLines": {
                            "type": "number"
                          },
                          "unresolvedCount": {
                            "type": "number"
                          },
                          "unplacedCount": {
                            "type": "number"
                          },
                          "ignoredCount": {
                            "type": "number"
                          },
                          "totalKgCo2e": {
                            "type": "string"
                          },
                          "massCoveragePercent": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "declaredKgCo2e": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "verdict": {
                            "type": "string"
                          },
                          "note": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "createdAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "revokedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "format": "date-time"
                          },
                          "revokeReason": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "reference",
                          "versionNumber",
                          "status",
                          "dppVersion",
                          "source",
                          "provider",
                          "model",
                          "degraded",
                          "placedLines",
                          "unresolvedCount",
                          "unplacedCount",
                          "ignoredCount",
                          "totalKgCo2e",
                          "massCoveragePercent",
                          "declaredKgCo2e",
                          "verdict",
                          "note",
                          "createdAt",
                          "revokedAt",
                          "revokeReason"
                        ]
                      }
                    },
                    "count": {
                      "type": "number"
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "dppId",
                    "items",
                    "count",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/carbon-report": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "CarbonReport_report",
        "summary": "Get passport carbon report",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "generatedAt": {
                      "type": "string"
                    },
                    "product": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "sku": {
                          "type": "string"
                        },
                        "category": {
                          "type": "string"
                        },
                        "gtin": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "name",
                        "sku",
                        "category",
                        "gtin"
                      ]
                    },
                    "version": {
                      "type": "number"
                    },
                    "status": {
                      "type": "string"
                    },
                    "footprint": {
                      "type": "object",
                      "properties": {
                        "totalKgCo2e": {
                          "type": "number"
                        },
                        "declaredKgCo2e": {
                          "type": "number"
                        },
                        "declaredPath": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "supplierDeclaredKgCo2e": {
                          "type": "number"
                        },
                        "upstreamDeclaredKgCo2e": {
                          "type": "number"
                        },
                        "basis": {
                          "type": "string"
                        },
                        "byTier": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "object",
                            "properties": {
                              "nodes": {
                                "type": "number"
                              },
                              "withDeclaredCarbon": {
                                "type": "number"
                              },
                              "carbonKgCo2e": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "nodes",
                              "withDeclaredCarbon",
                              "carbonKgCo2e"
                            ]
                          }
                        },
                        "note": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "totalKgCo2e",
                        "declaredKgCo2e",
                        "declaredPath",
                        "supplierDeclaredKgCo2e",
                        "upstreamDeclaredKgCo2e",
                        "basis",
                        "byTier",
                        "note"
                      ]
                    },
                    "baseline": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "reduction": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "absoluteKgCo2e": {
                                      "type": "number"
                                    },
                                    "percent": {
                                      "type": "number"
                                    }
                                  },
                                  "required": [
                                    "absoluteKgCo2e",
                                    "percent"
                                  ]
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "target": {
                              "type": [
                                "number",
                                "null"
                              ]
                            },
                            "onTrack": {
                              "type": [
                                "boolean",
                                "null"
                              ]
                            },
                            "footprintKgCo2e": {
                              "type": "number"
                            },
                            "reductionTargetPercent": {
                              "type": [
                                "number",
                                "null"
                              ]
                            },
                            "note": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "setAt": {
                              "type": "string"
                            },
                            "setBy": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "reduction",
                            "target",
                            "onTrack",
                            "footprintKgCo2e",
                            "setAt"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "footprintKgCo2e": {
                              "type": "null"
                            },
                            "reduction": {
                              "type": "null"
                            },
                            "target": {
                              "type": "null"
                            },
                            "onTrack": {
                              "type": "null"
                            }
                          },
                          "required": [
                            "footprintKgCo2e",
                            "reduction",
                            "target",
                            "onTrack"
                          ]
                        }
                      ]
                    },
                    "previousVersion": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "version": {
                              "type": "number"
                            },
                            "declaredKgCo2e": {
                              "type": "number"
                            },
                            "path": {
                              "type": "string"
                            },
                            "deltaKgCo2e": {
                              "type": [
                                "number",
                                "null"
                              ]
                            },
                            "deltaPercent": {
                              "type": [
                                "number",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "version",
                            "declaredKgCo2e",
                            "path",
                            "deltaKgCo2e",
                            "deltaPercent"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "dataQuality": {
                      "type": "object",
                      "properties": {
                        "level": {
                          "type": "string"
                        },
                        "crossCheck": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "supplierTier1KgCo2e": {
                                  "type": "number"
                                },
                                "deltaKgCo2e": {
                                  "type": "number"
                                },
                                "supplierPercentOfDeclared": {
                                  "type": "number"
                                },
                                "verdict": {
                                  "type": "string"
                                },
                                "note": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "supplierTier1KgCo2e",
                                "deltaKgCo2e",
                                "supplierPercentOfDeclared",
                                "verdict",
                                "note"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "declaredByIssuerKgCo2e": {
                          "type": "number"
                        },
                        "declaredBySuppliersKgCo2e": {
                          "type": "number"
                        },
                        "tier1ResponseRate": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "supplyChainDepth": {
                          "type": "number"
                        },
                        "upstreamNodes": {
                          "type": "number"
                        },
                        "conflicts": {
                          "type": "number"
                        },
                        "estimateLikeDeclarations": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "path": {
                                "type": "string"
                              },
                              "value": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "path",
                              "value"
                            ]
                          }
                        },
                        "indicators": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "note": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "level",
                        "crossCheck",
                        "declaredByIssuerKgCo2e",
                        "declaredBySuppliersKgCo2e",
                        "tier1ResponseRate",
                        "supplyChainDepth",
                        "upstreamNodes",
                        "conflicts",
                        "estimateLikeDeclarations",
                        "indicators",
                        "note"
                      ]
                    },
                    "hotspots": {
                      "type": "object",
                      "properties": {
                        "contributors": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "tier": {
                                "type": "number"
                              },
                              "entity": {
                                "type": "string"
                              },
                              "declaredCarbonKgCo2e": {
                                "type": [
                                  "number",
                                  "null"
                                ]
                              },
                              "status": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "tier",
                              "entity",
                              "status"
                            ]
                          }
                        },
                        "materials": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "declaredBy": {
                                "type": "number"
                              },
                              "lowestTier": {
                                "type": "number"
                              },
                              "material": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "declaredBy",
                              "lowestTier",
                              "material"
                            ]
                          }
                        }
                      },
                      "required": [
                        "contributors",
                        "materials"
                      ]
                    },
                    "conflicts": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Finding"
                      }
                    },
                    "warnings": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Finding"
                      }
                    },
                    "missingInputs": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "methodology": {
                      "type": "object",
                      "properties": {
                        "version": {
                          "type": "string"
                        },
                        "standard": {
                          "type": "string"
                        },
                        "boundary": {
                          "type": "string"
                        },
                        "allocation": {
                          "type": "string"
                        },
                        "factorSource": {
                          "type": "string"
                        },
                        "exclusions": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "limitations": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "version",
                        "standard",
                        "boundary",
                        "allocation",
                        "factorSource",
                        "exclusions",
                        "limitations"
                      ]
                    },
                    "reference": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "disclaimer": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "dppId",
                    "generatedAt",
                    "product",
                    "version",
                    "status",
                    "footprint",
                    "baseline",
                    "previousVersion",
                    "dataQuality",
                    "hotspots",
                    "conflicts",
                    "warnings",
                    "missingInputs",
                    "methodology",
                    "reference",
                    "disclaimer"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      },
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "CarbonReport_issue",
        "summary": "Add passport carbon report",
        "description": "Issues a snapshot (reference like PCF-SKU-v1) of the current footprint.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "report": {
                      "type": "object",
                      "properties": {
                        "reference": {
                          "type": "string"
                        },
                        "dppId": {
                          "type": "string"
                        },
                        "generatedAt": {
                          "type": "string"
                        },
                        "product": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "sku": {
                              "type": "string"
                            },
                            "category": {
                              "type": "string"
                            },
                            "gtin": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "name",
                            "sku",
                            "category",
                            "gtin"
                          ]
                        },
                        "version": {
                          "type": "number"
                        },
                        "status": {
                          "type": "string"
                        },
                        "footprint": {
                          "type": "object",
                          "properties": {
                            "totalKgCo2e": {
                              "type": "number"
                            },
                            "declaredKgCo2e": {
                              "type": "number"
                            },
                            "declaredPath": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "supplierDeclaredKgCo2e": {
                              "type": "number"
                            },
                            "upstreamDeclaredKgCo2e": {
                              "type": "number"
                            },
                            "basis": {
                              "type": "string"
                            },
                            "byTier": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "nodes": {
                                    "type": "number"
                                  },
                                  "withDeclaredCarbon": {
                                    "type": "number"
                                  },
                                  "carbonKgCo2e": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "nodes",
                                  "withDeclaredCarbon",
                                  "carbonKgCo2e"
                                ]
                              }
                            },
                            "note": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "totalKgCo2e",
                            "declaredKgCo2e",
                            "declaredPath",
                            "supplierDeclaredKgCo2e",
                            "upstreamDeclaredKgCo2e",
                            "basis",
                            "byTier",
                            "note"
                          ]
                        },
                        "baseline": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "reduction": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "absoluteKgCo2e": {
                                          "type": "number"
                                        },
                                        "percent": {
                                          "type": "number"
                                        }
                                      },
                                      "required": [
                                        "absoluteKgCo2e",
                                        "percent"
                                      ]
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "target": {
                                  "type": [
                                    "number",
                                    "null"
                                  ]
                                },
                                "onTrack": {
                                  "type": [
                                    "boolean",
                                    "null"
                                  ]
                                },
                                "footprintKgCo2e": {
                                  "type": "number"
                                },
                                "reductionTargetPercent": {
                                  "type": [
                                    "number",
                                    "null"
                                  ]
                                },
                                "note": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "setAt": {
                                  "type": "string"
                                },
                                "setBy": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                }
                              },
                              "required": [
                                "reduction",
                                "target",
                                "onTrack",
                                "footprintKgCo2e",
                                "setAt"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "footprintKgCo2e": {
                                  "type": "null"
                                },
                                "reduction": {
                                  "type": "null"
                                },
                                "target": {
                                  "type": "null"
                                },
                                "onTrack": {
                                  "type": "null"
                                }
                              },
                              "required": [
                                "footprintKgCo2e",
                                "reduction",
                                "target",
                                "onTrack"
                              ]
                            }
                          ]
                        },
                        "previousVersion": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "version": {
                                  "type": "number"
                                },
                                "declaredKgCo2e": {
                                  "type": "number"
                                },
                                "path": {
                                  "type": "string"
                                },
                                "deltaKgCo2e": {
                                  "type": [
                                    "number",
                                    "null"
                                  ]
                                },
                                "deltaPercent": {
                                  "type": [
                                    "number",
                                    "null"
                                  ]
                                }
                              },
                              "required": [
                                "version",
                                "declaredKgCo2e",
                                "path",
                                "deltaKgCo2e",
                                "deltaPercent"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "dataQuality": {
                          "type": "object",
                          "properties": {
                            "level": {
                              "type": "string"
                            },
                            "crossCheck": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "supplierTier1KgCo2e": {
                                      "type": "number"
                                    },
                                    "deltaKgCo2e": {
                                      "type": "number"
                                    },
                                    "supplierPercentOfDeclared": {
                                      "type": "number"
                                    },
                                    "verdict": {
                                      "type": "string"
                                    },
                                    "note": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "supplierTier1KgCo2e",
                                    "deltaKgCo2e",
                                    "supplierPercentOfDeclared",
                                    "verdict",
                                    "note"
                                  ]
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "declaredByIssuerKgCo2e": {
                              "type": "number"
                            },
                            "declaredBySuppliersKgCo2e": {
                              "type": "number"
                            },
                            "tier1ResponseRate": {
                              "type": [
                                "number",
                                "null"
                              ]
                            },
                            "supplyChainDepth": {
                              "type": "number"
                            },
                            "upstreamNodes": {
                              "type": "number"
                            },
                            "conflicts": {
                              "type": "number"
                            },
                            "estimateLikeDeclarations": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "path": {
                                    "type": "string"
                                  },
                                  "value": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "path",
                                  "value"
                                ]
                              }
                            },
                            "indicators": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "note": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "level",
                            "crossCheck",
                            "declaredByIssuerKgCo2e",
                            "declaredBySuppliersKgCo2e",
                            "tier1ResponseRate",
                            "supplyChainDepth",
                            "upstreamNodes",
                            "conflicts",
                            "estimateLikeDeclarations",
                            "indicators",
                            "note"
                          ]
                        },
                        "hotspots": {
                          "type": "object",
                          "properties": {
                            "contributors": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "tier": {
                                    "type": "number"
                                  },
                                  "entity": {
                                    "type": "string"
                                  },
                                  "declaredCarbonKgCo2e": {
                                    "type": [
                                      "number",
                                      "null"
                                    ]
                                  },
                                  "status": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "tier",
                                  "entity",
                                  "status"
                                ]
                              }
                            },
                            "materials": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "declaredBy": {
                                    "type": "number"
                                  },
                                  "lowestTier": {
                                    "type": "number"
                                  },
                                  "material": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "declaredBy",
                                  "lowestTier",
                                  "material"
                                ]
                              }
                            }
                          },
                          "required": [
                            "contributors",
                            "materials"
                          ]
                        },
                        "conflicts": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Finding"
                          }
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Finding"
                          }
                        },
                        "missingInputs": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "methodology": {
                          "type": "object",
                          "properties": {
                            "version": {
                              "type": "string"
                            },
                            "standard": {
                              "type": "string"
                            },
                            "boundary": {
                              "type": "string"
                            },
                            "allocation": {
                              "type": "string"
                            },
                            "factorSource": {
                              "type": "string"
                            },
                            "exclusions": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "limitations": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "required": [
                            "version",
                            "standard",
                            "boundary",
                            "allocation",
                            "factorSource",
                            "exclusions",
                            "limitations"
                          ]
                        },
                        "disclaimer": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "reference",
                        "dppId",
                        "generatedAt",
                        "product",
                        "version",
                        "status",
                        "footprint",
                        "baseline",
                        "previousVersion",
                        "dataQuality",
                        "hotspots",
                        "conflicts",
                        "warnings",
                        "missingInputs",
                        "methodology",
                        "disclaimer"
                      ]
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "dppId": {
                      "type": "string"
                    },
                    "payload": {},
                    "reference": {
                      "type": "string"
                    },
                    "versionNumber": {
                      "type": "number"
                    },
                    "issuedBy": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "issuedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "revokedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "revokedReason": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "totalKgCo2e": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "declaredKgCo2e": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "methodologyVersion": {
                      "type": "string"
                    },
                    "boundary": {
                      "type": "string"
                    },
                    "upstreamKgCo2e": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "baselineKgCo2e": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "reductionPercent": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "dataQuality": {}
                  },
                  "required": [
                    "report",
                    "id",
                    "organizationId",
                    "status",
                    "dppId",
                    "payload",
                    "reference",
                    "versionNumber",
                    "issuedBy",
                    "issuedAt",
                    "revokedAt",
                    "revokedReason",
                    "totalKgCo2e",
                    "declaredKgCo2e",
                    "methodologyVersion",
                    "boundary",
                    "upstreamKgCo2e",
                    "baselineKgCo2e",
                    "reductionPercent",
                    "dataQuality"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/carbon-report.csv": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "CarbonReport_csv",
        "summary": "Get passport carbon report.csv",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/carbon-reports": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "CarbonReport_history",
        "summary": "Get passport carbon reports",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "reference": {
                        "type": "string"
                      },
                      "versionNumber": {
                        "type": "number"
                      },
                      "status": {
                        "type": "string"
                      },
                      "methodologyVersion": {
                        "type": "string"
                      },
                      "totalKgCo2e": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "declaredKgCo2e": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "upstreamKgCo2e": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "baselineKgCo2e": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "reductionPercent": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "dataQuality": {},
                      "issuedAt": {
                        "type": "string",
                        "format": "date-time"
                      }
                    },
                    "required": [
                      "id",
                      "reference",
                      "versionNumber",
                      "status",
                      "methodologyVersion",
                      "totalKgCo2e",
                      "declaredKgCo2e",
                      "upstreamKgCo2e",
                      "baselineKgCo2e",
                      "reductionPercent",
                      "dataQuality",
                      "issuedAt"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/classification": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Chemicals_classification",
        "summary": "Get passport classification",
        "description": "Live CLP classification and derived label of one mixture.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "markets",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "method": {
                      "type": "string"
                    },
                    "clpSubsetVersion": {
                      "type": "string"
                    },
                    "product": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "sku": {
                          "type": "string"
                        },
                        "gtin": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "category": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "name",
                        "sku",
                        "gtin",
                        "category"
                      ]
                    },
                    "version": {
                      "type": "number"
                    },
                    "label": {
                      "$ref": "#/components/schemas/Label"
                    },
                    "labelComparison": {
                      "$ref": "#/components/schemas/LabelComparison"
                    },
                    "obligations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ChemicalObligation"
                      }
                    },
                    "ufi": {
                      "type": "object",
                      "properties": {
                        "recorded": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "preview": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "previewOfficial": {
                          "type": "boolean"
                        },
                        "note": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "recorded",
                        "preview",
                        "previewOfficial",
                        "note"
                      ]
                    },
                    "missingInputs": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "disclaimer": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "dppId",
                    "status",
                    "method",
                    "clpSubsetVersion",
                    "product",
                    "version",
                    "label",
                    "labelComparison",
                    "obligations",
                    "ufi",
                    "missingInputs",
                    "disclaimer"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/compliance": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Compliance_report",
        "summary": "Get passport compliance",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "latest": {
                      "$ref": "#/components/schemas/ValidationRun"
                    },
                    "runs": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ValidationRun"
                      }
                    }
                  },
                  "required": [
                    "dppId",
                    "latest",
                    "runs"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/components": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Components_tree",
        "summary": "Get passport components",
        "description": "The assembly below a passport (depth 8, 500 lines), each component's passport status and validation, and what needs attention.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "components": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "quantity": {
                            "type": "number"
                          },
                          "massKg": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "child": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string"
                                  },
                                  "publishedVersion": {
                                    "type": [
                                      "number",
                                      "null"
                                    ]
                                  },
                                  "compliant": {
                                    "type": [
                                      "boolean",
                                      "null"
                                    ]
                                  },
                                  "validated": {
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "status",
                                  "publishedVersion",
                                  "compliant",
                                  "validated"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "externalReference": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "children": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/AssemblyNode"
                            }
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "quantity",
                          "massKg",
                          "child",
                          "externalReference",
                          "children"
                        ],
                        "additionalProperties": {}
                      }
                    },
                    "rollup": {
                      "type": "object",
                      "properties": {
                        "components": {
                          "type": "number"
                        },
                        "withPassport": {
                          "type": "number"
                        },
                        "external": {
                          "type": "number"
                        },
                        "structureOnly": {
                          "type": "number"
                        },
                        "recalled": {
                          "type": "number"
                        },
                        "unpublished": {
                          "type": "number"
                        },
                        "failingValidation": {
                          "type": "number"
                        },
                        "notValidated": {
                          "type": "number"
                        },
                        "declaredDirectMassKg": {
                          "type": "number"
                        },
                        "directComponentsWithoutMass": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "components",
                        "withPassport",
                        "external",
                        "structureOnly",
                        "recalled",
                        "unpublished",
                        "failingValidation",
                        "notValidated",
                        "declaredDirectMassKg",
                        "directComponentsWithoutMass"
                      ]
                    },
                    "truncated": {
                      "type": "boolean"
                    },
                    "limits": {
                      "type": "object",
                      "properties": {
                        "perPassport": {
                          "type": "number",
                          "enum": [
                            500
                          ]
                        },
                        "depth": {
                          "type": "number",
                          "enum": [
                            8
                          ]
                        },
                        "treeNodes": {
                          "type": "number",
                          "enum": [
                            500
                          ]
                        }
                      },
                      "required": [
                        "perPassport",
                        "depth",
                        "treeNodes"
                      ]
                    }
                  },
                  "required": [
                    "dppId",
                    "components",
                    "rollup",
                    "truncated",
                    "limits"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      },
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Components_add",
        "summary": "Add passport components",
        "description": "Adds a component: a passport of this organization, an external component passport (https / GS1 Digital Link) or a structure-only part.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "role": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "childDppId": {
                    "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"
                      }
                    ]
                  },
                  "externalReference": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 500
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "quantity": {
                    "type": "number",
                    "exclusiveMinimum": 0,
                    "maximum": 1000000
                  },
                  "massKg": {
                    "anyOf": [
                      {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 1000000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "supplierId": {
                    "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"
                      }
                    ]
                  },
                  "visibility": {
                    "type": "string",
                    "enum": [
                      "public",
                      "restricted"
                    ]
                  },
                  "position": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 10000
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PassportComponent"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/components/{componentId}": {
      "patch": {
        "tags": [
          "Passports"
        ],
        "operationId": "Components_update",
        "summary": "Update passport components",
        "description": "Changes a component line; a link that would make a passport its own component is refused.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "componentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "role": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "childDppId": {
                    "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"
                      }
                    ]
                  },
                  "externalReference": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 500
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "quantity": {
                    "type": "number",
                    "exclusiveMinimum": 0,
                    "maximum": 1000000
                  },
                  "massKg": {
                    "anyOf": [
                      {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 1000000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "supplierId": {
                    "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"
                      }
                    ]
                  },
                  "visibility": {
                    "type": "string",
                    "enum": [
                      "public",
                      "restricted"
                    ]
                  },
                  "position": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 10000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PassportComponent2"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      },
      "delete": {
        "tags": [
          "Passports"
        ],
        "operationId": "Components_remove",
        "summary": "Delete passport components",
        "description": "Removes a component line; the component's own passport is not changed.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "componentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "removed": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "removed"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/conflicts": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Crosscheck_dppConflicts",
        "summary": "Get passport conflicts",
        "description": "The conflicts of one passport, with their remediation hint.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "conflicts": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {},
                          "path": {},
                          "outcome": {},
                          "severity": {},
                          "status": {},
                          "occurrences": {},
                          "values": {},
                          "hint": {},
                          "cleared": {},
                          "clearedAt": {},
                          "detectedAt": {},
                          "lastSeenAt": {},
                          "resolvedValue": {},
                          "resolutionNote": {},
                          "resolvedAt": {},
                          "remediation": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "path",
                          "outcome",
                          "severity",
                          "status",
                          "occurrences",
                          "values",
                          "hint",
                          "cleared",
                          "clearedAt",
                          "detectedAt",
                          "lastSeenAt",
                          "resolvedValue",
                          "resolutionNote",
                          "resolvedAt",
                          "remediation"
                        ]
                      }
                    },
                    "counts": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "open": {
                          "type": "number"
                        },
                        "resolved": {
                          "type": "number"
                        },
                        "dismissed": {
                          "type": "number"
                        },
                        "cleared": {
                          "type": "number"
                        },
                        "critical": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "total",
                        "open",
                        "resolved",
                        "dismissed",
                        "cleared",
                        "critical"
                      ]
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "conflicts",
                    "counts",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/consistency-report": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Crosscheck_issue",
        "summary": "Add passport consistency report",
        "description": "Issue the immutable consistency report (scans first, so the artifact reflects reality now).\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "note": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "scanSummary": {
                      "$ref": "#/components/schemas/CrosscheckSummary"
                    },
                    "reference": {},
                    "versionNumber": {},
                    "status": {},
                    "verdict": {},
                    "crosscheckVersion": {},
                    "dppVersion": {},
                    "counts": {
                      "type": "object",
                      "properties": {
                        "paths": {},
                        "facts": {},
                        "conflicts": {},
                        "gaps": {},
                        "agreeing": {},
                        "critical": {},
                        "major": {},
                        "minor": {},
                        "openConflicts": {},
                        "resolvedConflicts": {}
                      },
                      "required": [
                        "paths",
                        "facts",
                        "conflicts",
                        "gaps",
                        "agreeing",
                        "critical",
                        "major",
                        "minor",
                        "openConflicts",
                        "resolvedConflicts"
                      ]
                    },
                    "documents": {
                      "type": "object",
                      "properties": {
                        "total": {},
                        "read": {},
                        "unreadable": {}
                      },
                      "required": [
                        "total",
                        "read",
                        "unreadable"
                      ]
                    },
                    "conflictingPaths": {},
                    "gaps": {},
                    "outOfScope": {},
                    "headline": {},
                    "note": {},
                    "supersededBy": {},
                    "issuedAt": {},
                    "revokedAt": {},
                    "revokeReason": {},
                    "caveat": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "scanSummary",
                    "reference",
                    "versionNumber",
                    "status",
                    "verdict",
                    "crosscheckVersion",
                    "dppVersion",
                    "counts",
                    "documents",
                    "conflictingPaths",
                    "gaps",
                    "outOfScope",
                    "headline",
                    "note",
                    "supersededBy",
                    "issuedAt",
                    "revokedAt",
                    "revokeReason",
                    "caveat"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/consistency-reports": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Crosscheck_reports",
        "summary": "Get passport consistency reports",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "reference": {},
                      "versionNumber": {},
                      "status": {},
                      "verdict": {},
                      "crosscheckVersion": {},
                      "dppVersion": {},
                      "counts": {
                        "type": "object",
                        "properties": {
                          "paths": {},
                          "facts": {},
                          "conflicts": {},
                          "gaps": {},
                          "agreeing": {},
                          "critical": {},
                          "major": {},
                          "minor": {},
                          "openConflicts": {},
                          "resolvedConflicts": {}
                        },
                        "required": [
                          "paths",
                          "facts",
                          "conflicts",
                          "gaps",
                          "agreeing",
                          "critical",
                          "major",
                          "minor",
                          "openConflicts",
                          "resolvedConflicts"
                        ]
                      },
                      "documents": {
                        "type": "object",
                        "properties": {
                          "total": {},
                          "read": {},
                          "unreadable": {}
                        },
                        "required": [
                          "total",
                          "read",
                          "unreadable"
                        ]
                      },
                      "conflictingPaths": {},
                      "gaps": {},
                      "outOfScope": {},
                      "headline": {},
                      "note": {},
                      "supersededBy": {},
                      "issuedAt": {},
                      "revokedAt": {},
                      "revokeReason": {},
                      "caveat": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "reference",
                      "versionNumber",
                      "status",
                      "verdict",
                      "crosscheckVersion",
                      "dppVersion",
                      "counts",
                      "documents",
                      "conflictingPaths",
                      "gaps",
                      "outOfScope",
                      "headline",
                      "note",
                      "supersededBy",
                      "issuedAt",
                      "revokedAt",
                      "revokeReason",
                      "caveat"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/construction": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Construction_record",
        "summary": "Get passport construction",
        "description": "Everything the construction tier knows about one passport.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "product": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "sku": {
                          "type": "string"
                        },
                        "gtin": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "category": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "name",
                        "sku",
                        "gtin",
                        "category"
                      ]
                    },
                    "version": {
                      "type": "number"
                    },
                    "status": {
                      "type": "string"
                    },
                    "methodVersion": {
                      "type": "string"
                    },
                    "standard": {
                      "type": "string"
                    },
                    "dop": {
                      "$ref": "#/components/schemas/DopReadiness"
                    },
                    "epd": {
                      "$ref": "#/components/schemas/EpdReadiness"
                    },
                    "productStageGwp": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "taxonomy": {
                      "$ref": "#/components/schemas/TaxonomyResult"
                    },
                    "bim": {
                      "type": "object",
                      "properties": {
                        "declared": {
                          "type": "boolean"
                        },
                        "parameters": {
                          "type": "object",
                          "properties": {
                            "ifc": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "name": {
                                    "type": "string"
                                  },
                                  "value": {
                                    "type": [
                                      "string",
                                      "null"
                                    ]
                                  }
                                },
                                "required": [
                                  "name",
                                  "value"
                                ]
                              }
                            },
                            "revit": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "name": {
                                    "type": "string"
                                  },
                                  "value": {
                                    "type": [
                                      "string",
                                      "null"
                                    ]
                                  }
                                },
                                "required": [
                                  "name",
                                  "value"
                                ]
                              }
                            }
                          },
                          "required": [
                            "ifc",
                            "revit"
                          ]
                        },
                        "links": {
                          "type": "object",
                          "properties": {
                            "modelUrl": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "apiUrl": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "modelUrl",
                            "apiUrl"
                          ]
                        },
                        "lod": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "classification": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "gaps": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "caveat": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "declared",
                        "parameters",
                        "links",
                        "lod",
                        "classification",
                        "gaps",
                        "caveat"
                      ]
                    },
                    "declaredPaths": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "disclaimer": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "dppId",
                    "product",
                    "version",
                    "status",
                    "methodVersion",
                    "standard",
                    "dop",
                    "epd",
                    "productStageGwp",
                    "taxonomy",
                    "bim",
                    "declaredPaths",
                    "disclaimer"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/credentials": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Credentials_issue",
        "summary": "Add passport credentials",
        "description": "Signs the passport's current published version.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "validDays": {
                    "type": "number"
                  },
                  "locale": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "jti": {
                      "type": "string"
                    },
                    "kid": {
                      "type": "string"
                    },
                    "token": {
                      "type": "string"
                    },
                    "claims": {
                      "$ref": "#/components/schemas/VerifiableCredentialClaims"
                    },
                    "expiresAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "verificationUrl": {
                      "type": "string"
                    },
                    "summary": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "jti",
                    "kid",
                    "token",
                    "claims",
                    "expiresAt",
                    "verificationUrl",
                    "summary"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      },
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Credentials_forPassport",
        "summary": "Get passport credentials",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "dppId": {
                        "type": "string"
                      },
                      "jti": {
                        "type": "string"
                      },
                      "kid": {
                        "type": "string"
                      },
                      "version": {
                        "type": "number"
                      },
                      "status": {
                        "type": "string"
                      },
                      "issuedAt": {
                        "type": "string",
                        "format": "date-time"
                      },
                      "expiresAt": {
                        "type": "string",
                        "format": "date-time"
                      },
                      "revokedAt": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "date-time"
                      },
                      "revokedReason": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "subjectHash": {
                        "type": "string"
                      },
                      "claims": {},
                      "token": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "dppId",
                      "jti",
                      "kid",
                      "version",
                      "status",
                      "issuedAt",
                      "expiresAt",
                      "revokedAt",
                      "revokedReason",
                      "subjectHash",
                      "claims",
                      "token"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/crosscheck": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Crosscheck_scan",
        "summary": "Add passport crosscheck",
        "description": "Run a scan. Reads the passport's declared values, every attached document and the stored facts, compares what is comparable, persists the disagreements, and clears the ones that no longer reproduce. `persist: false` analyses without writing.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "documentIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "persist": {
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "reference": {
                      "type": "string"
                    },
                    "product": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "sku": {
                          "type": "string"
                        },
                        "category": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "name",
                        "sku",
                        "category"
                      ]
                    },
                    "version": {
                      "type": "number"
                    },
                    "crosscheckVersion": {
                      "type": "string"
                    },
                    "persisted": {
                      "type": "boolean"
                    },
                    "verdict": {
                      "type": "string",
                      "enum": [
                        "consistent",
                        "review",
                        "conflicting",
                        "unassessed"
                      ]
                    },
                    "summary": {
                      "$ref": "#/components/schemas/CrosscheckSummary"
                    },
                    "scope": {
                      "type": "object",
                      "properties": {
                        "documentsTotal": {
                          "type": "number"
                        },
                        "documentsRead": {
                          "type": "number"
                        },
                        "documentsUnreadable": {
                          "type": "number"
                        },
                        "pathsCompared": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "documentsTotal",
                        "documentsRead",
                        "documentsUnreadable",
                        "pathsCompared"
                      ]
                    },
                    "headline": {
                      "type": "string"
                    },
                    "documents": {
                      "type": "array",
                      "items": {}
                    },
                    "groups": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "path": {
                            "type": "string"
                          },
                          "outcome": {
                            "type": "string",
                            "enum": [
                              "agree",
                              "agree-within-tolerance",
                              "disagree",
                              "unit-mismatch",
                              "not-comparable"
                            ]
                          },
                          "severity": {
                            "type": "string",
                            "enum": [
                              "critical",
                              "major",
                              "minor"
                            ]
                          },
                          "facts": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "source": {
                                  "$ref": "#/components/schemas/SourceRef"
                                },
                                "raw": {
                                  "type": "string"
                                },
                                "kind": {
                                  "type": "string",
                                  "enum": [
                                    "number",
                                    "boolean",
                                    "date",
                                    "text",
                                    "code",
                                    "not-declared",
                                    "empty"
                                  ]
                                },
                                "canonical": {
                                  "type": "string"
                                },
                                "unit": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "qualifier": {
                                  "type": "string",
                                  "enum": [
                                    "exact",
                                    "max",
                                    "min",
                                    "approx",
                                    "range"
                                  ]
                                },
                                "dimension": {
                                  "type": [
                                    "string",
                                    "null"
                                  ],
                                  "enum": [
                                    "length",
                                    "count",
                                    "mass",
                                    "area",
                                    "volume",
                                    "energy",
                                    "power",
                                    "time",
                                    "temperature",
                                    "percent",
                                    null
                                  ]
                                },
                                "ambiguous": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              },
                              "required": [
                                "source",
                                "raw",
                                "kind",
                                "canonical",
                                "unit",
                                "qualifier",
                                "dimension",
                                "ambiguous"
                              ]
                            }
                          },
                          "comparisons": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "left": {
                                  "type": "string"
                                },
                                "right": {
                                  "type": "string"
                                },
                                "outcome": {
                                  "type": "string",
                                  "enum": [
                                    "agree",
                                    "agree-within-tolerance",
                                    "disagree",
                                    "unit-mismatch",
                                    "not-comparable"
                                  ]
                                },
                                "detail": {
                                  "type": "string"
                                },
                                "delta": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "absolute": {
                                          "type": "number"
                                        },
                                        "percent": {
                                          "type": [
                                            "number",
                                            "null"
                                          ]
                                        },
                                        "unit": {
                                          "type": [
                                            "string",
                                            "null"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "absolute",
                                        "percent",
                                        "unit"
                                      ]
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "left",
                                "right",
                                "outcome",
                                "detail",
                                "delta"
                              ]
                            }
                          },
                          "hint": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "value": {
                                    "type": "string"
                                  },
                                  "sources": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "confidence": {
                                    "type": [
                                      "string",
                                      "null"
                                    ],
                                    "enum": [
                                      "strong",
                                      "weak",
                                      null
                                    ]
                                  },
                                  "note": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "value",
                                  "sources",
                                  "confidence",
                                  "note"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "hintLabel": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "path",
                          "outcome",
                          "severity",
                          "facts",
                          "comparisons",
                          "hint",
                          "hintLabel"
                        ]
                      }
                    },
                    "conflicts": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {},
                          "path": {},
                          "outcome": {},
                          "severity": {},
                          "status": {},
                          "occurrences": {},
                          "values": {},
                          "hint": {},
                          "cleared": {},
                          "clearedAt": {},
                          "detectedAt": {},
                          "lastSeenAt": {},
                          "resolvedValue": {},
                          "resolutionNote": {},
                          "resolvedAt": {},
                          "remediation": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "path",
                          "outcome",
                          "severity",
                          "status",
                          "occurrences",
                          "values",
                          "hint",
                          "cleared",
                          "clearedAt",
                          "detectedAt",
                          "lastSeenAt",
                          "resolvedValue",
                          "resolutionNote",
                          "resolvedAt",
                          "remediation"
                        ]
                      }
                    },
                    "singleSourcePaths": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "outOfScope": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string"
                          },
                          "reason": {
                            "type": "string"
                          },
                          "occurrences": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "key",
                          "reason",
                          "occurrences"
                        ]
                      }
                    },
                    "singleSourceNote": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "caveat": {
                      "type": "string"
                    },
                    "scopeNote": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "dppId",
                    "reference",
                    "product",
                    "version",
                    "crosscheckVersion",
                    "persisted",
                    "verdict",
                    "summary",
                    "scope",
                    "headline",
                    "documents",
                    "groups",
                    "conflicts",
                    "singleSourcePaths",
                    "outOfScope",
                    "singleSourceNote",
                    "caveat",
                    "scopeNote"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      },
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Crosscheck_snapshot",
        "summary": "Get passport crosscheck",
        "description": "Read-only state from the last scan (never re-reads documents, never spends a model call).\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "product": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "sku": {
                          "type": "string"
                        },
                        "category": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "name",
                        "sku",
                        "category"
                      ]
                    },
                    "version": {
                      "type": "number"
                    },
                    "crosscheckVersion": {
                      "type": "string"
                    },
                    "persistedState": {
                      "type": "boolean"
                    },
                    "verdict": {
                      "type": "string"
                    },
                    "counts": {
                      "type": "object",
                      "properties": {
                        "open": {
                          "type": "number"
                        },
                        "critical": {
                          "type": "number"
                        },
                        "major": {
                          "type": "number"
                        },
                        "minor": {
                          "type": "number"
                        },
                        "resolved": {
                          "type": "number"
                        },
                        "dismissed": {
                          "type": "number"
                        },
                        "cleared": {
                          "type": "number"
                        },
                        "documents": {
                          "type": "number"
                        },
                        "documentsUnreadable": {
                          "type": "number"
                        },
                        "storedFacts": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "open",
                        "critical",
                        "major",
                        "minor",
                        "resolved",
                        "dismissed",
                        "cleared",
                        "documents",
                        "documentsUnreadable",
                        "storedFacts"
                      ]
                    },
                    "conflicts": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {},
                          "path": {},
                          "outcome": {},
                          "severity": {},
                          "status": {},
                          "occurrences": {},
                          "values": {},
                          "hint": {},
                          "cleared": {},
                          "clearedAt": {},
                          "detectedAt": {},
                          "lastSeenAt": {},
                          "resolvedValue": {},
                          "resolutionNote": {},
                          "resolvedAt": {},
                          "remediation": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "path",
                          "outcome",
                          "severity",
                          "status",
                          "occurrences",
                          "values",
                          "hint",
                          "cleared",
                          "clearedAt",
                          "detectedAt",
                          "lastSeenAt",
                          "resolvedValue",
                          "resolutionNote",
                          "resolvedAt",
                          "remediation"
                        ]
                      }
                    },
                    "documents": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "documentId": {},
                          "title": {},
                          "type": {},
                          "readable": {
                            "type": "boolean"
                          },
                          "readabilityReason": {
                            "type": "string"
                          },
                          "issuedAt": {},
                          "expiresAt": {},
                          "storedFacts": {
                            "type": "number"
                          },
                          "storedPaths": {
                            "type": "array",
                            "items": {}
                          },
                          "notes": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "documentId",
                          "title",
                          "type",
                          "readable",
                          "readabilityReason",
                          "issuedAt",
                          "expiresAt",
                          "storedFacts",
                          "storedPaths",
                          "notes"
                        ]
                      }
                    },
                    "facts": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "documentId": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "path": {
                            "type": "string"
                          },
                          "raw": {
                            "type": "string"
                          },
                          "kind": {
                            "type": "string"
                          },
                          "unit": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "qualifier": {
                            "type": "string"
                          },
                          "confidence": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "evidence": {
                            "type": "string"
                          },
                          "source": {
                            "type": "string"
                          },
                          "method": {
                            "type": "string"
                          },
                          "ambiguous": {
                            "type": "object"
                          }
                        },
                        "required": [
                          "id",
                          "documentId",
                          "path",
                          "raw",
                          "kind",
                          "unit",
                          "qualifier",
                          "confidence",
                          "evidence",
                          "source",
                          "method",
                          "ambiguous"
                        ]
                      }
                    },
                    "declared": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "path": {
                            "type": "string"
                          },
                          "declared": {
                            "type": [
                              "object",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "path",
                          "declared"
                        ]
                      }
                    },
                    "outOfScopeNote": {
                      "type": "string"
                    },
                    "note": {
                      "type": "string"
                    },
                    "caveat": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "dppId",
                    "product",
                    "version",
                    "crosscheckVersion",
                    "persistedState",
                    "verdict",
                    "counts",
                    "conflicts",
                    "documents",
                    "facts",
                    "declared",
                    "outOfScopeNote",
                    "note",
                    "caveat"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/custody": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Custody_passport",
        "summary": "Get passport custody",
        "description": "The custody statement of a passport: its allocations, by account and model.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "statements": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "accountId": {},
                          "material": {},
                          "model": {},
                          "modelLabel": {
                            "type": "string"
                          },
                          "wording": {
                            "type": "string"
                          },
                          "claim": {},
                          "claimLabel": {
                            "type": "string"
                          },
                          "scheme": {},
                          "unit": {},
                          "claimedSharePercent": {
                            "type": "number"
                          },
                          "quantity": {
                            "type": "number"
                          },
                          "batches": {
                            "type": "array",
                            "items": {}
                          },
                          "certificateDocumentId": {},
                          "allocations": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {},
                                "occurredOn": {},
                                "quantity": {
                                  "type": "number"
                                },
                                "certifiedShare": {
                                  "type": [
                                    "number",
                                    "null"
                                  ]
                                },
                                "batch": {},
                                "reference": {}
                              },
                              "required": [
                                "id",
                                "occurredOn",
                                "quantity",
                                "certifiedShare",
                                "batch",
                                "reference"
                              ]
                            }
                          }
                        },
                        "required": [
                          "accountId",
                          "material",
                          "model",
                          "modelLabel",
                          "wording",
                          "claim",
                          "claimLabel",
                          "scheme",
                          "unit",
                          "claimedSharePercent",
                          "quantity",
                          "batches",
                          "certificateDocumentId",
                          "allocations"
                        ]
                      }
                    }
                  },
                  "required": [
                    "dppId",
                    "statements"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/diff": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_diff",
        "summary": "Get passport diff",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "from": {
                      "type": "number"
                    },
                    "to": {
                      "type": "number"
                    },
                    "changeCount": {
                      "type": "number"
                    },
                    "changes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "path": {
                            "type": "string"
                          },
                          "from": {},
                          "to": {}
                        },
                        "required": [
                          "path",
                          "from",
                          "to"
                        ]
                      }
                    }
                  },
                  "required": [
                    "dppId",
                    "from",
                    "to",
                    "changeCount",
                    "changes"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/disclosure": {
      "put": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_setDisclosures",
        "summary": "Update passport disclosure",
        "description": "Configure dot-paths published at full precision, overriding the default public projection.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "paths": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "paths"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "disclosedPaths": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "staged": {
                      "type": "boolean"
                    },
                    "releaseVersion": {
                      "type": "number"
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "dppId",
                    "disclosedPaths",
                    "staged",
                    "releaseVersion",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/dop": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Construction_dop",
        "summary": "Get passport dop",
        "description": "CPR readiness: harmonised standard, AVCP system, notified body, essential characteristics.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "manufacturer": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "number": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "harmonisedStandard": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "avcp": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string"
                            },
                            "label": {
                              "type": "string"
                            },
                            "notifiedBodyRequired": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "key",
                            "label",
                            "notifiedBodyRequired"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "notifiedBody": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "ceMarkingDate": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "intendedUse": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "plant": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "characteristics": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/DopCharacteristic"
                      }
                    },
                    "dangerousSubstances": {
                      "type": "object",
                      "properties": {
                        "declared": {
                          "type": "boolean"
                        },
                        "substances": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "declared",
                        "substances"
                      ]
                    },
                    "serviceLifeYears": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "maintenanceIntervalMonths": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "deconstructionReusePercent": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "recycledContentPercent": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "bioBasedContentPercent": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "fireClass": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "ready": {
                      "type": "boolean"
                    },
                    "blocking": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "gaps": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ConstructionGap"
                      }
                    },
                    "caveat": {
                      "type": "string"
                    },
                    "dppId": {
                      "type": "string"
                    },
                    "product": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "sku": {
                          "type": "string"
                        },
                        "gtin": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "category": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "name",
                        "sku",
                        "gtin",
                        "category"
                      ]
                    },
                    "version": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "manufacturer",
                    "number",
                    "harmonisedStandard",
                    "avcp",
                    "notifiedBody",
                    "ceMarkingDate",
                    "intendedUse",
                    "plant",
                    "characteristics",
                    "dangerousSubstances",
                    "serviceLifeYears",
                    "maintenanceIntervalMonths",
                    "deconstructionReusePercent",
                    "recycledContentPercent",
                    "bioBasedContentPercent",
                    "fireClass",
                    "ready",
                    "blocking",
                    "gaps",
                    "caveat",
                    "dppId",
                    "product",
                    "version"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      },
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Construction_issueDop",
        "summary": "Add passport dop",
        "description": "Records the DoP — refused while a blocking element is missing, because a DoP is a legal document.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "note": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppVersion": {
                      "type": "number"
                    },
                    "gaps": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ConstructionGap"
                      }
                    },
                    "nextStep": {
                      "type": "string"
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "dppId": {
                      "type": "string"
                    },
                    "payload": {},
                    "reference": {
                      "type": "string"
                    },
                    "versionNumber": {
                      "type": "number"
                    },
                    "blocking": {},
                    "issuedBy": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "issuedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "supersededAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "revokedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "revokedReason": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "gapCount": {
                      "type": "number"
                    },
                    "dopNumber": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "harmonisedStandard": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "avcpSystem": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "notifiedBody": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "fireClass": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "serviceLifeYears": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "characteristicCount": {
                      "type": "number"
                    },
                    "ready": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "dppVersion",
                    "gaps",
                    "nextStep",
                    "id",
                    "organizationId",
                    "status",
                    "dppId",
                    "payload",
                    "reference",
                    "versionNumber",
                    "blocking",
                    "issuedBy",
                    "issuedAt",
                    "supersededAt",
                    "revokedAt",
                    "revokedReason",
                    "gapCount",
                    "dopNumber",
                    "harmonisedStandard",
                    "avcpSystem",
                    "notifiedBody",
                    "fireClass",
                    "serviceLifeYears",
                    "characteristicCount",
                    "ready"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/dop-records": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Construction_dopHistory",
        "summary": "Get passport dop records",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "dppVersion": {
                        "type": [
                          "number",
                          "null"
                        ]
                      },
                      "currentDppVersion": {
                        "type": [
                          "number",
                          "null"
                        ]
                      },
                      "outOfDate": {
                        "type": [
                          "boolean",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "dppVersion",
                      "currentDppVersion",
                      "outOfDate"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/dop.csv": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Construction_dopCsv",
        "summary": "Get passport dop.csv",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reference",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/dop.json": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Construction_issuedDop",
        "summary": "Get passport dop.json",
        "description": "Downloads a saved DoP whose reference belongs to this passport.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reference",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/dop/revoke": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Construction_revokeDopForPassport",
        "summary": "Revoke dop of a passport",
        "description": "Revokes a document belonging to this passport; the reference is carried in the body.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reference": {
                    "type": "string"
                  },
                  "reason": {
                    "type": "string"
                  }
                },
                "required": [
                  "reference"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/draft": {
      "delete": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_discardDraft",
        "summary": "Delete passport draft",
        "description": "Delete a never-published draft outright (frees its plan slot); published passports are archived instead.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "deleted": {
                      "type": "boolean"
                    },
                    "id": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "deleted",
                    "id"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/epcis": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_epcis",
        "summary": "Get passport epcis",
        "description": "GS1 EPCIS 2.0 capture document for the passport's lifecycle events.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "@context": {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "object",
                            "additionalProperties": {
                              "type": "string"
                            }
                          }
                        ]
                      }
                    },
                    "type": {
                      "type": "string"
                    },
                    "schemaVersion": {
                      "type": "string"
                    },
                    "creationDate": {
                      "type": "string"
                    },
                    "epcisBody": {
                      "type": "object",
                      "properties": {
                        "eventList": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/EpcisEmittedEvent"
                          }
                        }
                      },
                      "required": [
                        "eventList"
                      ]
                    }
                  },
                  "required": [
                    "@context",
                    "type",
                    "schemaVersion",
                    "creationDate",
                    "epcisBody"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/epcis/import": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_importEpcis",
        "summary": "Import epcis of a passport",
        "description": "Ingest a partner EPCIS 2.0 capture document (idempotent per eventID).\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "importedCount": {
                      "type": "number"
                    },
                    "skippedCount": {
                      "type": "number"
                    },
                    "imported": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "eventId": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string"
                          },
                          "eventTime": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "eventId",
                          "type",
                          "eventTime"
                        ]
                      }
                    },
                    "skipped": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "eventId": {
                            "type": "string"
                          },
                          "reason": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "eventId",
                          "reason"
                        ]
                      }
                    }
                  },
                  "required": [
                    "dppId",
                    "importedCount",
                    "skippedCount",
                    "imported",
                    "skipped"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/epd": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Construction_epd",
        "summary": "Get passport epd",
        "description": "EN 15804+A2 readiness: modules, indicator matrix, GWP decomposition, biogenic storage, gaps.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "partial",
                        "declared",
                        "insufficient"
                      ]
                    },
                    "standard": {
                      "type": "string"
                    },
                    "methodVersion": {
                      "type": "string"
                    },
                    "declaredUnit": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "functionalUnit": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "systemBoundary": {
                      "type": "string"
                    },
                    "modules": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/EpdModuleValues"
                      }
                    },
                    "indicators": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "unit": {
                            "type": "string"
                          },
                          "core": {
                            "type": "boolean"
                          },
                          "values": {
                            "type": "object",
                            "additionalProperties": {
                              "type": [
                                "number",
                                "null"
                              ]
                            }
                          }
                        },
                        "required": [
                          "key",
                          "label",
                          "unit",
                          "core",
                          "values"
                        ]
                      }
                    },
                    "coreIndicatorCoveragePercent": {
                      "type": "number"
                    },
                    "carbonStorage": {
                      "type": "object",
                      "properties": {
                        "kgCo2e": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "basis": {
                          "type": "string",
                          "enum": [
                            "declared",
                            "none",
                            "biogenic-a1-a3"
                          ]
                        },
                        "path": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "kgCo2e",
                        "basis",
                        "path"
                      ]
                    },
                    "verification": {
                      "$ref": "#/components/schemas/ConstructionVerification"
                    },
                    "gaps": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ConstructionGap"
                      }
                    },
                    "errorGaps": {
                      "type": "number"
                    },
                    "warningGaps": {
                      "type": "number"
                    },
                    "caveat": {
                      "type": "string"
                    },
                    "disclaimer": {
                      "type": "string"
                    },
                    "dppId": {
                      "type": "string"
                    },
                    "product": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "sku": {
                          "type": "string"
                        },
                        "gtin": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "category": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "name",
                        "sku",
                        "gtin",
                        "category"
                      ]
                    },
                    "version": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "status",
                    "standard",
                    "methodVersion",
                    "declaredUnit",
                    "functionalUnit",
                    "systemBoundary",
                    "modules",
                    "indicators",
                    "coreIndicatorCoveragePercent",
                    "carbonStorage",
                    "verification",
                    "gaps",
                    "errorGaps",
                    "warningGaps",
                    "caveat",
                    "disclaimer",
                    "dppId",
                    "product",
                    "version"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      },
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Construction_issueEpd",
        "summary": "Add passport epd",
        "description": "Issues the EPD data package with a reference containing the complete passport ID. Partial packages are issuable and say so.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "note": {
                    "type": "string"
                  },
                  "language": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppVersion": {
                      "type": "number"
                    },
                    "gaps": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ConstructionGap"
                      }
                    },
                    "nextStep": {
                      "type": "string"
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "dppId": {
                      "type": "string"
                    },
                    "payload": {},
                    "reference": {
                      "type": "string"
                    },
                    "versionNumber": {
                      "type": "number"
                    },
                    "issuedBy": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "issuedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "supersededAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "revokedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "revokedReason": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "standard": {
                      "type": "string"
                    },
                    "methodVersion": {
                      "type": "string"
                    },
                    "declaredUnit": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "functionalUnit": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "systemBoundary": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "modules": {},
                    "indicators": {},
                    "moduleCount": {
                      "type": "number"
                    },
                    "coreIndicatorCoveragePercent": {
                      "type": "number"
                    },
                    "carbonStorageKgCo2e": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "carbonStorageBasis": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "programmeOperator": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "registration": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "validUntil": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "thirdPartyVerified": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "gapCount": {
                      "type": "number"
                    },
                    "errorGapCount": {
                      "type": "number"
                    },
                    "packageStatus": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "dppVersion",
                    "gaps",
                    "nextStep",
                    "id",
                    "organizationId",
                    "status",
                    "dppId",
                    "payload",
                    "reference",
                    "versionNumber",
                    "issuedBy",
                    "issuedAt",
                    "supersededAt",
                    "revokedAt",
                    "revokedReason",
                    "standard",
                    "methodVersion",
                    "declaredUnit",
                    "functionalUnit",
                    "systemBoundary",
                    "modules",
                    "indicators",
                    "moduleCount",
                    "coreIndicatorCoveragePercent",
                    "carbonStorageKgCo2e",
                    "carbonStorageBasis",
                    "programmeOperator",
                    "registration",
                    "validUntil",
                    "thirdPartyVerified",
                    "gapCount",
                    "errorGapCount",
                    "packageStatus"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/epd-records": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Construction_epdHistory",
        "summary": "Get passport epd records",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "dppVersion": {
                        "type": [
                          "number",
                          "null"
                        ]
                      },
                      "currentDppVersion": {
                        "type": [
                          "number",
                          "null"
                        ]
                      },
                      "outOfDate": {
                        "type": [
                          "boolean",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "dppVersion",
                      "currentDppVersion",
                      "outOfDate"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/epd.csv": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Construction_epdCsv",
        "summary": "Get passport epd.csv",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reference",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/epd.json": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Construction_issuedEpd",
        "summary": "Get passport epd.json",
        "description": "Downloads a saved EPD whose reference belongs to this passport.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reference",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/epd/revoke": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Construction_revokeEpdForPassport",
        "summary": "Revoke epd of a passport",
        "description": "Revokes a document belonging to this passport; the reference is carried in the body.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reference": {
                    "type": "string"
                  },
                  "reason": {
                    "type": "string"
                  }
                },
                "required": [
                  "reference"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/events": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_recordEvent",
        "summary": "Add passport events",
        "description": "Record a lifecycle event (repaired, transferred, recycled, inspected…).\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DppEventInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      },
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_listEvents",
        "summary": "Get passport events",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DppEvent"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/evidence-links": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "EvidenceLinks_list",
        "summary": "Get passport evidence links",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {}
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      },
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "EvidenceLinks_link",
        "summary": "Add passport evidence links",
        "description": "Links an accepted document to an existing field on an immutable passport version.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "documentId": {
                    "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)$"
                  },
                  "version": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "fieldPath": {
                    "type": "string",
                    "maxLength": 200,
                    "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.(?:[A-Za-z][A-Za-z0-9_-]*|\\d+))*$"
                  },
                  "page": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10000
                  },
                  "quote": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 4000
                  },
                  "note": {
                    "type": "string",
                    "maxLength": 2000
                  }
                },
                "required": [
                  "documentId",
                  "version",
                  "fieldPath",
                  "quote"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EvidenceLink"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/facts": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Crosscheck_facts",
        "summary": "Get passport facts",
        "description": "Statements read from documents (or attested by a person), each with its quote.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "facts": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "documentId": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "path": {
                            "type": "string"
                          },
                          "raw": {
                            "type": "string"
                          },
                          "kind": {
                            "type": "string"
                          },
                          "unit": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "qualifier": {
                            "type": "string"
                          },
                          "confidence": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "evidence": {
                            "type": "string"
                          },
                          "source": {
                            "type": "string"
                          },
                          "method": {
                            "type": "string"
                          },
                          "ambiguous": {
                            "type": "object"
                          }
                        },
                        "required": [
                          "id",
                          "documentId",
                          "path",
                          "raw",
                          "kind",
                          "unit",
                          "qualifier",
                          "confidence",
                          "evidence",
                          "source",
                          "method",
                          "ambiguous"
                        ]
                      }
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "facts",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      },
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Crosscheck_addFact",
        "summary": "Add passport facts",
        "description": "Attach a statement to a field: the document, the value and the quote are all required.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FactInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "documentId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "path": {
                      "type": "string"
                    },
                    "raw": {
                      "type": "string"
                    },
                    "kind": {
                      "type": "string"
                    },
                    "unit": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "qualifier": {
                      "type": "string"
                    },
                    "canonical": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "evidence": {
                      "type": "string"
                    },
                    "method": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "note": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "documentId",
                    "path",
                    "raw",
                    "kind",
                    "unit",
                    "qualifier",
                    "canonical",
                    "evidence",
                    "method",
                    "code",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/history": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_history",
        "summary": "Get passport history",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DppVersion"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/item-jobs": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Items_jobs",
        "summary": "Get passport item jobs",
        "description": "Generation jobs of this passport with progress.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ItemGenerationJob"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/items": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Items_list",
        "summary": "Get passport items",
        "description": "Items of a passport (100 per page, filter by status or serial) with counts by lifecycle status.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "gtin": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ItemIdentity"
                      }
                    },
                    "total": {
                      "type": "number"
                    },
                    "totalCapped": {
                      "type": "boolean"
                    },
                    "page": {
                      "type": "number"
                    },
                    "pageSize": {
                      "type": "number"
                    },
                    "byStatus": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "number"
                      }
                    }
                  },
                  "required": [
                    "gtin",
                    "items",
                    "total",
                    "totalCapped",
                    "page",
                    "pageSize",
                    "byStatus"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/items/{itemId}": {
      "patch": {
        "tags": [
          "Passports"
        ],
        "operationId": "Items_updateItem",
        "summary": "Update passport items",
        "description": "Changes one item's status or attributes (e.g. manufacturing date, state of health).\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "active",
                      "sold",
                      "in_use",
                      "returned",
                      "refurbished",
                      "recycled",
                      "destroyed",
                      "recalled"
                    ]
                  },
                  "attributes": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "additionalProperties": {
                      "anyOf": [
                        {
                          "type": "string",
                          "maxLength": 1000
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemIdentity"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/items/export.csv": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Items_exportCsv",
        "summary": "Get passport items export.csv",
        "description": "Print / encode export in pages of 100,000: GS1 Digital Link URI (QR, NFC) and element string (DataMatrix, RFID) per item.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/items/generate": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Items_generate",
        "summary": "Add passport items generate",
        "description": "Queues generation of up to 1,000,000 serials (prefix + zero-padded running number); existing serials are skipped.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "count": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000000
                  },
                  "prefix": {
                    "type": "string",
                    "maxLength": 12,
                    "pattern": "^(?:[A-Za-z0-9_][A-Za-z0-9._-]*)?$"
                  },
                  "start": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "width": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 19
                  },
                  "batch": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 20,
                        "pattern": "^[A-Za-z0-9_][A-Za-z0-9._-]*$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "count"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemGenerationJob2"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/items/import": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Items_importItems",
        "summary": "Import items of a passport",
        "description": "Registers up to 10,000 existing serials; duplicates are reported, never overwritten.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "items": {
                    "minItems": 1,
                    "maxItems": 10000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "serial": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 20,
                          "pattern": "^[A-Za-z0-9_][A-Za-z0-9._-]*$"
                        },
                        "batch": {
                          "anyOf": [
                            {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 20,
                              "pattern": "^[A-Za-z0-9_][A-Za-z0-9._-]*$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "serial"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "items"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "created": {
                      "type": "number"
                    },
                    "duplicates": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "duplicateCount": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "created",
                    "duplicates",
                    "duplicateCount"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/items/status": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Items_updateStatus",
        "summary": "Add passport items status",
        "description": "Sets the lifecycle status of up to 10,000 serials (sold, returned, recycled…).\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "serials": {
                    "minItems": 1,
                    "maxItems": 10000,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20,
                      "pattern": "^[A-Za-z0-9_][A-Za-z0-9._-]*$"
                    }
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "active",
                      "sold",
                      "in_use",
                      "returned",
                      "refurbished",
                      "recycled",
                      "destroyed",
                      "recalled"
                    ]
                  }
                },
                "required": [
                  "serials",
                  "status"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "requested": {
                      "type": "number"
                    },
                    "updated": {
                      "type": "number"
                    },
                    "notFound": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "requested",
                    "updated",
                    "notFound"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/leases": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_leasesForDpp",
        "summary": "Get passport leases",
        "description": "Leasing / servitization contracts attached to this passport.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LeaseContract"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      },
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_startLease",
        "summary": "Add passport leases",
        "description": "API key scope `dpp:write` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LeaseInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaseContract2"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/lineage": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_lineage",
        "summary": "Get passport lineage",
        "description": "Remanufacturing lineage: ancestors and derived passports of this record.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "derivation": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "derivedFromId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "ancestry": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "schemaId": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "publishedVersion": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "derivation": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "createdAt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "string",
                                "format": "date-time"
                              }
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "schemaId",
                          "status",
                          "publishedVersion",
                          "derivation",
                          "createdAt"
                        ]
                      }
                    },
                    "descendants": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "schemaId": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "publishedVersion": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "derivation": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "createdAt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "string",
                                "format": "date-time"
                              }
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "schemaId",
                          "status",
                          "publishedVersion",
                          "derivation",
                          "createdAt"
                        ]
                      }
                    },
                    "depth": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "dppId",
                    "derivation",
                    "derivedFromId",
                    "ancestry",
                    "descendants",
                    "depth"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/materials": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Materials_assessment",
        "summary": "Get passport materials",
        "description": "Live assessment: repairability, recycled content, CRM inventory, gaps, evidence status.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "labelBasis",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "methodVersion": {
                      "type": "string"
                    },
                    "labelBasis": {
                      "type": "string"
                    },
                    "product": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "sku": {
                          "type": "string"
                        },
                        "gtin": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "category": {
                          "type": "string"
                        },
                        "productType": {
                          "type": "string",
                          "enum": [
                            "unknown",
                            "article",
                            "mixture"
                          ]
                        }
                      },
                      "required": [
                        "name",
                        "sku",
                        "gtin",
                        "category",
                        "productType"
                      ]
                    },
                    "version": {
                      "type": "number"
                    },
                    "repairability": {
                      "type": "object",
                      "properties": {
                        "repairManualUrl": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "repairNetworkUrl": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "secureDataWipe": {
                          "type": [
                            "boolean",
                            "null"
                          ]
                        },
                        "score": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "coveragePercent": {
                          "type": "number"
                        },
                        "completeness": {
                          "type": "string",
                          "enum": [
                            "partial",
                            "insufficient",
                            "complete"
                          ]
                        },
                        "class": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "criteria": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "label": {
                                "type": "string"
                              },
                              "weightPercent": {
                                "type": "number"
                              },
                              "score": {
                                "type": [
                                  "number",
                                  "null"
                                ]
                              },
                              "weighted": {
                                "type": [
                                  "number",
                                  "null"
                                ]
                              },
                              "source": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "id",
                              "label",
                              "weightPercent",
                              "score",
                              "weighted",
                              "source"
                            ]
                          }
                        },
                        "declared": {
                          "type": "object",
                          "properties": {
                            "sparePartsYears": {
                              "type": [
                                "number",
                                "null"
                              ]
                            },
                            "softwareSupportYears": {
                              "type": [
                                "number",
                                "null"
                              ]
                            },
                            "batteryReplaceability": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "disassemblyTimeMinutes": {
                              "type": [
                                "number",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "sparePartsYears",
                            "softwareSupportYears",
                            "batteryReplaceability",
                            "disassemblyTimeMinutes"
                          ]
                        },
                        "missing": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "caveat": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "repairManualUrl",
                        "repairNetworkUrl",
                        "secureDataWipe",
                        "score",
                        "coveragePercent",
                        "completeness",
                        "class",
                        "criteria",
                        "declared",
                        "missing",
                        "caveat"
                      ]
                    },
                    "recycledContent": {
                      "$ref": "#/components/schemas/RecycledContentResult"
                    },
                    "criticalRawMaterials": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "material": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "strategic": {
                            "type": "boolean"
                          },
                          "critical": {
                            "type": "boolean"
                          },
                          "recycledPercent": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "origin": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "supplyRisk": {
                            "type": "string"
                          },
                          "meetsBenchmark": {
                            "type": [
                              "boolean",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "material",
                          "name",
                          "strategic",
                          "critical",
                          "recycledPercent",
                          "origin",
                          "supplyRisk",
                          "meetsBenchmark"
                        ]
                      }
                    },
                    "materials": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "weightKg": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "weightPercent": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "recycledPercent": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "origin": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "auditScheme": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "component": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "path": {
                            "type": "string"
                          },
                          "critical": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "name": {
                                    "type": "string"
                                  },
                                  "strategic": {
                                    "type": "boolean"
                                  },
                                  "supplyRisk": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "name",
                                  "strategic",
                                  "supplyRisk"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "evidence": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "documentId": {
                                    "type": "string"
                                  },
                                  "resolved": {
                                    "type": "boolean"
                                  },
                                  "usable": {
                                    "type": "boolean"
                                  },
                                  "title": {
                                    "type": [
                                      "string",
                                      "null"
                                    ]
                                  },
                                  "expiresAt": {
                                    "type": [
                                      "string",
                                      "null"
                                    ]
                                  },
                                  "supersededById": {
                                    "type": [
                                      "string",
                                      "null"
                                    ]
                                  },
                                  "note": {
                                    "type": [
                                      "string",
                                      "null"
                                    ]
                                  }
                                },
                                "required": [
                                  "documentId",
                                  "resolved",
                                  "usable",
                                  "title",
                                  "expiresAt",
                                  "supersededById",
                                  "note"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "name",
                          "weightKg",
                          "weightPercent",
                          "recycledPercent",
                          "origin",
                          "auditScheme",
                          "component",
                          "path",
                          "critical",
                          "evidence"
                        ]
                      }
                    },
                    "gaps": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Gap"
                      }
                    },
                    "danglingEvidence": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "material": {
                            "type": "string"
                          },
                          "documentId": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "path": {
                            "type": "string"
                          },
                          "reason": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "material",
                          "documentId",
                          "path",
                          "reason"
                        ]
                      }
                    },
                    "missingInputs": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "crmListVersion": {
                      "type": "string"
                    },
                    "disclaimer": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "dppId",
                    "status",
                    "methodVersion",
                    "labelBasis",
                    "product",
                    "version",
                    "repairability",
                    "recycledContent",
                    "criticalRawMaterials",
                    "materials",
                    "gaps",
                    "danglingEvidence",
                    "missingInputs",
                    "crmListVersion",
                    "disclaimer"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/materials-declaration": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Materials_dossier",
        "summary": "Get passport materials declaration",
        "description": "Issued declaration preview (what would be declared, and what is still missing).\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "labelBasis",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "version": {
                      "type": "number"
                    },
                    "status": {
                      "type": "string"
                    },
                    "labelBasis": {
                      "type": "string"
                    },
                    "repairabilityScore": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "repairabilityClass": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "repairabilityCoveragePercent": {
                      "type": "number"
                    },
                    "recycledContentPercent": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "criticalMaterials": {
                      "type": "number"
                    },
                    "errors": {
                      "type": "number"
                    },
                    "warnings": {
                      "type": "number"
                    },
                    "missingInputs": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "dossier": {
                      "$ref": "#/components/schemas/MaterialsDossier"
                    }
                  },
                  "required": [
                    "dppId",
                    "version",
                    "status",
                    "labelBasis",
                    "repairabilityScore",
                    "repairabilityClass",
                    "repairabilityCoveragePercent",
                    "recycledContentPercent",
                    "criticalMaterials",
                    "errors",
                    "warnings",
                    "missingInputs",
                    "dossier"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      },
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Materials_issue",
        "summary": "Add passport materials declaration",
        "description": "Issues an immutable declaration with a reference containing the complete passport ID.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "labelBasis": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppVersion": {
                      "type": "number"
                    },
                    "status": {
                      "type": "string"
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "dppId": {
                      "type": "string"
                    },
                    "payload": {},
                    "recycledContentPercent": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "repairabilityClass": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "repairabilityScore": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "reference": {
                      "type": "string"
                    },
                    "versionNumber": {
                      "type": "number"
                    },
                    "issuedBy": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "issuedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "supersededAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "revokedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "revokedReason": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "gapCount": {
                      "type": "number"
                    },
                    "labelBasis": {
                      "type": "string"
                    },
                    "criticalMaterials": {
                      "type": "number"
                    },
                    "repairabilityCoveragePercent": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "recycledWeightBasisKg": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "crmListVersion": {
                      "type": "string"
                    },
                    "unsubstantiatedClaims": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "dppVersion",
                    "status",
                    "id",
                    "organizationId",
                    "dppId",
                    "payload",
                    "recycledContentPercent",
                    "repairabilityClass",
                    "repairabilityScore",
                    "reference",
                    "versionNumber",
                    "issuedBy",
                    "issuedAt",
                    "supersededAt",
                    "revokedAt",
                    "revokedReason",
                    "gapCount",
                    "labelBasis",
                    "criticalMaterials",
                    "repairabilityCoveragePercent",
                    "recycledWeightBasisKg",
                    "crmListVersion",
                    "unsubstantiatedClaims"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/materials-declaration.csv": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Materials_csv",
        "summary": "Get passport materials declaration.csv",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/materials-declaration.json": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Materials_issued",
        "summary": "Get passport materials declaration.json",
        "description": "Downloads a saved materials declaration whose reference belongs to this passport.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reference",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/materials-declaration/revoke": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Materials_revokeForPassport",
        "summary": "Revoke materials declaration of a passport",
        "description": "Revokes a document belonging to this passport; the reference is carried in the body.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reference": {
                    "type": "string"
                  },
                  "reason": {
                    "type": "string"
                  }
                },
                "required": [
                  "reference"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/materials-declarations": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Materials_history",
        "summary": "Get passport materials declarations",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "dppVersion": {
                        "type": [
                          "number",
                          "null"
                        ]
                      },
                      "currentDppVersion": {
                        "type": [
                          "number",
                          "null"
                        ]
                      },
                      "outOfDate": {
                        "type": [
                          "boolean",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "dppVersion",
                      "currentDppVersion",
                      "outOfDate"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/obligations": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_passportObligations",
        "summary": "Get passport obligations",
        "description": "Upcoming and overdue regulatory obligations for this passport under the approved pack versions.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "notice": {
                      "type": "string"
                    },
                    "dppId": {
                      "type": "string"
                    },
                    "category": {
                      "type": "string"
                    },
                    "generatedAt": {
                      "type": "string"
                    },
                    "basis": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "effectiveFrom": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "string",
                                  "format": "date-time"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "code": {
                              "type": "string"
                            },
                            "version": {
                              "type": "string"
                            },
                            "status": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "effectiveFrom",
                            "code",
                            "version",
                            "status"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "counts": {
                      "type": "object",
                      "properties": {
                        "overdue": {
                          "type": "number"
                        },
                        "missing": {
                          "type": "number"
                        },
                        "confirm": {
                          "type": "number"
                        },
                        "ready": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "overdue",
                        "missing",
                        "confirm",
                        "ready"
                      ]
                    },
                    "obligations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PassportObligation"
                      }
                    },
                    "futureVersions": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/FuturePackReadiness"
                      }
                    },
                    "calendar": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "requirement": {
                            "type": "string"
                          },
                          "source": {
                            "type": "string"
                          },
                          "effectiveFrom": {
                            "type": "string"
                          },
                          "dateType": {
                            "type": "string",
                            "enum": [
                              "fixed",
                              "conditional",
                              "indicative"
                            ]
                          },
                          "reviewStatus": {
                            "type": "string",
                            "enum": [
                              "confirmed",
                              "needs-legal-confirmation"
                            ]
                          },
                          "daysUntil": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "label": {
                            "type": "string"
                          },
                          "prepareBy": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "requirement",
                          "source",
                          "effectiveFrom",
                          "dateType",
                          "reviewStatus",
                          "daysUntil",
                          "label",
                          "prepareBy"
                        ]
                      }
                    },
                    "calendarCaveat": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "dppId",
                    "category",
                    "generatedAt",
                    "basis",
                    "counts",
                    "obligations",
                    "futureVersions",
                    "calendar",
                    "calendarCaveat"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/ownership": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_ownershipChain",
        "summary": "Get passport ownership",
        "description": "Custody chain (circular economy: resale, leasing, recycler handover).\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "chain": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/DppOwnership"
                      }
                    },
                    "current": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/DppOwnership"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "transfers": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "dppId",
                    "chain",
                    "current",
                    "transfers"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/preview": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_preview",
        "summary": "Preview a passport",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accept-language",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "drafts",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "regulatory": {
                      "type": "object",
                      "properties": {
                        "basis": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/PackRef"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "obligations": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/PublicObligation"
                          }
                        }
                      },
                      "required": [
                        "basis",
                        "obligations"
                      ]
                    },
                    "disclosedPaths": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "redactedPaths": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "defaultRedactedPaths": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "translatedPaths": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "translationReleasedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "product": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "description": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "variant": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "string"
                          }
                        },
                        "id": {
                          "type": "string"
                        },
                        "sku": {
                          "type": "string"
                        },
                        "gtin": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "category": {
                          "type": "string"
                        },
                        "brand": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "manufacturerName": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "manufacturerCountry": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "metadata": {
                          "type": "object",
                          "additionalProperties": {}
                        }
                      },
                      "required": [
                        "name",
                        "description",
                        "id",
                        "sku",
                        "gtin",
                        "category",
                        "brand",
                        "manufacturerName",
                        "manufacturerCountry",
                        "metadata"
                      ]
                    },
                    "data": {},
                    "version": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "owner": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "slug": {
                              "type": "string"
                            },
                            "branding": {
                              "type": [
                                "object",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "name",
                            "slug",
                            "branding"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "issuerIdentity": {
                      "type": "object",
                      "properties": {
                        "did": {
                          "type": "string"
                        },
                        "verified": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "scheme": {
                                "type": "string"
                              },
                              "value": {
                                "type": "string"
                              },
                              "registryName": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "registry": {
                                "type": "string"
                              },
                              "verifiedAt": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "format": "date-time"
                              }
                            },
                            "required": [
                              "scheme",
                              "value",
                              "registryName",
                              "registry",
                              "verifiedAt"
                            ]
                          }
                        }
                      },
                      "required": [
                        "did",
                        "verified"
                      ]
                    },
                    "productModel": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            },
                            "axes": {}
                          },
                          "required": [
                            "code",
                            "name",
                            "axes"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "locale": {
                      "type": "string"
                    },
                    "interfaceLocale": {
                      "type": "string"
                    },
                    "sourceLocale": {
                      "type": "string"
                    },
                    "languages": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/LocaleInfo"
                      }
                    },
                    "availableLocales": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "translationStatus": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "suspension": {
                      "type": "object",
                      "properties": {
                        "suspended": {
                          "type": "boolean"
                        },
                        "suspendedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "reason": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "notice": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "suspended",
                        "suspendedAt",
                        "reason",
                        "notice"
                      ]
                    },
                    "retirement": {
                      "type": "object",
                      "properties": {
                        "retired": {
                          "type": "boolean"
                        },
                        "notice": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "retired",
                        "notice"
                      ]
                    },
                    "withdrawal": {
                      "type": "object",
                      "properties": {
                        "recalled": {
                          "type": "boolean"
                        },
                        "recalledAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "notice": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "recalled",
                        "recalledAt",
                        "notice"
                      ]
                    },
                    "id": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "lifecycleState": {
                      "type": "string"
                    },
                    "publishedMarkets": {
                      "anyOf": [
                        {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "publishedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "availability": {
                      "type": "object",
                      "properties": {
                        "until": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "floorDays": {
                          "type": "number"
                        },
                        "basis": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "until",
                        "floorDays",
                        "basis"
                      ]
                    }
                  },
                  "required": [
                    "regulatory",
                    "translatedPaths",
                    "product",
                    "data",
                    "version",
                    "owner",
                    "issuerIdentity",
                    "productModel",
                    "locale",
                    "interfaceLocale",
                    "sourceLocale",
                    "languages",
                    "availableLocales",
                    "translationStatus",
                    "id",
                    "status",
                    "lifecycleState",
                    "publishedMarkets",
                    "publishedAt",
                    "availability"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/provenance": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Provenance_get",
        "summary": "Get passport provenance",
        "description": "Field-level lineage of one passport version: source, evidence, claims, issuer, reviewer, rules, introducing version.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "product": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "sku": {
                          "type": "string"
                        },
                        "category": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "sku",
                        "category"
                      ]
                    },
                    "version": {
                      "type": "number"
                    },
                    "currentVersion": {
                      "type": "number"
                    },
                    "publishedVersion": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "validation": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "runId": {
                              "type": "string"
                            },
                            "compliant": {
                              "type": "boolean"
                            },
                            "score": {
                              "type": "number"
                            },
                            "packCode": {
                              "type": "string"
                            },
                            "packVersion": {
                              "type": "string"
                            },
                            "at": {
                              "type": "string",
                              "format": "date-time"
                            }
                          },
                          "required": [
                            "runId",
                            "compliant",
                            "score",
                            "packCode",
                            "packVersion",
                            "at"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "rulePack": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/PackRef"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "summary": {
                      "type": "object",
                      "properties": {
                        "fields": {
                          "type": "number"
                        },
                        "evidenced": {
                          "type": "number"
                        },
                        "claimUnsupported": {
                          "type": "number"
                        },
                        "unsupported": {
                          "type": "number"
                        },
                        "supplierSourced": {
                          "type": "number"
                        },
                        "integrationSourced": {
                          "type": "number"
                        },
                        "withFindings": {
                          "type": "number"
                        },
                        "openConflicts": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "fields",
                        "evidenced",
                        "claimUnsupported",
                        "unsupported",
                        "supplierSourced",
                        "integrationSourced",
                        "withFindings",
                        "openConflicts"
                      ]
                    },
                    "fields": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "path": {
                            "type": "string"
                          },
                          "value": {},
                          "status": {
                            "type": "string",
                            "enum": [
                              "unsupported",
                              "evidenced",
                              "claim_unsupported"
                            ]
                          },
                          "introduced": {
                            "type": "object",
                            "properties": {
                              "version": {
                                "type": "number"
                              },
                              "at": {
                                "type": "string",
                                "format": "date-time"
                              },
                              "by": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string"
                                      },
                                      "name": {
                                        "type": [
                                          "string",
                                          "null"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "name"
                                    ]
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "version",
                              "at",
                              "by"
                            ]
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "requestId": {},
                                "supplier": {
                                  "type": "object",
                                  "properties": {
                                    "id": {},
                                    "name": {},
                                    "country": {}
                                  },
                                  "required": [
                                    "id",
                                    "name",
                                    "country"
                                  ]
                                },
                                "respondedAt": {},
                                "value": {},
                                "matches": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "requestId",
                                "supplier",
                                "respondedAt",
                                "value",
                                "matches"
                              ]
                            }
                          },
                          "imported": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "mappingId": {},
                                "mappingName": {},
                                "runId": {},
                                "version": {},
                                "at": {}
                              },
                              "required": [
                                "mappingId",
                                "mappingName",
                                "runId",
                                "version",
                                "at"
                              ]
                            }
                          },
                          "importedIntroduction": {
                            "type": "boolean"
                          },
                          "evidence": {
                            "type": "array",
                            "items": {}
                          },
                          "claims": {
                            "type": "array",
                            "items": {}
                          },
                          "facts": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {},
                                "documentId": {},
                                "raw": {},
                                "canonicalValue": {},
                                "unit": {},
                                "method": {},
                                "confidence": {},
                                "evidence": {}
                              },
                              "required": [
                                "id",
                                "documentId",
                                "raw",
                                "canonicalValue",
                                "unit",
                                "method",
                                "confidence",
                                "evidence"
                              ]
                            }
                          },
                          "conflicts": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {},
                                "severity": {},
                                "outcome": {},
                                "values": {}
                              },
                              "required": [
                                "id",
                                "severity",
                                "outcome",
                                "values"
                              ]
                            }
                          },
                          "rules": {
                            "type": "array",
                            "items": {}
                          },
                          "findings": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "ruleId": {},
                                "message": {},
                                "severity": {}
                              },
                              "required": [
                                "ruleId",
                                "message",
                                "severity"
                              ]
                            }
                          }
                        },
                        "required": [
                          "path",
                          "value",
                          "status",
                          "introduced",
                          "sources",
                          "imported",
                          "importedIntroduction",
                          "evidence",
                          "claims",
                          "facts",
                          "conflicts",
                          "rules",
                          "findings"
                        ]
                      }
                    },
                    "historyLimited": {
                      "type": "boolean"
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "dppId",
                    "product",
                    "version",
                    "currentVersion",
                    "publishedVersion",
                    "validation",
                    "rulePack",
                    "summary",
                    "fields",
                    "historyLimited",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/publication-approvals": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_requestPublicationApproval",
        "summary": "Add passport publication approvals",
        "description": "Request a version- and market-bound exception to the normal publication gate.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "markets": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "reason": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DppPublicationApproval"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      },
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_publicationApprovals",
        "summary": "Get passport publication approvals",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`). Console users need the owner / admin / member / viewer role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string"
                          },
                          "requestedBy": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "status",
                          "requestedBy"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "selfDecision": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "enum": [
                              "allowed",
                              "policy-off",
                              "other-approvers",
                              null
                            ]
                          },
                          "status": {
                            "type": "string"
                          },
                          "requestedBy": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "selfDecision",
                          "status",
                          "requestedBy"
                        ]
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/publication-approvals/{approvalId}/decision": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_decidePublicationApproval",
        "summary": "Add passport publication approvals decision",
        "description": "API key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "approvalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "approved": {
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DppPublicationApproval2"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/publish": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_publish",
        "summary": "Publish a passport",
        "description": "Publish a passport release. Blocking findings or a readiness-only pack require an approved, unused `approvalId` for this exact passport version and market set.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "markets": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "approvalId": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "credential": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "jti": {
                              "type": "string"
                            },
                            "expiresAt": {
                              "type": "string",
                              "format": "date-time"
                            }
                          },
                          "required": [
                            "jti",
                            "expiresAt"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "compliance": {
                      "type": "object",
                      "properties": {
                        "overrideSelfApproved": {
                          "type": "boolean"
                        },
                        "overrideReason": {
                          "type": "string"
                        },
                        "markets": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "compliant": {
                          "type": "boolean"
                        },
                        "rulesPassed": {
                          "type": "boolean"
                        },
                        "legallyAssessed": {
                          "type": "boolean"
                        },
                        "assessmentStatus": {
                          "type": "string",
                          "enum": [
                            "readiness_only",
                            "legally_assessed"
                          ]
                        },
                        "readinessScore": {
                          "type": "number"
                        },
                        "readinessGrade": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "packStatus": {
                          "type": "string"
                        },
                        "blocking": {
                          "type": "number"
                        },
                        "packApprovalRequired": {
                          "type": "boolean"
                        },
                        "overridden": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "markets",
                        "compliant",
                        "rulesPassed",
                        "legallyAssessed",
                        "assessmentStatus",
                        "readinessScore",
                        "readinessGrade",
                        "packStatus",
                        "blocking",
                        "packApprovalRequired",
                        "overridden"
                      ]
                    },
                    "registry": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "enum": [
                            "not_required",
                            "not_configured",
                            "submitted",
                            "failed"
                          ]
                        },
                        "error": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "status"
                      ]
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "productId": {
                      "type": "string"
                    },
                    "schemaId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "lifecycleState": {
                      "type": "string"
                    },
                    "currentVersion": {
                      "type": "number"
                    },
                    "publishedVersion": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "publishedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "publishedMarkets": {
                      "anyOf": [
                        {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "publicRedactions": {},
                    "publicDisclosures": {},
                    "pendingPublicRedactions": {},
                    "pendingPublicDisclosures": {},
                    "derivedFromId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "derivation": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "derivationMeta": {},
                    "sourceLocale": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "carbonBaseline": {},
                    "correctionOpenedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "suspendedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "suspensionReason": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "suspendedFromLifecycleState": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "credential",
                    "compliance",
                    "registry",
                    "id",
                    "organizationId",
                    "productId",
                    "schemaId",
                    "status",
                    "lifecycleState",
                    "currentVersion",
                    "publishedVersion",
                    "publishedAt",
                    "publishedMarkets",
                    "publicRedactions",
                    "publicDisclosures",
                    "pendingPublicRedactions",
                    "pendingPublicDisclosures",
                    "derivedFromId",
                    "derivation",
                    "derivationMeta",
                    "sourceLocale",
                    "carbonBaseline",
                    "correctionOpenedAt",
                    "suspendedAt",
                    "suspensionReason",
                    "suspendedFromLifecycleState",
                    "createdAt",
                    "updatedAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/qr": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_qr",
        "summary": "Get passport qr",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    },
                    "dataUrl": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "url",
                    "format",
                    "dataUrl"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/recall": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_recall",
        "summary": "Recall a passport",
        "description": "Withdraw the product. The passport stays public and states the recall.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "registry": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "enum": [
                            "not_required",
                            "not_configured",
                            "submitted",
                            "failed"
                          ]
                        },
                        "error": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "status"
                      ]
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "productId": {
                      "type": "string"
                    },
                    "schemaId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "lifecycleState": {
                      "type": "string"
                    },
                    "currentVersion": {
                      "type": "number"
                    },
                    "publishedVersion": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "publishedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "publishedMarkets": {
                      "anyOf": [
                        {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "publicRedactions": {},
                    "publicDisclosures": {},
                    "pendingPublicRedactions": {},
                    "pendingPublicDisclosures": {},
                    "derivedFromId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "derivation": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "derivationMeta": {},
                    "sourceLocale": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "carbonBaseline": {},
                    "correctionOpenedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "suspendedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "suspensionReason": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "suspendedFromLifecycleState": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "registry",
                    "id",
                    "organizationId",
                    "productId",
                    "schemaId",
                    "status",
                    "lifecycleState",
                    "currentVersion",
                    "publishedVersion",
                    "publishedAt",
                    "publishedMarkets",
                    "publicRedactions",
                    "publicDisclosures",
                    "pendingPublicRedactions",
                    "pendingPublicDisclosures",
                    "derivedFromId",
                    "derivation",
                    "derivationMeta",
                    "sourceLocale",
                    "carbonBaseline",
                    "correctionOpenedAt",
                    "suspendedAt",
                    "suspensionReason",
                    "suspendedFromLifecycleState",
                    "createdAt",
                    "updatedAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/redaction": {
      "put": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_setRedactions",
        "summary": "Update passport redaction",
        "description": "Configure dot-paths hidden from public/recycler views.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "paths": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "paths"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "redactedPaths": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "staged": {
                      "type": "boolean"
                    },
                    "releaseVersion": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "dppId",
                    "redactedPaths",
                    "staged",
                    "releaseVersion"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/registry": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_registryStatus",
        "summary": "Get passport registry",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`). Console users need the owner / admin / member / viewer role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DppRegistryRecord2"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/registry/outcome": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_recordRegistryOutcome",
        "summary": "Add passport registry outcome",
        "description": "Record what the EU DPP Registry answered for a registration made in its own interface (online form or file upload): the correlation ID, then PROCESSING, SUCCESS with the registration URI, or FAILURE with the Registry's error. The record is kept with the published release.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "correlationId": {
                    "type": "string"
                  },
                  "outcome": {
                    "type": "string",
                    "enum": [
                      "processing",
                      "success",
                      "failure"
                    ]
                  },
                  "registrationUri": {
                    "type": "string"
                  },
                  "error": {
                    "type": "string"
                  }
                },
                "required": [
                  "correlationId",
                  "outcome"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DppRegistryRecord"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/registry/preparation": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_registryPreparation",
        "summary": "Get passport registry preparation",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`). Console users need the owner / admin / member / viewer role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "version": {
                      "type": "number"
                    },
                    "publishedVersion": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "required": {
                      "type": "boolean"
                    },
                    "configured": {
                      "type": "boolean"
                    },
                    "submission": {
                      "type": "string",
                      "enum": [
                        "api",
                        "registry-interface"
                      ]
                    },
                    "identifiers": {
                      "type": "object",
                      "properties": {
                        "operatorIdentifier": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "commodityCode": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "operatorIdentifier",
                        "commodityCode"
                      ]
                    },
                    "registration": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/RegistrationEntry"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "ready": {
                      "type": "boolean"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "dppId",
                    "version",
                    "publishedVersion",
                    "required",
                    "configured",
                    "submission",
                    "identifiers",
                    "registration",
                    "ready",
                    "issues"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/registry/register": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_registerPublishedRelease",
        "summary": "Register registry of a passport",
        "description": "API key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DppRegistryRecord"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/reinstate": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_reinstate",
        "summary": "Reinstate a passport",
        "description": "Return a recalled or archived passport to draft so the record can be corrected.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Dpp"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/remanufacture": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_remanufacture",
        "summary": "Add passport remanufacture",
        "description": "Issue a NEW passport derived from this one (remanufactured / refurbished item).\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": {}
                  },
                  "productId": {
                    "type": "string"
                  },
                  "schemaId": {
                    "type": "string"
                  },
                  "schemaVersion": {
                    "type": "string"
                  },
                  "derivation": {
                    "type": "string"
                  },
                  "note": {
                    "type": "string"
                  },
                  "publish": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product": {
                      "$ref": "#/components/schemas/Product"
                    },
                    "version": {
                      "$ref": "#/components/schemas/DppVersion"
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "productId": {
                      "type": "string"
                    },
                    "schemaId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "lifecycleState": {
                      "type": "string"
                    },
                    "currentVersion": {
                      "type": "number"
                    },
                    "publishedVersion": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "publishedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "publishedMarkets": {
                      "anyOf": [
                        {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "publicRedactions": {},
                    "publicDisclosures": {},
                    "pendingPublicRedactions": {},
                    "pendingPublicDisclosures": {},
                    "derivedFromId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "derivation": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "derivationMeta": {},
                    "sourceLocale": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "carbonBaseline": {},
                    "correctionOpenedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "suspendedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "suspensionReason": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "suspendedFromLifecycleState": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "product",
                    "version",
                    "id",
                    "organizationId",
                    "productId",
                    "schemaId",
                    "status",
                    "lifecycleState",
                    "currentVersion",
                    "publishedVersion",
                    "publishedAt",
                    "publishedMarkets",
                    "publicRedactions",
                    "publicDisclosures",
                    "pendingPublicRedactions",
                    "pendingPublicDisclosures",
                    "derivedFromId",
                    "derivation",
                    "derivationMeta",
                    "sourceLocale",
                    "carbonBaseline",
                    "correctionOpenedAt",
                    "suspendedAt",
                    "suspensionReason",
                    "suspendedFromLifecycleState",
                    "createdAt",
                    "updatedAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/resume": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_resume",
        "summary": "Add passport resume",
        "description": "API key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "credential": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "jti": {
                              "type": "string"
                            },
                            "expiresAt": {
                              "type": "string",
                              "format": "date-time"
                            }
                          },
                          "required": [
                            "jti",
                            "expiresAt"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "registry": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "enum": [
                            "not_required",
                            "not_configured",
                            "submitted",
                            "failed"
                          ]
                        },
                        "error": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "status"
                      ]
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "productId": {
                      "type": "string"
                    },
                    "schemaId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "lifecycleState": {
                      "type": "string"
                    },
                    "currentVersion": {
                      "type": "number"
                    },
                    "publishedVersion": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "publishedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "publishedMarkets": {
                      "anyOf": [
                        {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "publicRedactions": {},
                    "publicDisclosures": {},
                    "pendingPublicRedactions": {},
                    "pendingPublicDisclosures": {},
                    "derivedFromId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "derivation": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "derivationMeta": {},
                    "sourceLocale": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "carbonBaseline": {},
                    "correctionOpenedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "suspendedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "suspensionReason": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "suspendedFromLifecycleState": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "credential",
                    "registry",
                    "id",
                    "organizationId",
                    "productId",
                    "schemaId",
                    "status",
                    "lifecycleState",
                    "currentVersion",
                    "publishedVersion",
                    "publishedAt",
                    "publishedMarkets",
                    "publicRedactions",
                    "publicDisclosures",
                    "pendingPublicRedactions",
                    "pendingPublicDisclosures",
                    "derivedFromId",
                    "derivation",
                    "derivationMeta",
                    "sourceLocale",
                    "carbonBaseline",
                    "correctionOpenedAt",
                    "suspendedAt",
                    "suspensionReason",
                    "suspendedFromLifecycleState",
                    "createdAt",
                    "updatedAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/scip": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Substances_dossier",
        "summary": "Get passport scip",
        "description": "SCIP-aligned dossier preview (what would be submitted, and what is still missing).\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "version": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "no-declaration",
                        "svhc-present",
                        "svhc-below-threshold",
                        "restricted-substance",
                        "no-svhc"
                      ]
                    },
                    "productType": {
                      "type": "string",
                      "enum": [
                        "unknown",
                        "article",
                        "mixture"
                      ]
                    },
                    "scipRequired": {
                      "type": "boolean"
                    },
                    "containsSvhc": {
                      "type": "boolean"
                    },
                    "thresholdHits": {
                      "type": "number"
                    },
                    "outstanding": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "missingInputs": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "warnings": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "dossier": {
                      "$ref": "#/components/schemas/ScipDossier"
                    }
                  },
                  "required": [
                    "dppId",
                    "version",
                    "status",
                    "productType",
                    "scipRequired",
                    "containsSvhc",
                    "thresholdHits",
                    "outstanding",
                    "missingInputs",
                    "warnings",
                    "dossier"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      },
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Substances_issue",
        "summary": "Add passport scip",
        "description": "Issues a snapshot of the current screening with a reference containing the complete passport ID.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppVersion": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "status": {
                      "type": "string"
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "dppId": {
                      "type": "string"
                    },
                    "payload": {},
                    "scipNumber": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "reference": {
                      "type": "string"
                    },
                    "versionNumber": {
                      "type": "number"
                    },
                    "issuedBy": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "issuedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "supersededAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "revokedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "revokedReason": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "productType": {
                      "type": "string"
                    },
                    "candidateListVersion": {
                      "type": "string"
                    },
                    "containsSvhc": {
                      "type": "boolean"
                    },
                    "substanceCount": {
                      "type": "number"
                    },
                    "thresholdHits": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "dppVersion",
                    "status",
                    "id",
                    "organizationId",
                    "dppId",
                    "payload",
                    "scipNumber",
                    "reference",
                    "versionNumber",
                    "issuedBy",
                    "issuedAt",
                    "supersededAt",
                    "revokedAt",
                    "revokedReason",
                    "productType",
                    "candidateListVersion",
                    "containsSvhc",
                    "substanceCount",
                    "thresholdHits"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/scip-dossiers": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Substances_history",
        "summary": "Get passport scip dossiers",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "dppVersion": {
                        "type": [
                          "number",
                          "null"
                        ]
                      },
                      "currentDppVersion": {
                        "type": [
                          "number",
                          "null"
                        ]
                      },
                      "outOfDate": {
                        "type": [
                          "boolean",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "dppVersion",
                      "currentDppVersion",
                      "outOfDate"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/scip.csv": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Substances_csv",
        "summary": "Get passport scip.csv",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/scip.json": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Substances_issued",
        "summary": "Get passport scip.json",
        "description": "Downloads a saved SCIP dossier whose reference belongs to this passport.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reference",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/scip/revoke": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Substances_revokeForPassport",
        "summary": "Revoke scip of a passport",
        "description": "Revokes a document belonging to this passport; the reference is carried in the body.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reference": {
                    "type": "string"
                  },
                  "reason": {
                    "type": "string"
                  }
                },
                "required": [
                  "reference"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/sds": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Chemicals_sds",
        "summary": "Get passport sds",
        "description": "Structured SDS data package (what would be issued, and what a competent person must author).\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "language",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "version": {
                      "type": "number"
                    },
                    "status": {
                      "type": "string"
                    },
                    "revision": {
                      "type": "string"
                    },
                    "language": {
                      "type": "string"
                    },
                    "classified": {
                      "type": "boolean"
                    },
                    "signalWord": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "enum": [
                        "DANGER",
                        "WARNING",
                        null
                      ]
                    },
                    "pictograms": {
                      "type": "number"
                    },
                    "hazardStatements": {
                      "type": "number"
                    },
                    "rulesToVerify": {
                      "type": "number"
                    },
                    "unresolvedComponents": {
                      "type": "number"
                    },
                    "filledSections": {
                      "type": "number"
                    },
                    "requiresAuthoring": {
                      "type": "number"
                    },
                    "nextReviewAt": {
                      "type": "string"
                    },
                    "obligations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ChemicalObligation"
                      }
                    },
                    "missingInputs": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "labelComparison": {
                      "$ref": "#/components/schemas/LabelComparison"
                    },
                    "package": {
                      "$ref": "#/components/schemas/SdsPackage"
                    }
                  },
                  "required": [
                    "dppId",
                    "version",
                    "status",
                    "revision",
                    "language",
                    "classified",
                    "signalWord",
                    "pictograms",
                    "hazardStatements",
                    "rulesToVerify",
                    "unresolvedComponents",
                    "filledSections",
                    "requiresAuthoring",
                    "nextReviewAt",
                    "obligations",
                    "missingInputs",
                    "labelComparison",
                    "package"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      },
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Chemicals_issue",
        "summary": "Add passport sds",
        "description": "Issues an SDS revision with a reference containing the complete passport ID.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "language": {
                    "type": "string"
                  },
                  "revisionNote": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SdsRecord"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/sds-records": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Chemicals_history",
        "summary": "Get passport sds records",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "reviewDue": {
                        "type": "boolean"
                      },
                      "dppVersion": {
                        "type": [
                          "number",
                          "null"
                        ]
                      },
                      "currentDppVersion": {
                        "type": [
                          "number",
                          "null"
                        ]
                      },
                      "outOfDate": {
                        "type": [
                          "boolean",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "reviewDue",
                      "dppVersion",
                      "currentDppVersion",
                      "outOfDate"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/sds.csv": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Chemicals_csv",
        "summary": "Get passport sds.csv",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/sds.json": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Chemicals_issued",
        "summary": "Get passport sds.json",
        "description": "Downloads a saved SDS revision whose reference belongs to this passport.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reference",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/sds/revoke": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Chemicals_revokeForPassport",
        "summary": "Revoke sds of a passport",
        "description": "Revokes a document belonging to this passport; the reference is carried in the body.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reference": {
                    "type": "string"
                  },
                  "reason": {
                    "type": "string"
                  }
                },
                "required": [
                  "reference"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/source-locale": {
      "put": {
        "tags": [
          "Passports"
        ],
        "operationId": "Localization_setSourceLocale",
        "summary": "Update passport source locale",
        "description": "The language this passport is authored in (default English).\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "locale": {
                    "type": "string"
                  }
                },
                "required": [
                  "locale"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "sourceLocale": {
                      "type": "string"
                    },
                    "changed": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "dppId",
                    "sourceLocale",
                    "changed"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/sourcing": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Sourcing_assessment",
        "summary": "Get passport sourcing",
        "description": "Persisted state for one passport: the last assessment and every alternative with its decision.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "currentDppVersion": {
                      "type": "number"
                    },
                    "persistedState": {
                      "type": "boolean"
                    },
                    "lastAssessment": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "outOfDate": {
                              "type": "boolean"
                            },
                            "reference": {},
                            "versionNumber": {},
                            "dppVersion": {},
                            "status": {},
                            "band": {},
                            "resilienceIndex": {},
                            "materials": {},
                            "suppliers": {},
                            "singleSourceCount": {},
                            "criticalExposureCount": {},
                            "unattributedCount": {},
                            "candidates": {},
                            "eligibleCandidates": {},
                            "blockedCandidates": {},
                            "openDecisions": {},
                            "adopted": {},
                            "headline": {},
                            "deductions": {},
                            "exposures": {},
                            "concentration": {},
                            "note": {},
                            "supersededBy": {},
                            "issuedAt": {},
                            "revokedAt": {},
                            "revokeReason": {},
                            "caveat": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "outOfDate",
                            "reference",
                            "versionNumber",
                            "dppVersion",
                            "status",
                            "band",
                            "resilienceIndex",
                            "materials",
                            "suppliers",
                            "singleSourceCount",
                            "criticalExposureCount",
                            "unattributedCount",
                            "candidates",
                            "eligibleCandidates",
                            "blockedCandidates",
                            "openDecisions",
                            "adopted",
                            "headline",
                            "deductions",
                            "exposures",
                            "concentration",
                            "note",
                            "supersededBy",
                            "issuedAt",
                            "revokedAt",
                            "revokeReason",
                            "caveat"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "alternatives": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "toSupplier": {},
                          "fromSupplier": {},
                          "id": {},
                          "dppId": {},
                          "material": {},
                          "fromSupplierId": {},
                          "toSupplierId": {},
                          "status": {},
                          "eligibility": {},
                          "score": {},
                          "criticality": {},
                          "exposureScore": {},
                          "blockers": {},
                          "conditions": {},
                          "improvements": {},
                          "whatDoesNotImprove": {},
                          "reasons": {},
                          "requestId": {},
                          "decisionReason": {},
                          "decidedAt": {},
                          "occurrences": {},
                          "cleared": {},
                          "lastSeenAt": {},
                          "firstSeenAt": {}
                        },
                        "required": [
                          "toSupplier",
                          "fromSupplier",
                          "id",
                          "dppId",
                          "material",
                          "fromSupplierId",
                          "toSupplierId",
                          "status",
                          "eligibility",
                          "score",
                          "criticality",
                          "exposureScore",
                          "blockers",
                          "conditions",
                          "improvements",
                          "whatDoesNotImprove",
                          "reasons",
                          "requestId",
                          "decisionReason",
                          "decidedAt",
                          "occurrences",
                          "cleared",
                          "lastSeenAt",
                          "firstSeenAt"
                        ]
                      }
                    },
                    "counts": {
                      "type": "object",
                      "properties": {
                        "proposed": {
                          "type": "number"
                        },
                        "shortlisted": {
                          "type": "number"
                        },
                        "rejected": {
                          "type": "number"
                        },
                        "adopted": {
                          "type": "number"
                        },
                        "cleared": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "proposed",
                        "shortlisted",
                        "rejected",
                        "adopted",
                        "cleared"
                      ]
                    },
                    "note": {
                      "type": "string"
                    },
                    "caveat": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "dppId",
                    "currentDppVersion",
                    "persistedState",
                    "lastAssessment",
                    "alternatives",
                    "counts",
                    "note",
                    "caveat"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/sourcing-assessment": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Sourcing_issue",
        "summary": "Add passport sourcing assessment",
        "description": "Issue the immutable assessment artifact (analyses first, so it reflects reality now).\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "note": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "payload": {
                      "type": "object"
                    },
                    "reference": {},
                    "versionNumber": {},
                    "dppVersion": {},
                    "status": {},
                    "band": {},
                    "resilienceIndex": {},
                    "materials": {},
                    "suppliers": {},
                    "singleSourceCount": {},
                    "criticalExposureCount": {},
                    "unattributedCount": {},
                    "candidates": {},
                    "eligibleCandidates": {},
                    "blockedCandidates": {},
                    "openDecisions": {},
                    "adopted": {},
                    "headline": {},
                    "deductions": {},
                    "exposures": {},
                    "concentration": {},
                    "note": {},
                    "supersededBy": {},
                    "issuedAt": {},
                    "revokedAt": {},
                    "revokeReason": {},
                    "caveat": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "payload",
                    "reference",
                    "versionNumber",
                    "dppVersion",
                    "status",
                    "band",
                    "resilienceIndex",
                    "materials",
                    "suppliers",
                    "singleSourceCount",
                    "criticalExposureCount",
                    "unattributedCount",
                    "candidates",
                    "eligibleCandidates",
                    "blockedCandidates",
                    "openDecisions",
                    "adopted",
                    "headline",
                    "deductions",
                    "exposures",
                    "concentration",
                    "note",
                    "supersededBy",
                    "issuedAt",
                    "revokedAt",
                    "revokeReason",
                    "caveat"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/sourcing-assessment.csv": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Sourcing_issuedCsv",
        "summary": "Get passport sourcing assessment.csv",
        "description": "Exports the saved assessment for this passport.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reference",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/sourcing-assessment.json": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Sourcing_issued",
        "summary": "Get passport sourcing assessment.json",
        "description": "Downloads a saved assessment whose reference belongs to this passport.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reference",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/sourcing-assessment/revoke": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Sourcing_revokeForPassport",
        "summary": "Revoke sourcing assessment of a passport",
        "description": "Revokes a document belonging to this passport; the reference is carried in the body.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reference": {
                    "type": "string"
                  },
                  "reason": {
                    "type": "string"
                  }
                },
                "required": [
                  "reference"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "reference": {},
                    "versionNumber": {},
                    "dppVersion": {},
                    "status": {},
                    "band": {},
                    "resilienceIndex": {},
                    "materials": {},
                    "suppliers": {},
                    "singleSourceCount": {},
                    "criticalExposureCount": {},
                    "unattributedCount": {},
                    "candidates": {},
                    "eligibleCandidates": {},
                    "blockedCandidates": {},
                    "openDecisions": {},
                    "adopted": {},
                    "headline": {},
                    "deductions": {},
                    "exposures": {},
                    "concentration": {},
                    "note": {},
                    "supersededBy": {},
                    "issuedAt": {},
                    "revokedAt": {},
                    "revokeReason": {},
                    "caveat": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "reference",
                    "versionNumber",
                    "dppVersion",
                    "status",
                    "band",
                    "resilienceIndex",
                    "materials",
                    "suppliers",
                    "singleSourceCount",
                    "criticalExposureCount",
                    "unattributedCount",
                    "candidates",
                    "eligibleCandidates",
                    "blockedCandidates",
                    "openDecisions",
                    "adopted",
                    "headline",
                    "deductions",
                    "exposures",
                    "concentration",
                    "note",
                    "supersededBy",
                    "issuedAt",
                    "revokedAt",
                    "revokeReason",
                    "caveat"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/sourcing-assessments": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Sourcing_assessments",
        "summary": "Get passport sourcing assessments",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "reference": {},
                      "versionNumber": {},
                      "dppVersion": {},
                      "status": {},
                      "band": {},
                      "resilienceIndex": {},
                      "materials": {},
                      "suppliers": {},
                      "singleSourceCount": {},
                      "criticalExposureCount": {},
                      "unattributedCount": {},
                      "candidates": {},
                      "eligibleCandidates": {},
                      "blockedCandidates": {},
                      "openDecisions": {},
                      "adopted": {},
                      "headline": {},
                      "deductions": {},
                      "exposures": {},
                      "concentration": {},
                      "note": {},
                      "supersededBy": {},
                      "issuedAt": {},
                      "revokedAt": {},
                      "revokeReason": {},
                      "caveat": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "reference",
                      "versionNumber",
                      "dppVersion",
                      "status",
                      "band",
                      "resilienceIndex",
                      "materials",
                      "suppliers",
                      "singleSourceCount",
                      "criticalExposureCount",
                      "unattributedCount",
                      "candidates",
                      "eligibleCandidates",
                      "blockedCandidates",
                      "openDecisions",
                      "adopted",
                      "headline",
                      "deductions",
                      "exposures",
                      "concentration",
                      "note",
                      "supersededBy",
                      "issuedAt",
                      "revokedAt",
                      "revokeReason",
                      "caveat"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/sourcing/analyse": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Sourcing_analyse",
        "summary": "Add passport sourcing analyse",
        "description": "Run the analysis: exposure, concentration, candidates and the resilience index (persists alternatives).\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "dryRun": {
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "product": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "sku": {
                          "type": "string"
                        },
                        "category": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "name",
                        "sku",
                        "category"
                      ]
                    },
                    "version": {
                      "type": "number"
                    },
                    "sourcingVersion": {
                      "type": "string"
                    },
                    "persisted": {
                      "type": "boolean"
                    },
                    "resilience": {
                      "type": "object",
                      "properties": {
                        "index": {
                          "type": "number"
                        },
                        "band": {
                          "type": "string",
                          "enum": [
                            "strong",
                            "adequate",
                            "fragile",
                            "exposed"
                          ]
                        },
                        "deductions": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "dimension": {
                                "type": "string"
                              },
                              "points": {
                                "type": "number"
                              },
                              "detail": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "dimension",
                              "points",
                              "detail"
                            ]
                          }
                        },
                        "basis": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "index",
                        "band",
                        "deductions",
                        "basis"
                      ]
                    },
                    "headline": {
                      "type": "string"
                    },
                    "materials": {
                      "type": "number"
                    },
                    "suppliers": {
                      "type": "number"
                    },
                    "links": {
                      "type": "number"
                    },
                    "unattributedSuppliers": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "unlinkedMaterials": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "unattributedNote": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "underEvaluation": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "note": {
                            "type": "string"
                          },
                          "supplierId": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "country": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "materials": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "openRequests": {
                            "type": "number"
                          },
                          "since": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "note",
                          "supplierId",
                          "name",
                          "country",
                          "materials",
                          "openRequests",
                          "since"
                        ]
                      }
                    },
                    "underEvaluationNote": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "exposures": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Exposure"
                      }
                    },
                    "concentration": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "country": {
                            "type": "string"
                          },
                          "links": {
                            "type": "number"
                          },
                          "materials": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "share": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "country",
                          "links",
                          "materials",
                          "share"
                        ]
                      }
                    },
                    "candidates": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "material": {
                            "type": "string"
                          },
                          "exposure": {
                            "$ref": "#/components/schemas/Exposure"
                          },
                          "incumbentIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "candidates": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/CandidateAssessment"
                            }
                          }
                        },
                        "required": [
                          "material",
                          "exposure",
                          "incumbentIds",
                          "candidates"
                        ]
                      }
                    },
                    "counts": {
                      "type": "object",
                      "properties": {
                        "candidates": {
                          "type": "number"
                        },
                        "eligible": {
                          "type": "number"
                        },
                        "blocked": {
                          "type": "number"
                        },
                        "singleSource": {
                          "type": "number"
                        },
                        "critical": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "candidates",
                        "eligible",
                        "blocked",
                        "singleSource",
                        "critical"
                      ]
                    },
                    "alternatives": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "toSupplier": {},
                          "fromSupplier": {},
                          "id": {},
                          "dppId": {},
                          "material": {},
                          "fromSupplierId": {},
                          "toSupplierId": {},
                          "status": {},
                          "eligibility": {},
                          "score": {},
                          "criticality": {},
                          "exposureScore": {},
                          "blockers": {},
                          "conditions": {},
                          "improvements": {},
                          "whatDoesNotImprove": {},
                          "reasons": {},
                          "requestId": {},
                          "decisionReason": {},
                          "decidedAt": {},
                          "occurrences": {},
                          "cleared": {},
                          "lastSeenAt": {},
                          "firstSeenAt": {}
                        },
                        "required": [
                          "toSupplier",
                          "fromSupplier",
                          "id",
                          "dppId",
                          "material",
                          "fromSupplierId",
                          "toSupplierId",
                          "status",
                          "eligibility",
                          "score",
                          "criticality",
                          "exposureScore",
                          "blockers",
                          "conditions",
                          "improvements",
                          "whatDoesNotImprove",
                          "reasons",
                          "requestId",
                          "decisionReason",
                          "decidedAt",
                          "occurrences",
                          "cleared",
                          "lastSeenAt",
                          "firstSeenAt"
                        ]
                      }
                    },
                    "clearedAlternatives": {
                      "type": "number"
                    },
                    "decisionGuards": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string",
                            "enum": [
                              "reject",
                              "shortlist",
                              "adopt"
                            ]
                          },
                          "label": {
                            "type": "string"
                          },
                          "requiresReason": {
                            "type": "boolean"
                          },
                          "note": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "key",
                          "label",
                          "requiresReason",
                          "note"
                        ]
                      }
                    },
                    "caveat": {
                      "type": "string"
                    },
                    "scopeNote": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "dppId",
                    "product",
                    "version",
                    "sourcingVersion",
                    "persisted",
                    "resilience",
                    "headline",
                    "materials",
                    "suppliers",
                    "links",
                    "unattributedSuppliers",
                    "unlinkedMaterials",
                    "unattributedNote",
                    "underEvaluation",
                    "underEvaluationNote",
                    "exposures",
                    "concentration",
                    "candidates",
                    "counts",
                    "alternatives",
                    "clearedAlternatives",
                    "decisionGuards",
                    "caveat",
                    "scopeNote"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/split": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_split",
        "summary": "Split a passport",
        "description": "Serialization: split one passport into a batch of serialized items. Each item is a real passport (validated, custodied, audited) linked back to the source through lineage.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Draft creation follows tenant write permissions; publish=true needs the owner / admin role and publication step-up.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SplitInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "sourceId": {
                      "type": "string"
                    },
                    "productId": {
                      "type": "string"
                    },
                    "batch": {
                      "type": "string"
                    },
                    "serialField": {
                      "type": "string"
                    },
                    "requested": {
                      "type": "number"
                    },
                    "createdCount": {
                      "type": "number"
                    },
                    "failedCount": {
                      "type": "number"
                    },
                    "created": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "serial": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "publishError": {
                            "type": "string"
                          },
                          "registry": {
                            "type": "object",
                            "properties": {
                              "status": {
                                "type": "string",
                                "enum": [
                                  "not_required",
                                  "not_configured",
                                  "submitted",
                                  "failed"
                                ]
                              },
                              "error": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "status"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "serial",
                          "status"
                        ]
                      }
                    },
                    "failed": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "serial": {
                            "type": "string"
                          },
                          "error": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "serial",
                          "error"
                        ]
                      }
                    }
                  },
                  "required": [
                    "sourceId",
                    "productId",
                    "batch",
                    "serialField",
                    "requested",
                    "createdCount",
                    "failedCount",
                    "created",
                    "failed"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/substances": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Substances_screen",
        "summary": "Get passport substances",
        "description": "Live screening of the passport's declared composition.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productType",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "markets",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "no-declaration",
                        "svhc-present",
                        "svhc-below-threshold",
                        "restricted-substance",
                        "no-svhc"
                      ]
                    },
                    "productType": {
                      "type": "string",
                      "enum": [
                        "unknown",
                        "article",
                        "mixture"
                      ]
                    },
                    "thresholdPercent": {
                      "type": "number"
                    },
                    "declaredCount": {
                      "type": "number"
                    },
                    "hits": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/SubstanceHit"
                      }
                    },
                    "belowThreshold": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/SubstanceHit"
                      }
                    },
                    "unresolved": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ScreeningUnresolved"
                      }
                    },
                    "watched": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/SubstanceHit"
                      }
                    },
                    "obligations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ScreeningObligation"
                      }
                    },
                    "scip": {
                      "type": "object",
                      "properties": {
                        "required": {
                          "type": "boolean"
                        },
                        "number": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "satisfied": {
                          "type": "boolean"
                        },
                        "reason": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "required",
                        "number",
                        "satisfied",
                        "reason"
                      ]
                    },
                    "markets": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "warnings": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "missingInputs": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "declarationPaths": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "dppId": {
                      "type": "string"
                    },
                    "product": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "sku": {
                          "type": "string"
                        },
                        "gtin": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "category": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "name",
                        "sku",
                        "gtin",
                        "category"
                      ]
                    },
                    "version": {
                      "type": "number"
                    },
                    "methodVersion": {
                      "type": "string"
                    },
                    "candidateList": {
                      "type": "object",
                      "properties": {
                        "version": {
                          "type": "string"
                        },
                        "source": {
                          "type": "string"
                        },
                        "entries": {
                          "type": "number"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "age": {
                          "$ref": "#/components/schemas/SvhcListAge"
                        }
                      },
                      "required": [
                        "version",
                        "source",
                        "entries",
                        "disclaimer",
                        "age"
                      ]
                    },
                    "declaration": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "cas": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "ec": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "concentrationPercent": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "location": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "path": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "name",
                          "cas",
                          "ec",
                          "concentrationPercent",
                          "location",
                          "path"
                        ]
                      }
                    }
                  },
                  "required": [
                    "status",
                    "productType",
                    "thresholdPercent",
                    "declaredCount",
                    "hits",
                    "belowThreshold",
                    "unresolved",
                    "watched",
                    "obligations",
                    "scip",
                    "markets",
                    "warnings",
                    "missingInputs",
                    "declarationPaths",
                    "dppId",
                    "product",
                    "version",
                    "methodVersion",
                    "candidateList",
                    "declaration"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/substances/rollup": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Substances_rollup",
        "summary": "Get passport substances rollup",
        "description": "Screening plus the declared supply chain: propagation gaps and contradictions included.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productType",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "markets",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "product": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "sku": {
                          "type": "string"
                        },
                        "category": {
                          "type": "string"
                        },
                        "gtin": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "name",
                        "sku",
                        "category",
                        "gtin"
                      ]
                    },
                    "version": {
                      "type": "number"
                    },
                    "methodVersion": {
                      "type": "string"
                    },
                    "productType": {
                      "type": "string",
                      "enum": [
                        "unknown",
                        "article",
                        "mixture"
                      ]
                    },
                    "screening": {
                      "$ref": "#/components/schemas/Screening"
                    },
                    "supplyChain": {
                      "type": "object",
                      "properties": {
                        "nodes": {
                          "type": "number"
                        },
                        "tier1": {
                          "type": "number"
                        },
                        "declaredUpstream": {
                          "type": "number"
                        },
                        "maxDepth": {
                          "type": "number"
                        },
                        "nodesDeclaringSubstances": {
                          "type": "number"
                        },
                        "byTier": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "object",
                            "properties": {
                              "nodes": {
                                "type": "number"
                              },
                              "declaring": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "nodes",
                              "declaring"
                            ]
                          }
                        }
                      },
                      "required": [
                        "nodes",
                        "tier1",
                        "declaredUpstream",
                        "maxDepth",
                        "nodesDeclaringSubstances",
                        "byTier"
                      ]
                    },
                    "substances": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "limitPercent": {
                            "type": "number"
                          },
                          "aboveThreshold": {
                            "type": "boolean"
                          },
                          "name": {
                            "type": "string"
                          },
                          "cas": {
                            "type": "string"
                          },
                          "highestPercent": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "declaredBy": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "entity": {
                                  "type": "string"
                                },
                                "tier": {
                                  "type": "number"
                                },
                                "percent": {
                                  "type": [
                                    "number",
                                    "null"
                                  ]
                                },
                                "path": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "entity",
                                "tier",
                                "percent",
                                "path"
                              ]
                            }
                          },
                          "nodesDeclaring": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "limitPercent",
                          "aboveThreshold",
                          "name",
                          "cas",
                          "highestPercent",
                          "declaredBy",
                          "nodesDeclaring"
                        ]
                      }
                    },
                    "propagationGaps": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PropagationGap"
                      }
                    },
                    "overThreshold": {
                      "type": "number"
                    },
                    "nodesWithSvhc": {
                      "type": "number"
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "dppId",
                    "product",
                    "version",
                    "methodVersion",
                    "productType",
                    "screening",
                    "supplyChain",
                    "substances",
                    "propagationGaps",
                    "overThreshold",
                    "nodesWithSvhc",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/supply-chain": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_supplyChain",
        "summary": "Get passport supply chain",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "tiers": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": {}
                      }
                    }
                  },
                  "required": [
                    "dppId",
                    "tiers"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/supply-chain/rollup": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_supplyChainRollup",
        "summary": "Get passport supply chain rollup",
        "description": "Upward rollup: declared carbon per tier, materials coverage, conflicts and completeness.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "generatedAt": {
                      "type": "string"
                    },
                    "coverage": {
                      "type": "object",
                      "properties": {
                        "tier1Suppliers": {
                          "type": "number"
                        },
                        "tier1Responded": {
                          "type": "number"
                        },
                        "responseRate": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "declaredUpstreamNodes": {
                          "type": "number"
                        },
                        "maxDepth": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "tier1Suppliers",
                        "tier1Responded",
                        "responseRate",
                        "declaredUpstreamNodes",
                        "maxDepth"
                      ]
                    },
                    "carbon": {
                      "type": "object",
                      "properties": {
                        "tier1DeclaredKgCo2e": {
                          "type": "number"
                        },
                        "upstreamDeclaredKgCo2e": {
                          "type": "number"
                        },
                        "totalDeclaredKgCo2e": {
                          "type": "number"
                        },
                        "byTier": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "object",
                            "properties": {
                              "nodes": {
                                "type": "number"
                              },
                              "withDeclaredCarbon": {
                                "type": "number"
                              },
                              "carbonKgCo2e": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "nodes",
                              "withDeclaredCarbon",
                              "carbonKgCo2e"
                            ]
                          }
                        },
                        "note": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "tier1DeclaredKgCo2e",
                        "upstreamDeclaredKgCo2e",
                        "totalDeclaredKgCo2e",
                        "byTier",
                        "note"
                      ]
                    },
                    "materials": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "declaredBy": {
                            "type": "number"
                          },
                          "lowestTier": {
                            "type": "number"
                          },
                          "material": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "declaredBy",
                          "lowestTier",
                          "material"
                        ]
                      }
                    },
                    "conflicts": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Finding"
                      }
                    },
                    "warnings": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Finding"
                      }
                    },
                    "completeness": {
                      "type": "object",
                      "properties": {
                        "findings": {
                          "type": "number"
                        },
                        "hasDeclaredUpstream": {
                          "type": "boolean"
                        },
                        "status": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "findings",
                        "hasDeclaredUpstream",
                        "status"
                      ]
                    }
                  },
                  "required": [
                    "dppId",
                    "generatedAt",
                    "coverage",
                    "carbon",
                    "materials",
                    "conflicts",
                    "warnings",
                    "completeness"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/supply-chain/tree": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_supplyChainTreeView",
        "summary": "Get passport supply chain tree",
        "description": "Recursive multi-tier tree (tier-1 suppliers + declared upstream, depth-capped).\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "productId": {
                      "type": "string"
                    },
                    "generatedAt": {
                      "type": "string"
                    },
                    "maxDepth": {
                      "type": "number"
                    },
                    "counts": {
                      "type": "object",
                      "properties": {
                        "nodes": {
                          "type": "number"
                        },
                        "tier1": {
                          "type": "number"
                        },
                        "delegated": {
                          "type": "number"
                        },
                        "declaredUpstream": {
                          "type": "number"
                        },
                        "byTier": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "number"
                          }
                        }
                      },
                      "required": [
                        "nodes",
                        "tier1",
                        "delegated",
                        "declaredUpstream",
                        "byTier"
                      ]
                    },
                    "roots": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ChainNode"
                      }
                    },
                    "findings": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Finding"
                      }
                    }
                  },
                  "required": [
                    "dppId",
                    "productId",
                    "generatedAt",
                    "maxDepth",
                    "counts",
                    "roots",
                    "findings"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/suspend": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_suspend",
        "summary": "Add passport suspend",
        "description": "Keep the published page visible while temporarily revoking its authenticity credential.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "registry": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "enum": [
                            "not_required",
                            "not_configured",
                            "submitted",
                            "failed"
                          ]
                        },
                        "error": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "status"
                      ]
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "productId": {
                      "type": "string"
                    },
                    "schemaId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "lifecycleState": {
                      "type": "string"
                    },
                    "currentVersion": {
                      "type": "number"
                    },
                    "publishedVersion": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "publishedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "publishedMarkets": {
                      "anyOf": [
                        {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "publicRedactions": {},
                    "publicDisclosures": {},
                    "pendingPublicRedactions": {},
                    "pendingPublicDisclosures": {},
                    "derivedFromId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "derivation": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "derivationMeta": {},
                    "sourceLocale": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "carbonBaseline": {},
                    "correctionOpenedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "suspendedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "suspensionReason": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "suspendedFromLifecycleState": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "registry",
                    "id",
                    "organizationId",
                    "productId",
                    "schemaId",
                    "status",
                    "lifecycleState",
                    "currentVersion",
                    "publishedVersion",
                    "publishedAt",
                    "publishedMarkets",
                    "publicRedactions",
                    "publicDisclosures",
                    "pendingPublicRedactions",
                    "pendingPublicDisclosures",
                    "derivedFromId",
                    "derivation",
                    "derivationMeta",
                    "sourceLocale",
                    "carbonBaseline",
                    "correctionOpenedAt",
                    "suspendedAt",
                    "suspensionReason",
                    "suspendedFromLifecycleState",
                    "createdAt",
                    "updatedAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/taxonomy": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Construction_taxonomy",
        "summary": "Get passport taxonomy",
        "description": "EU Taxonomy screening: the technical criterion plus the DNSH assessments, counted over assessed criteria.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "reference": {
                      "type": "object",
                      "properties": {
                        "version": {
                          "type": "string"
                        },
                        "activity": {
                          "type": "string"
                        },
                        "gwpPerSquareMetreThresholdKgCo2e": {
                          "type": "number"
                        },
                        "note": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "version",
                        "activity",
                        "gwpPerSquareMetreThresholdKgCo2e",
                        "note"
                      ]
                    },
                    "substantialContribution": {
                      "type": "object",
                      "properties": {
                        "eligible": {
                          "type": "boolean"
                        },
                        "criterion": {
                          "type": "string"
                        },
                        "value": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "threshold": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "perSquareMetre": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "floorAreaM2": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "note": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "eligible",
                        "criterion",
                        "value",
                        "threshold",
                        "perSquareMetre",
                        "floorAreaM2",
                        "note"
                      ]
                    },
                    "dnsh": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "expects": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "aligned",
                              "not-aligned",
                              "not-assessed"
                            ]
                          },
                          "evidence": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "key",
                          "label",
                          "expects",
                          "status",
                          "evidence"
                        ]
                      }
                    },
                    "minimumSafeguards": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "enum": [
                            "aligned",
                            "not-aligned",
                            "not-assessed"
                          ]
                        },
                        "note": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "status",
                        "note"
                      ]
                    },
                    "counts": {
                      "type": "object",
                      "properties": {
                        "assessed": {
                          "type": "number"
                        },
                        "aligned": {
                          "type": "number"
                        },
                        "notAligned": {
                          "type": "number"
                        },
                        "notAssessed": {
                          "type": "number"
                        },
                        "total": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "assessed",
                        "aligned",
                        "notAligned",
                        "notAssessed",
                        "total"
                      ]
                    },
                    "verdict": {
                      "type": "string",
                      "enum": [
                        "aligned",
                        "not-aligned",
                        "not-assessed",
                        "partially-assessed"
                      ]
                    },
                    "caveat": {
                      "type": "string"
                    },
                    "dppId": {
                      "type": "string"
                    },
                    "product": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "sku": {
                          "type": "string"
                        },
                        "gtin": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "category": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "name",
                        "sku",
                        "gtin",
                        "category"
                      ]
                    },
                    "version": {
                      "type": "number"
                    },
                    "productStageGwp": {
                      "type": [
                        "number",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "reference",
                    "substantialContribution",
                    "dnsh",
                    "minimumSafeguards",
                    "counts",
                    "verdict",
                    "caveat",
                    "dppId",
                    "product",
                    "version",
                    "productStageGwp"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/transfer": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_transfer",
        "summary": "Transfer a passport",
        "description": "Transfer custody to the next owner and record the matching EPCIS transfer event.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransferInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "previous": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/DppOwnership3"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "current": {
                      "$ref": "#/components/schemas/DppOwnership2"
                    }
                  },
                  "required": [
                    "dppId",
                    "previous",
                    "current"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/translate": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "MachineTranslation_translate",
        "summary": "Add passport translate",
        "description": "Draft one or more languages for a passport. `dryRun` plans the run (languages, segments, rejected locales) without calling the provider or writing anything; `overwrite` refreshes an existing draft — a reviewed or approved translation is never replaced unless it is passed explicitly.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TranslateInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "dppId": {
                          "type": "string"
                        },
                        "reference": {
                          "type": "string"
                        },
                        "dryRun": {
                          "type": "boolean"
                        },
                        "dppVersion": {
                          "type": "number"
                        },
                        "sourceHash": {
                          "type": "string"
                        },
                        "sourceLocale": {
                          "type": "string"
                        },
                        "methodVersion": {
                          "type": "string"
                        },
                        "glossaryVersion": {
                          "type": "string"
                        },
                        "provider": {
                          "type": "object",
                          "properties": {
                            "configured": {
                              "type": "boolean"
                            },
                            "provider": {
                              "type": "string"
                            },
                            "model": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "configured",
                            "provider",
                            "model"
                          ]
                        },
                        "segments": {
                          "type": "number"
                        },
                        "languages": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/LanguageReport"
                          }
                        },
                        "planned": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "drafted": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "termsLost": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "suspect": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "rejected": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string"
                              },
                              "reason": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "locale",
                              "reason"
                            ]
                          }
                        },
                        "degraded": {
                          "type": "boolean"
                        },
                        "providerError": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "reviewChecklist": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "item": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "id",
                              "item"
                            ]
                          }
                        },
                        "caveat": {
                          "type": "string"
                        },
                        "note": {
                          "type": "string"
                        },
                        "run": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "reference": {
                                  "type": "string"
                                },
                                "createdAt": {
                                  "type": "string",
                                  "format": "date-time"
                                },
                                "status": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "reference",
                                "createdAt",
                                "status"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "dppId",
                        "reference",
                        "dryRun",
                        "dppVersion",
                        "sourceHash",
                        "sourceLocale",
                        "methodVersion",
                        "glossaryVersion",
                        "provider",
                        "segments",
                        "languages",
                        "planned",
                        "drafted",
                        "termsLost",
                        "suspect",
                        "rejected",
                        "degraded",
                        "providerError",
                        "reviewChecklist",
                        "caveat",
                        "note",
                        "run"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "dppId": {
                          "type": "string"
                        },
                        "reference": {
                          "type": "string"
                        },
                        "queued": {
                          "type": "boolean"
                        },
                        "dryRun": {
                          "type": "boolean"
                        },
                        "planned": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "rejected": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string"
                              },
                              "reason": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "locale",
                              "reason"
                            ]
                          }
                        },
                        "segments": {
                          "type": "number"
                        },
                        "note": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "dppId",
                        "reference",
                        "queued",
                        "dryRun",
                        "planned",
                        "rejected",
                        "segments",
                        "note"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/translations": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Localization_list",
        "summary": "Get passport translations",
        "description": "Every stored locale for a passport, with coverage, outdated fields and what is live.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "markets",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "version": {},
                    "publishedVersion": {},
                    "status": {},
                    "sourceLocale": {
                      "type": "string"
                    },
                    "product": {
                      "type": "object",
                      "properties": {
                        "name": {},
                        "description": {}
                      },
                      "required": [
                        "name",
                        "description"
                      ]
                    },
                    "localizable": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "localizableCount": {
                      "type": "number"
                    },
                    "values": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    },
                    "sourceHash": {
                      "type": "string"
                    },
                    "locales": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string"
                          },
                          "localeName": {
                            "type": "string"
                          },
                          "nativeName": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "translated": {
                            "type": "number"
                          },
                          "total": {
                            "type": "number"
                          },
                          "percent": {
                            "type": "number"
                          },
                          "missing": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "fields": {
                            "type": "object",
                            "additionalProperties": {}
                          },
                          "machineAssisted": {
                            "type": "boolean"
                          },
                          "source": {
                            "type": "string"
                          },
                          "provider": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "model": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "glossaryVersion": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "qualityVerdict": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "quality": {
                            "type": [
                              "object",
                              "null"
                            ]
                          },
                          "generatedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "format": "date-time"
                          },
                          "outdated": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "path": {
                                  "type": "string"
                                },
                                "translatedFrom": {
                                  "type": "string"
                                },
                                "current": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "path",
                                "translatedFrom",
                                "current"
                              ]
                            }
                          },
                          "stale": {
                            "type": "boolean"
                          },
                          "translatedBy": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "reviewedBy": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "reviewedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "format": "date-time"
                          },
                          "updatedAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "needsOtherApprover": {
                            "type": "boolean"
                          },
                          "live": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "version": {
                                    "type": "number"
                                  },
                                  "releasedAt": {
                                    "type": "string",
                                    "format": "date-time"
                                  },
                                  "fields": {
                                    "type": "number"
                                  },
                                  "heldBack": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "servedOnWorkingCopy": {
                                    "type": "number"
                                  },
                                  "differsFromWorkingCopy": {
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "version",
                                  "releasedAt",
                                  "fields",
                                  "heldBack",
                                  "servedOnWorkingCopy",
                                  "differsFromWorkingCopy"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "locale",
                          "localeName",
                          "nativeName",
                          "status",
                          "translated",
                          "total",
                          "percent",
                          "missing",
                          "fields",
                          "machineAssisted",
                          "source",
                          "provider",
                          "model",
                          "glossaryVersion",
                          "qualityVerdict",
                          "quality",
                          "generatedAt",
                          "outdated",
                          "stale",
                          "translatedBy",
                          "reviewedBy",
                          "reviewedAt",
                          "updatedAt",
                          "needsOtherApprover",
                          "live"
                        ]
                      }
                    },
                    "publishedLocales": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "approvers": {
                      "type": "number"
                    },
                    "coverage": {
                      "type": "object",
                      "properties": {
                        "locales": {
                          "type": "number"
                        },
                        "reviewed": {
                          "type": "number"
                        },
                        "percent": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "locales",
                        "reviewed",
                        "percent"
                      ]
                    },
                    "markets": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "market": {
                            "type": "string"
                          },
                          "expected": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "covered": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "missing": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "market",
                          "expected",
                          "covered",
                          "missing"
                        ]
                      }
                    },
                    "requirementsAdvisory": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "dppId",
                    "version",
                    "publishedVersion",
                    "status",
                    "sourceLocale",
                    "product",
                    "localizable",
                    "localizableCount",
                    "values",
                    "sourceHash",
                    "locales",
                    "publishedLocales",
                    "approvers",
                    "coverage",
                    "markets",
                    "requirementsAdvisory"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/translations/{locale}": {
      "put": {
        "tags": [
          "Passports"
        ],
        "operationId": "Localization_upsert",
        "summary": "Update passport translations",
        "description": "Write the working copy of one language (patch semantics; `replace` overwrites; `confirm` lists outdated fields whose translation still fits the new source). Status `draft` or `reviewed` — editing an approved translation returns it to draft while the released text stays live.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpsertInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string"
                    },
                    "localeName": {
                      "type": "string"
                    },
                    "nativeName": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "translated": {
                      "type": "number"
                    },
                    "total": {
                      "type": "number"
                    },
                    "percent": {
                      "type": "number"
                    },
                    "missing": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "fields": {
                      "type": "object",
                      "additionalProperties": {}
                    },
                    "machineAssisted": {
                      "type": "boolean"
                    },
                    "source": {
                      "type": "string"
                    },
                    "provider": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "model": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "glossaryVersion": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "qualityVerdict": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "quality": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "generatedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "outdated": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "path": {
                            "type": "string"
                          },
                          "translatedFrom": {
                            "type": "string"
                          },
                          "current": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "path",
                          "translatedFrom",
                          "current"
                        ]
                      }
                    },
                    "stale": {
                      "type": "boolean"
                    },
                    "translatedBy": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "reviewedBy": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "reviewedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "needsOtherApprover": {
                      "type": "boolean"
                    },
                    "live": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "version": {
                              "type": "number"
                            },
                            "releasedAt": {
                              "type": "string",
                              "format": "date-time"
                            },
                            "fields": {
                              "type": "number"
                            },
                            "heldBack": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "servedOnWorkingCopy": {
                              "type": "number"
                            },
                            "differsFromWorkingCopy": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "version",
                            "releasedAt",
                            "fields",
                            "heldBack",
                            "servedOnWorkingCopy",
                            "differsFromWorkingCopy"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "dppId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "locale",
                    "localeName",
                    "nativeName",
                    "status",
                    "translated",
                    "total",
                    "percent",
                    "missing",
                    "fields",
                    "machineAssisted",
                    "source",
                    "provider",
                    "model",
                    "glossaryVersion",
                    "qualityVerdict",
                    "quality",
                    "generatedAt",
                    "outdated",
                    "stale",
                    "translatedBy",
                    "reviewedBy",
                    "reviewedAt",
                    "updatedAt",
                    "needsOtherApprover",
                    "live",
                    "dppId"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      },
      "delete": {
        "tags": [
          "Passports"
        ],
        "operationId": "Localization_remove",
        "summary": "Delete passport translations",
        "description": "Delete a language: the working copy and, if live, its public release.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "locale": {
                      "type": "string"
                    },
                    "deleted": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "dppId",
                    "locale",
                    "deleted"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/translations/{locale}/approve": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Localization_approve",
        "summary": "Approve translations of a passport",
        "description": "Approve the working copy and release it on the public passport.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "acknowledgeSuspect": {
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "released": {
                      "type": "boolean"
                    },
                    "note": {
                      "type": "string"
                    },
                    "locale": {
                      "type": "string"
                    },
                    "localeName": {
                      "type": "string"
                    },
                    "nativeName": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "translated": {
                      "type": "number"
                    },
                    "total": {
                      "type": "number"
                    },
                    "percent": {
                      "type": "number"
                    },
                    "missing": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "fields": {
                      "type": "object",
                      "additionalProperties": {}
                    },
                    "machineAssisted": {
                      "type": "boolean"
                    },
                    "source": {
                      "type": "string"
                    },
                    "provider": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "model": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "glossaryVersion": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "qualityVerdict": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "quality": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "generatedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "outdated": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "path": {
                            "type": "string"
                          },
                          "translatedFrom": {
                            "type": "string"
                          },
                          "current": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "path",
                          "translatedFrom",
                          "current"
                        ]
                      }
                    },
                    "stale": {
                      "type": "boolean"
                    },
                    "translatedBy": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "reviewedBy": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "reviewedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "needsOtherApprover": {
                      "type": "boolean"
                    },
                    "live": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "version": {
                              "type": "number"
                            },
                            "releasedAt": {
                              "type": "string",
                              "format": "date-time"
                            },
                            "fields": {
                              "type": "number"
                            },
                            "heldBack": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "servedOnWorkingCopy": {
                              "type": "number"
                            },
                            "differsFromWorkingCopy": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "version",
                            "releasedAt",
                            "fields",
                            "heldBack",
                            "servedOnWorkingCopy",
                            "differsFromWorkingCopy"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "dppId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "released",
                    "note",
                    "locale",
                    "localeName",
                    "nativeName",
                    "status",
                    "translated",
                    "total",
                    "percent",
                    "missing",
                    "fields",
                    "machineAssisted",
                    "source",
                    "provider",
                    "model",
                    "glossaryVersion",
                    "qualityVerdict",
                    "quality",
                    "generatedAt",
                    "outdated",
                    "stale",
                    "translatedBy",
                    "reviewedBy",
                    "reviewedAt",
                    "updatedAt",
                    "needsOtherApprover",
                    "live",
                    "dppId"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/translations/{locale}/export": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Localization_exportPassport",
        "summary": "Export translations of a passport",
        "description": "Translator file for one passport and language.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "missingOnly",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "filename": {
                      "type": "string"
                    },
                    "contentType": {
                      "type": "string"
                    },
                    "passports": {
                      "type": "number"
                    },
                    "units": {
                      "type": "number"
                    },
                    "content": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "filename",
                    "contentType",
                    "passports",
                    "units",
                    "content"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/translations/{locale}/import": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Localization_importPassport",
        "summary": "Import translations of a passport",
        "description": "Import a translator file for one passport and language, as drafts.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "format": {
                    "type": "string"
                  },
                  "content": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string"
                  }
                },
                "required": [
                  "content"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "passports": {
                      "type": "number"
                    },
                    "applied": {
                      "type": "number"
                    },
                    "skipped": {
                      "type": "number"
                    },
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "dppId": {
                            "type": "string"
                          },
                          "applied": {
                            "type": "number"
                          },
                          "unchanged": {
                            "type": "number"
                          },
                          "skipped": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "path": {
                                  "type": "string"
                                },
                                "reason": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "path",
                                "reason"
                              ]
                            }
                          },
                          "error": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "dppId",
                          "applied",
                          "unchanged",
                          "skipped"
                        ]
                      }
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "locale",
                    "status",
                    "passports",
                    "applied",
                    "skipped",
                    "results",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/translations/{locale}/preview": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_translationPreview",
        "summary": "Preview translations of a passport",
        "description": "What the public passport would show in one language after the next publication: the working copy through the real public projection (redactions and defaults applied), with approved translations — or this language's unapproved draft with `drafts=1`.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "drafts",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "regulatory": {
                      "type": "object",
                      "properties": {
                        "basis": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/PackRef"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "obligations": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/PublicObligation"
                          }
                        }
                      },
                      "required": [
                        "basis",
                        "obligations"
                      ]
                    },
                    "disclosedPaths": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "redactedPaths": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "defaultRedactedPaths": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "translatedPaths": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "translationReleasedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "product": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "description": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "variant": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "string"
                          }
                        },
                        "id": {
                          "type": "string"
                        },
                        "sku": {
                          "type": "string"
                        },
                        "gtin": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "category": {
                          "type": "string"
                        },
                        "brand": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "manufacturerName": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "manufacturerCountry": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "metadata": {
                          "type": "object",
                          "additionalProperties": {}
                        }
                      },
                      "required": [
                        "name",
                        "description",
                        "id",
                        "sku",
                        "gtin",
                        "category",
                        "brand",
                        "manufacturerName",
                        "manufacturerCountry",
                        "metadata"
                      ]
                    },
                    "data": {},
                    "version": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "owner": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "slug": {
                              "type": "string"
                            },
                            "branding": {
                              "type": [
                                "object",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "name",
                            "slug",
                            "branding"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "issuerIdentity": {
                      "type": "object",
                      "properties": {
                        "did": {
                          "type": "string"
                        },
                        "verified": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "scheme": {
                                "type": "string"
                              },
                              "value": {
                                "type": "string"
                              },
                              "registryName": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "registry": {
                                "type": "string"
                              },
                              "verifiedAt": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "format": "date-time"
                              }
                            },
                            "required": [
                              "scheme",
                              "value",
                              "registryName",
                              "registry",
                              "verifiedAt"
                            ]
                          }
                        }
                      },
                      "required": [
                        "did",
                        "verified"
                      ]
                    },
                    "productModel": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            },
                            "axes": {}
                          },
                          "required": [
                            "code",
                            "name",
                            "axes"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "locale": {
                      "type": "string"
                    },
                    "interfaceLocale": {
                      "type": "string"
                    },
                    "sourceLocale": {
                      "type": "string"
                    },
                    "languages": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/LocaleInfo"
                      }
                    },
                    "availableLocales": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "translationStatus": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "suspension": {
                      "type": "object",
                      "properties": {
                        "suspended": {
                          "type": "boolean"
                        },
                        "suspendedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "reason": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "notice": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "suspended",
                        "suspendedAt",
                        "reason",
                        "notice"
                      ]
                    },
                    "retirement": {
                      "type": "object",
                      "properties": {
                        "retired": {
                          "type": "boolean"
                        },
                        "notice": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "retired",
                        "notice"
                      ]
                    },
                    "withdrawal": {
                      "type": "object",
                      "properties": {
                        "recalled": {
                          "type": "boolean"
                        },
                        "recalledAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "notice": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "recalled",
                        "recalledAt",
                        "notice"
                      ]
                    },
                    "id": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "lifecycleState": {
                      "type": "string"
                    },
                    "publishedMarkets": {
                      "anyOf": [
                        {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "publishedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "availability": {
                      "type": "object",
                      "properties": {
                        "until": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "floorDays": {
                          "type": "number"
                        },
                        "basis": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "until",
                        "floorDays",
                        "basis"
                      ]
                    }
                  },
                  "required": [
                    "regulatory",
                    "translatedPaths",
                    "product",
                    "data",
                    "version",
                    "owner",
                    "issuerIdentity",
                    "productModel",
                    "locale",
                    "interfaceLocale",
                    "sourceLocale",
                    "languages",
                    "availableLocales",
                    "translationStatus",
                    "id",
                    "status",
                    "lifecycleState",
                    "publishedMarkets",
                    "publishedAt",
                    "availability"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/translations/{locale}/suggestions": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Localization_suggestions",
        "summary": "Get passport translations suggestions",
        "description": "Exact-match translation memory from other passports' approved translations.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "locale": {
                      "type": "string"
                    },
                    "suggestions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "path": {
                            "type": "string"
                          },
                          "source": {
                            "type": "string"
                          },
                          "suggestion": {
                            "type": "string"
                          },
                          "fromDppId": {
                            "type": "string"
                          },
                          "approvedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "path",
                          "source",
                          "suggestion",
                          "fromDppId",
                          "approvedAt"
                        ]
                      }
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "dppId",
                    "locale",
                    "suggestions",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/translations/{locale}/withdraw": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Localization_withdraw",
        "summary": "Add passport translations withdraw",
        "description": "Take a language off the public passport; the working copy is kept for review.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "locale": {
                      "type": "string"
                    },
                    "withdrawn": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "dppId",
                    "locale",
                    "withdrawn"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/used-in": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Components_usedIn",
        "summary": "Get passport used in",
        "description": "Passports that list this passport as a component.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {}
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/{id}/validate": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Compliance_validate",
        "summary": "Validate a passport",
        "description": "Validate against one or more markets: POST /dpp/:id/validate?markets=EU,UK\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "markets",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "runId": {
                      "type": "string"
                    },
                    "rulesPassed": {
                      "type": "boolean"
                    },
                    "blockingIssues": {
                      "type": "number"
                    },
                    "legallyAssessed": {
                      "type": "boolean"
                    },
                    "assessmentStatus": {
                      "type": "string",
                      "enum": [
                        "readiness_only",
                        "legally_assessed"
                      ]
                    },
                    "compliant": {
                      "type": "boolean"
                    },
                    "readinessScore": {
                      "type": "number"
                    },
                    "readinessGrade": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "score": {
                      "type": "number"
                    },
                    "averageScore": {
                      "type": "number"
                    },
                    "grade": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "coverage": {
                      "$ref": "#/components/schemas/PackCoverage"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "ruleId": {
                            "type": "string"
                          },
                          "severity": {
                            "type": "string",
                            "enum": [
                              "error",
                              "info",
                              "warning"
                            ]
                          },
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          },
                          "source": {
                            "type": "string"
                          },
                          "market": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "ruleId",
                          "severity",
                          "message"
                        ]
                      }
                    },
                    "rulesEvaluated": {
                      "type": "number"
                    },
                    "markets": {
                      "type": "object",
                      "additionalProperties": {
                        "$ref": "#/components/schemas/MarketVerdict"
                      }
                    },
                    "requestedMarkets": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "extensionIssues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ExtensionIssue"
                      }
                    },
                    "derivedFacts": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/DerivedFact"
                      }
                    },
                    "pack": {
                      "type": "object",
                      "additionalProperties": {}
                    },
                    "packCode": {
                      "type": "string"
                    },
                    "packVersion": {
                      "type": "string"
                    },
                    "packStatus": {
                      "type": "string"
                    },
                    "organizationRules": {
                      "type": "number"
                    },
                    "nextAction": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "runId",
                    "rulesPassed",
                    "blockingIssues",
                    "legallyAssessed",
                    "assessmentStatus",
                    "compliant",
                    "readinessScore",
                    "readinessGrade",
                    "score",
                    "averageScore",
                    "grade",
                    "coverage",
                    "issues",
                    "rulesEvaluated",
                    "markets",
                    "requestedMarkets",
                    "extensionIssues",
                    "derivedFacts",
                    "packCode",
                    "packVersion",
                    "packStatus",
                    "organizationRules",
                    "nextAction"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/{id}/versions": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_versions",
        "summary": "Get passport versions",
        "description": "API key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DppVersion"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/dpp/bulk": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_bulk",
        "summary": "Create passport bulk",
        "description": "API key scope `dpp:write` (or `dpp:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {}
                  }
                },
                "required": [
                  "items"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "jobId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "status"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/bulk-action": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_bulkAction",
        "summary": "Create passport bulk action",
        "description": "Portfolio operation across many passports (plan batch cap applies). Restricted to the roles that may publish: without a role requirement an editor could publish through this route although the single-item `publish` route refuses them.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin role.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "publish",
                      "archive",
                      "recall",
                      "reinstate"
                    ]
                  },
                  "ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "markets": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "reason": {
                    "type": "string"
                  }
                },
                "required": [
                  "action",
                  "ids"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "action": {
                      "type": "string",
                      "enum": [
                        "publish",
                        "archive",
                        "recall",
                        "reinstate"
                      ]
                    },
                    "requested": {
                      "type": "number"
                    },
                    "succeededCount": {
                      "type": "number"
                    },
                    "failedCount": {
                      "type": "number"
                    },
                    "succeeded": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "registry": {
                            "type": "object",
                            "properties": {
                              "status": {
                                "type": "string",
                                "enum": [
                                  "not_required",
                                  "not_configured",
                                  "submitted",
                                  "failed"
                                ]
                              },
                              "error": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "status"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ]
                      }
                    },
                    "failed": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "error": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "error"
                        ]
                      }
                    }
                  },
                  "required": [
                    "action",
                    "requested",
                    "succeededCount",
                    "failedCount",
                    "succeeded",
                    "failed"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/import": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_importCsv",
        "summary": "Import passports",
        "description": "CSV import (master spec §5 Module 1): header-driven import of products and their first passport version. Product columns are followed by optional, flat passport columns; `data_json` is retained only as an advanced extension mechanism.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "csv": {
                    "type": "string"
                  }
                },
                "required": [
                  "csv"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "createdCount": {
                      "type": "number"
                    },
                    "skippedCount": {
                      "type": "number"
                    },
                    "created": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "sku": {
                            "type": "string"
                          },
                          "dppId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "sku",
                          "dppId"
                        ]
                      }
                    },
                    "skipped": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "row": {
                            "type": "number"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "row",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "createdCount",
                    "skippedCount",
                    "created",
                    "skipped",
                    "errors"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/labels": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_labels",
        "summary": "Create passport labels",
        "description": "Print-ready labels (GTIN, serial, Digital Link, QR and/or DataMatrix) for passports and their items.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "includeChildren": {
                    "type": "boolean"
                  },
                  "limit": {
                    "type": "number"
                  },
                  "symbol": {
                    "type": "string",
                    "enum": [
                      "qr",
                      "datamatrix",
                      "both"
                    ]
                  }
                },
                "required": [
                  "ids"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "number"
                    },
                    "truncated": {
                      "type": "boolean"
                    },
                    "available": {
                      "type": "number"
                    },
                    "symbol": {
                      "type": "string",
                      "enum": [
                        "qr",
                        "datamatrix",
                        "both"
                      ]
                    },
                    "unpublished": {
                      "type": "number"
                    },
                    "labels": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Label2"
                      }
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "count",
                    "truncated",
                    "available",
                    "symbol",
                    "unpublished",
                    "labels",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/merge": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_merge",
        "summary": "Merge passports",
        "description": "Consolidated record built from several passports of the same product.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Draft creation follows tenant write permissions; publish=true needs the owner / admin role and publication step-up.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MergeInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "registry": {
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "string",
                              "enum": [
                                "not_required",
                                "not_configured",
                                "submitted",
                                "failed"
                              ]
                            },
                            "error": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "status"
                          ]
                        },
                        "publishError": {
                          "type": "string"
                        },
                        "product": {
                          "$ref": "#/components/schemas/Product"
                        },
                        "version": {
                          "$ref": "#/components/schemas/DppVersion"
                        },
                        "id": {
                          "type": "string"
                        },
                        "organizationId": {
                          "type": "string"
                        },
                        "productId": {
                          "type": "string"
                        },
                        "schemaId": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        },
                        "lifecycleState": {
                          "type": "string"
                        },
                        "currentVersion": {
                          "type": "number"
                        },
                        "publishedVersion": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "publishedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "publishedMarkets": {
                          "anyOf": [
                            {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "publicRedactions": {},
                        "publicDisclosures": {},
                        "pendingPublicRedactions": {},
                        "pendingPublicDisclosures": {},
                        "derivedFromId": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "derivation": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "derivationMeta": {},
                        "sourceLocale": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "carbonBaseline": {},
                        "correctionOpenedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "suspendedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "suspensionReason": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "suspendedFromLifecycleState": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time"
                        }
                      },
                      "required": [
                        "product",
                        "version",
                        "id",
                        "organizationId",
                        "productId",
                        "schemaId",
                        "status",
                        "lifecycleState",
                        "currentVersion",
                        "publishedVersion",
                        "publishedAt",
                        "publishedMarkets",
                        "publicRedactions",
                        "publicDisclosures",
                        "pendingPublicRedactions",
                        "pendingPublicDisclosures",
                        "derivedFromId",
                        "derivation",
                        "derivationMeta",
                        "sourceLocale",
                        "carbonBaseline",
                        "correctionOpenedAt",
                        "suspendedAt",
                        "suspensionReason",
                        "suspendedFromLifecycleState",
                        "createdAt",
                        "updatedAt"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "credential": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "jti": {
                                  "type": "string"
                                },
                                "expiresAt": {
                                  "type": "string",
                                  "format": "date-time"
                                }
                              },
                              "required": [
                                "jti",
                                "expiresAt"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "registry": {
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "string",
                              "enum": [
                                "not_required",
                                "not_configured",
                                "submitted",
                                "failed"
                              ]
                            },
                            "error": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "status"
                          ]
                        },
                        "publishError": {
                          "type": "string"
                        },
                        "product": {
                          "$ref": "#/components/schemas/Product"
                        },
                        "version": {
                          "$ref": "#/components/schemas/DppVersion"
                        },
                        "id": {
                          "type": "string"
                        },
                        "organizationId": {
                          "type": "string"
                        },
                        "productId": {
                          "type": "string"
                        },
                        "schemaId": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        },
                        "lifecycleState": {
                          "type": "string"
                        },
                        "currentVersion": {
                          "type": "number"
                        },
                        "publishedVersion": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "publishedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "publishedMarkets": {
                          "anyOf": [
                            {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "publicRedactions": {},
                        "publicDisclosures": {},
                        "pendingPublicRedactions": {},
                        "pendingPublicDisclosures": {},
                        "derivedFromId": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "derivation": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "derivationMeta": {},
                        "sourceLocale": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "carbonBaseline": {},
                        "correctionOpenedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "suspendedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "suspensionReason": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "suspendedFromLifecycleState": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time"
                        }
                      },
                      "required": [
                        "credential",
                        "product",
                        "version",
                        "id",
                        "organizationId",
                        "productId",
                        "schemaId",
                        "status",
                        "lifecycleState",
                        "currentVersion",
                        "publishedVersion",
                        "publishedAt",
                        "publishedMarkets",
                        "publicRedactions",
                        "publicDisclosures",
                        "pendingPublicRedactions",
                        "pendingPublicDisclosures",
                        "derivedFromId",
                        "derivation",
                        "derivationMeta",
                        "sourceLocale",
                        "carbonBaseline",
                        "correctionOpenedAt",
                        "suspendedAt",
                        "suspensionReason",
                        "suspendedFromLifecycleState",
                        "createdAt",
                        "updatedAt"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/registry/registration-data": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_registrationData",
        "summary": "Create passport registry registration data",
        "description": "The EU DPP Registry registrations for up to 100 published passports, checked against the Registry's published rules (https UPI of at most 2,000 characters, product group and granularity, unique UPIs in one file), to enter in the Registry's online form or its JSON/XML upload template.\n\nAPI key scope `dpp:write` (or `dpp:*`, `*`). Console users need the owner / admin / member role.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "dppIds": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "guide": {
                      "type": "string"
                    },
                    "maxEntries": {
                      "type": "number"
                    },
                    "productGroup": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "entries": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "version": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "dppId": {
                            "type": "string"
                          },
                          "upi": {
                            "type": "string"
                          },
                          "granularity": {
                            "type": "string",
                            "enum": [
                              "batch",
                              "model",
                              "item"
                            ]
                          },
                          "productGroup": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "modelIdentifier": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "batchIdentifier": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "issues": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "version",
                          "dppId",
                          "upi",
                          "granularity",
                          "productGroup",
                          "modelIdentifier",
                          "batchIdentifier",
                          "issues"
                        ]
                      }
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "ready": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "guide",
                    "maxEntries",
                    "productGroup",
                    "entries",
                    "issues",
                    "ready"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:write"
      }
    },
    "/dpp/search": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "Dpp_search",
        "summary": "Search passports",
        "description": "Paginated, filtered passport list for the console.\n\nAPI key scope `dpp:read` (or `dpp:*`, `*`).",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "currentVersion": {
                            "type": "number"
                          },
                          "schemaId": {
                            "type": "string"
                          },
                          "productId": {
                            "type": "string"
                          },
                          "productName": {
                            "type": "string"
                          },
                          "category": {
                            "type": "string"
                          },
                          "updatedAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "id",
                          "status",
                          "currentVersion",
                          "schemaId",
                          "productId",
                          "productName",
                          "category",
                          "updatedAt"
                        ]
                      }
                    },
                    "total": {
                      "type": "number"
                    },
                    "totalAll": {
                      "type": "number"
                    },
                    "page": {
                      "type": "number"
                    },
                    "pageSize": {
                      "type": "number"
                    },
                    "statuses": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "categories": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "items",
                    "total",
                    "totalAll",
                    "page",
                    "pageSize",
                    "statuses",
                    "categories"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "dpp:read"
      }
    },
    "/epcis/events": {
      "get": {
        "tags": [
          "EPCIS traceability"
        ],
        "operationId": "Epcis_query",
        "summary": "List EPCIS event events",
        "description": "API key scope `epcis:read` (or `epcis:*`, `*`).",
        "parameters": [
          {
            "name": "bizStep",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "gtin",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "@context": {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "object",
                            "additionalProperties": {
                              "type": "string"
                            }
                          }
                        ]
                      }
                    },
                    "type": {
                      "type": "string"
                    },
                    "schemaVersion": {
                      "type": "string"
                    },
                    "creationDate": {
                      "type": "string"
                    },
                    "count": {
                      "type": "number"
                    },
                    "filters": {
                      "type": "object",
                      "properties": {
                        "limit": {
                          "type": "number"
                        },
                        "offset": {
                          "type": "number"
                        },
                        "bizStep": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        },
                        "gtin": {
                          "type": "string"
                        },
                        "from": {
                          "type": "string"
                        },
                        "to": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "limit",
                        "offset"
                      ]
                    },
                    "epcisBody": {
                      "type": "object",
                      "properties": {
                        "eventList": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/EpcisEmittedEvent"
                          }
                        }
                      },
                      "required": [
                        "eventList"
                      ]
                    }
                  },
                  "required": [
                    "@context",
                    "type",
                    "schemaVersion",
                    "creationDate",
                    "count",
                    "filters",
                    "epcisBody"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "epcis:read"
      }
    },
    "/epcis/subscriptions": {
      "get": {
        "tags": [
          "EPCIS traceability"
        ],
        "operationId": "EpcisSubscriptions_list",
        "summary": "List EPCIS event subscriptions",
        "description": "API key scope `epcis:read` (or `epcis:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EpcisSubscription"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "epcis:read"
      },
      "post": {
        "tags": [
          "EPCIS traceability"
        ],
        "operationId": "EpcisSubscriptions_create",
        "summary": "Create EPCIS event subscriptions",
        "description": "API key scope `epcis:write` (or `epcis:*`, `*`). Console users need the owner / admin role.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "query": {
                      "type": "string"
                    },
                    "signingSecret": {
                      "type": "string"
                    },
                    "active": {
                      "type": "boolean"
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "createdBy": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "webhookId": {
                      "type": "string"
                    },
                    "destinationUrl": {
                      "type": "string"
                    },
                    "filters": {},
                    "notifiedCount": {
                      "type": "number"
                    },
                    "backfilledCount": {
                      "type": "number"
                    },
                    "lastNotifiedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "query",
                    "signingSecret",
                    "active",
                    "id",
                    "organizationId",
                    "name",
                    "createdAt",
                    "createdBy",
                    "updatedAt",
                    "webhookId",
                    "destinationUrl",
                    "filters",
                    "notifiedCount",
                    "backfilledCount",
                    "lastNotifiedAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "epcis:write"
      }
    },
    "/epcis/subscriptions/{id}": {
      "get": {
        "tags": [
          "EPCIS traceability"
        ],
        "operationId": "EpcisSubscriptions_get",
        "summary": "Get EPCIS event subscriptions",
        "description": "API key scope `epcis:read` (or `epcis:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "query": {
                      "type": "string"
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "webhookId": {
                      "type": "string"
                    },
                    "destinationUrl": {
                      "type": "string"
                    },
                    "filters": {},
                    "active": {
                      "type": "boolean"
                    },
                    "createdBy": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "notifiedCount": {
                      "type": "number"
                    },
                    "backfilledCount": {
                      "type": "number"
                    },
                    "lastNotifiedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "query",
                    "id",
                    "organizationId",
                    "name",
                    "webhookId",
                    "destinationUrl",
                    "filters",
                    "active",
                    "createdBy",
                    "notifiedCount",
                    "backfilledCount",
                    "lastNotifiedAt",
                    "createdAt",
                    "updatedAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "epcis:read"
      },
      "patch": {
        "tags": [
          "EPCIS traceability"
        ],
        "operationId": "EpcisSubscriptions_update",
        "summary": "Update EPCIS event subscriptions",
        "description": "API key scope `epcis:write` (or `epcis:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "url": {
                    "type": "string"
                  },
                  "secret": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "filters": {},
                  "active": {
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "query": {
                      "type": "string"
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "webhookId": {
                      "type": "string"
                    },
                    "destinationUrl": {
                      "type": "string"
                    },
                    "filters": {},
                    "active": {
                      "type": "boolean"
                    },
                    "createdBy": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "notifiedCount": {
                      "type": "number"
                    },
                    "backfilledCount": {
                      "type": "number"
                    },
                    "lastNotifiedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "query",
                    "id",
                    "organizationId",
                    "name",
                    "webhookId",
                    "destinationUrl",
                    "filters",
                    "active",
                    "createdBy",
                    "notifiedCount",
                    "backfilledCount",
                    "lastNotifiedAt",
                    "createdAt",
                    "updatedAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "epcis:write"
      },
      "delete": {
        "tags": [
          "EPCIS traceability"
        ],
        "operationId": "EpcisSubscriptions_remove",
        "summary": "Delete EPCIS event subscriptions",
        "description": "API key scope `epcis:write` (or `epcis:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "deleted": {
                      "type": "boolean"
                    },
                    "id": {
                      "type": "string"
                    },
                    "webhookId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "deleted",
                    "id",
                    "webhookId"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "epcis:write"
      }
    },
    "/epcis/subscriptions/{id}/backfill": {
      "post": {
        "tags": [
          "EPCIS traceability"
        ],
        "operationId": "EpcisSubscriptions_backfill",
        "summary": "Add EPCIS event subscriptions backfill",
        "description": "Catch-up: pushes matching historical events (bounded) to a new subscriber.\n\nAPI key scope `epcis:write` (or `epcis:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "from": {
                    "type": "string"
                  },
                  "to": {
                    "type": "string"
                  },
                  "limit": {
                    "type": "number"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "subscriptionId": {
                      "type": "string"
                    },
                    "scanned": {
                      "type": "number"
                    },
                    "queued": {
                      "type": "number"
                    },
                    "limit": {
                      "type": "number"
                    },
                    "backfilledTotal": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "subscriptionId",
                    "scanned",
                    "queued",
                    "limit",
                    "backfilledTotal"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "epcis:write"
      }
    },
    "/epcis/subscriptions/{id}/deliveries": {
      "get": {
        "tags": [
          "EPCIS traceability"
        ],
        "operationId": "EpcisSubscriptions_deliveries",
        "summary": "Get EPCIS event subscriptions deliveries",
        "description": "API key scope `epcis:read` (or `epcis:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WebhookDelivery"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "epcis:read"
      }
    },
    "/epcis/subscriptions/{id}/deliveries/{deliveryId}/replay": {
      "post": {
        "tags": [
          "EPCIS traceability"
        ],
        "operationId": "EpcisSubscriptions_replay",
        "summary": "Replay subscriptions deliveries of a EPCIS event",
        "description": "Re-drives a failed push (e.g. the subscriber was down).\n\nAPI key scope `epcis:write` (or `epcis:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "replayed": {
                      "type": "boolean"
                    },
                    "deliveryId": {
                      "type": "string"
                    },
                    "event": {
                      "type": "string"
                    },
                    "target": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "replayed",
                    "deliveryId",
                    "event",
                    "target"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "epcis:write"
      }
    },
    "/epcis/subscriptions/{id}/test": {
      "post": {
        "tags": [
          "EPCIS traceability"
        ],
        "operationId": "EpcisSubscriptions_test",
        "summary": "Test subscriptions of a EPCIS event",
        "description": "Sends a sample capture document so the subscriber can verify endpoint + signature.\n\nAPI key scope `epcis:write` (or `epcis:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "queued": {
                      "type": "boolean"
                    },
                    "sample": {
                      "type": "boolean"
                    },
                    "destination": {
                      "type": "string"
                    },
                    "eventId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "queued",
                    "sample",
                    "destination",
                    "eventId"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "epcis:write"
      }
    },
    "/epcis/subscriptions/presets": {
      "get": {
        "tags": [
          "EPCIS traceability"
        ],
        "operationId": "EpcisSubscriptions_presets",
        "summary": "List EPCIS event subscriptions presets",
        "description": "Filter vocabulary + ready-made templates for the console.\n\nAPI key scope `epcis:read` (or `epcis:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "presets": {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              },
                              "filters": {
                                "type": "object",
                                "properties": {
                                  "eventTypes": {
                                    "type": "null"
                                  },
                                  "bizSteps": {
                                    "type": "null"
                                  },
                                  "category": {
                                    "type": "null"
                                  }
                                }
                              }
                            },
                            "required": [
                              "key",
                              "name",
                              "filters"
                            ]
                          },
                          {
                            "type": "object",
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              },
                              "filters": {
                                "type": "object",
                                "properties": {
                                  "eventTypes": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "bizSteps": {
                                    "type": "null"
                                  },
                                  "category": {
                                    "type": "null"
                                  }
                                },
                                "required": [
                                  "eventTypes"
                                ]
                              }
                            },
                            "required": [
                              "key",
                              "name",
                              "filters"
                            ]
                          },
                          {
                            "type": "object",
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              },
                              "filters": {
                                "type": "object",
                                "properties": {
                                  "bizSteps": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "eventTypes": {
                                    "type": "null"
                                  },
                                  "category": {
                                    "type": "null"
                                  }
                                },
                                "required": [
                                  "bizSteps"
                                ]
                              }
                            },
                            "required": [
                              "key",
                              "name",
                              "filters"
                            ]
                          },
                          {
                            "type": "object",
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              },
                              "filters": {
                                "type": "object",
                                "properties": {
                                  "category": {
                                    "type": "string"
                                  },
                                  "eventTypes": {
                                    "type": "null"
                                  },
                                  "bizSteps": {
                                    "type": "null"
                                  }
                                },
                                "required": [
                                  "category"
                                ]
                              }
                            },
                            "required": [
                              "key",
                              "name",
                              "filters"
                            ]
                          }
                        ]
                      }
                    },
                    "semantics": {
                      "type": "string"
                    },
                    "filterKeys": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "bizSteps": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "short": {
                            "type": "string"
                          },
                          "uri": {
                            "type": "string"
                          },
                          "urn": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "short",
                          "uri",
                          "urn"
                        ]
                      }
                    },
                    "dispositions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "short": {
                            "type": "string"
                          },
                          "uri": {
                            "type": "string"
                          },
                          "urn": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "short",
                          "uri",
                          "urn"
                        ]
                      }
                    }
                  },
                  "required": [
                    "presets",
                    "semantics",
                    "filterKeys",
                    "bizSteps",
                    "dispositions"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "epcis:read"
      }
    },
    "/epd-declarations/{reference}/revoke": {
      "post": {
        "tags": [
          "Construction products"
        ],
        "operationId": "Construction_revokeEpd",
        "summary": "Revoke a epd declaration",
        "description": "API key scope `epd-declarations:write` (or `epd-declarations:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "epd-declarations:write"
      }
    },
    "/evidence-graph/documents/{id}/dependents": {
      "get": {
        "tags": [
          "Claims & evidence graph"
        ],
        "operationId": "EvidenceGraph_dependents",
        "summary": "Get evidence graph documents dependents",
        "description": "Claims and passports that depend on one document, and which of them lose support with it.\n\nAPI key scope `evidence-graph:read` (or `evidence-graph:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "document": {
                      "type": "object",
                      "properties": {
                        "id": {},
                        "title": {},
                        "type": {},
                        "reviewStatus": {},
                        "expiresAt": {},
                        "issuer": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "name": {},
                                "identifier": {}
                              },
                              "required": [
                                "name",
                                "identifier"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "title",
                        "type",
                        "reviewStatus",
                        "expiresAt",
                        "issuer"
                      ]
                    },
                    "claims": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "passports": {
                            "type": "number"
                          },
                          "id": {
                            "type": "string"
                          },
                          "subject": {
                            "type": "string"
                          },
                          "attribute": {
                            "type": "string"
                          },
                          "value": {},
                          "unit": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "status": {
                            "type": "string"
                          },
                          "otherSupport": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "passports",
                          "id",
                          "subject",
                          "attribute",
                          "value",
                          "unit",
                          "status",
                          "otherSupport"
                        ]
                      }
                    },
                    "passports": {
                      "type": "array",
                      "items": {}
                    },
                    "passportCount": {
                      "type": "number"
                    },
                    "passportsAtRisk": {
                      "type": "number"
                    },
                    "limited": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "document",
                    "claims",
                    "passports",
                    "passportCount",
                    "passportsAtRisk",
                    "limited"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "evidence-graph:read"
      }
    },
    "/evidence-graph/expiring": {
      "get": {
        "tags": [
          "Claims & evidence graph"
        ],
        "operationId": "EvidenceGraph_expiring",
        "summary": "List evidence graph expiring",
        "description": "Evidence expiring within `days` (1-365, default 90), ranked by passports left without support.\n\nAPI key scope `evidence-graph:read` (or `evidence-graph:*`, `*`).",
        "parameters": [
          {
            "name": "days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "horizonDays": {
                      "type": "number"
                    },
                    "documents": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "daysUntilExpiry": {
                            "type": "number"
                          },
                          "document": {
                            "type": "object",
                            "properties": {
                              "id": {},
                              "title": {},
                              "type": {},
                              "reviewStatus": {},
                              "expiresAt": {},
                              "issuer": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "name": {},
                                      "identifier": {}
                                    },
                                    "required": [
                                      "name",
                                      "identifier"
                                    ]
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "id",
                              "title",
                              "type",
                              "reviewStatus",
                              "expiresAt",
                              "issuer"
                            ]
                          },
                          "claims": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "passports": {
                                  "type": "number"
                                },
                                "id": {
                                  "type": "string"
                                },
                                "subject": {
                                  "type": "string"
                                },
                                "attribute": {
                                  "type": "string"
                                },
                                "value": {},
                                "unit": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "status": {
                                  "type": "string"
                                },
                                "otherSupport": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "passports",
                                "id",
                                "subject",
                                "attribute",
                                "value",
                                "unit",
                                "status",
                                "otherSupport"
                              ]
                            }
                          },
                          "passports": {
                            "type": "array",
                            "items": {}
                          },
                          "passportCount": {
                            "type": "number"
                          },
                          "passportsAtRisk": {
                            "type": "number"
                          },
                          "limited": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "daysUntilExpiry",
                          "document",
                          "claims",
                          "passports",
                          "passportCount",
                          "passportsAtRisk",
                          "limited"
                        ]
                      }
                    },
                    "unrelied": {
                      "type": "number"
                    },
                    "limited": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "horizonDays",
                    "documents",
                    "unrelied",
                    "limited"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "evidence-graph:read"
      }
    },
    "/exports/audit-logs.csv": {
      "get": {
        "tags": [
          "Exports"
        ],
        "operationId": "Exports_auditLogsCsv",
        "summary": "List export audit logs.csv",
        "description": "Immutable audit trail export (admin/owner only) with date filtering.\n\nAPI key scope `exports:read` (or `exports:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "exports:read"
      }
    },
    "/exports/csrd.csv": {
      "get": {
        "tags": [
          "Exports"
        ],
        "operationId": "Exports_csrdCsv",
        "summary": "List export csrd.csv",
        "description": "CSRD-style portfolio sustainability summary (master §12 Milestone 3.2): per-category product/passport counts, compliance results and declared carbon footprint totals (values come from `environmental.carbon_footprint`). Counted by the database: the current version's footprint and the newest run of each passport.\n\nAPI key scope `exports:read` (or `exports:*`, `*`). Console users need the owner / admin role.",
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "exports:read"
      }
    },
    "/exports/dpps.csv": {
      "get": {
        "tags": [
          "Exports"
        ],
        "operationId": "Exports_dppsCsv",
        "summary": "List export dpps.csv",
        "description": "API key scope `exports:read` (or `exports:*`, `*`).",
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "exports:read"
      }
    },
    "/exports/products.csv": {
      "get": {
        "tags": [
          "Exports"
        ],
        "operationId": "Exports_productsCsv",
        "summary": "List export products.csv",
        "description": "API key scope `exports:read` (or `exports:*`, `*`).",
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "exports:read"
      }
    },
    "/exports/regulator/documents.csv": {
      "get": {
        "tags": [
          "Exports"
        ],
        "operationId": "Exports_regulatorDocumentsCsv",
        "summary": "List export regulator documents.csv",
        "description": "Evidence register with expiry status (auditor / regulator evidence trail).\n\nAPI key scope `exports:read` (or `exports:*`, `*`).",
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "exports:read"
      }
    },
    "/exports/regulator/dpps.csv": {
      "get": {
        "tags": [
          "Exports"
        ],
        "operationId": "Exports_regulatorDppsCsv",
        "summary": "List export regulator dpps.csv",
        "description": "Regulator-facing passport summary (master spec §5 Module 7 — CSV per regulator template): identity, market status, latest compliance result and the environmental values present in the current immutable version. Each batch reads only the current version's environmental values and the newest run of each passport; every version (with its full data) and every run used to be loaded for the whole tenant.\n\nAPI key scope `exports:read` (or `exports:*`, `*`).",
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "exports:read"
      }
    },
    "/gs1/dpp/{id}/element-string": {
      "get": {
        "tags": [
          "Data carriers (QR / GS1)"
        ],
        "operationId": "Gs1_forDpp",
        "summary": "Get GS1 setting dpp element string",
        "description": "Builds the element string for a passport, using a carrier serial when present.\n\nAPI key scope `gs1:read` (or `gs1:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "carrierId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "gtin14": {
                      "type": "string"
                    },
                    "elementString": {
                      "type": "string"
                    },
                    "raw": {
                      "type": "string"
                    },
                    "fixed": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "variable": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "valid": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "carrierId",
                    "gtin14",
                    "elementString",
                    "raw",
                    "fixed",
                    "variable",
                    "issues",
                    "valid"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "gs1:read"
      }
    },
    "/gs1/parse": {
      "post": {
        "tags": [
          "Data carriers (QR / GS1)"
        ],
        "operationId": "Gs1_parse",
        "summary": "Create GS1 setting parse",
        "description": "Parses a scanned element string (parenthesised or raw with FNC1 separators).\n\nAPI key scope `gs1:write` (or `gs1:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "elementString": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ParseResult"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "gs1:write"
      }
    },
    "/gs1/prefixes": {
      "get": {
        "tags": [
          "Data carriers (QR / GS1)"
        ],
        "operationId": "Gs1Prefixes_list",
        "summary": "List GS1 setting prefixes",
        "description": "API key scope `gs1:read` (or `gs1:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Gs1CompanyPrefixe2"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "gs1:read"
      },
      "post": {
        "tags": [
          "Data carriers (QR / GS1)"
        ],
        "operationId": "Gs1Prefixes_add",
        "summary": "Create GS1 setting prefixes",
        "description": "API key scope `gs1:write` (or `gs1:*`, `*`). Console users need the owner / admin role.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "prefix": {
                    "type": "string"
                  },
                  "evidence": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Gs1CompanyPrefixe"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "gs1:write"
      }
    },
    "/gs1/prefixes/{id}": {
      "delete": {
        "tags": [
          "Data carriers (QR / GS1)"
        ],
        "operationId": "Gs1Prefixes_remove",
        "summary": "Delete GS1 setting prefixes",
        "description": "API key scope `gs1:write` (or `gs1:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "removed": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "removed"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "gs1:write"
      }
    },
    "/gs1/prefixes/policy": {
      "get": {
        "tags": [
          "Data carriers (QR / GS1)"
        ],
        "operationId": "Gs1Prefixes_policy",
        "summary": "List GS1 setting prefixes policy",
        "description": "API key scope `gs1:read` (or `gs1:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "enforcement": {
                      "type": "string",
                      "enum": [
                        "off",
                        "warn",
                        "strict"
                      ]
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "enforcement",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "gs1:read"
      }
    },
    "/health": {
      "get": {
        "tags": [
          "Service"
        ],
        "operationId": "Health_health",
        "summary": "List service health",
        "description": "Public: no API key needed.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "service": {
                      "type": "string"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "ok",
                    "service",
                    "time"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/health/ready": {
      "get": {
        "tags": [
          "Service"
        ],
        "operationId": "Health_ready",
        "summary": "List service health ready",
        "description": "Readiness probe: PostgreSQL and Redis connectivity, and a database migrated to this build's schema.\n\nPublic: no API key needed.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "checks": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string",
                        "enum": [
                          "failed",
                          "ok"
                        ]
                      }
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "ok",
                    "checks",
                    "time"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/identity": {
      "get": {
        "tags": [
          "Organization identity"
        ],
        "operationId": "Identity_overview",
        "summary": "List identity",
        "description": "The organization's DID, its DID document URL and its identifiers with their last registry answer.\n\nAPI key scope `identity:read` (or `identity:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "did": {
                      "type": "string"
                    },
                    "didDocumentUrl": {
                      "type": "string"
                    },
                    "verifications": {
                      "type": "array",
                      "items": {}
                    }
                  },
                  "required": [
                    "did",
                    "didDocumentUrl",
                    "verifications"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "identity:read"
      }
    },
    "/identity/credentials/verify": {
      "post": {
        "tags": [
          "Organization identity"
        ],
        "operationId": "Identity_verify",
        "summary": "Verify credentials of identity",
        "description": "Verifies a credential (VC-JWT or eddsa-jcs-2022 Data Integrity) without storing it.\n\nAPI key scope `identity:write` (or `identity:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "credential": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 10,
                        "maxLength": 65536
                      },
                      {
                        "type": "object",
                        "propertyNames": {
                          "type": "string"
                        },
                        "additionalProperties": {}
                      }
                    ]
                  }
                },
                "required": [
                  "credential"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialVerification"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "identity:write"
      }
    },
    "/identity/suppliers/{supplierId}": {
      "get": {
        "tags": [
          "Organization identity"
        ],
        "operationId": "Identity_supplier",
        "summary": "Get identity suppliers",
        "description": "A supplier's identifiers and their registry answers.\n\nAPI key scope `identity:read` (or `identity:*`, `*`).",
        "parameters": [
          {
            "name": "supplierId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {}
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "identity:read"
      }
    },
    "/identity/verifications": {
      "post": {
        "tags": [
          "Organization identity"
        ],
        "operationId": "Identity_add",
        "summary": "Create identity verifications",
        "description": "Adds an LEI, VAT number or domain of the organization (or of a supplier, with supplierId) and checks it.\n\nAPI key scope `identity:write` (or `identity:*`, `*`). Console users need the owner / admin role.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "scheme": {
                    "type": "string",
                    "enum": [
                      "lei",
                      "vat",
                      "domain"
                    ]
                  },
                  "value": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 253
                  },
                  "supplierId": {
                    "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"
                      }
                    ]
                  }
                },
                "required": [
                  "scheme",
                  "value"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "identity:write"
      }
    },
    "/identity/verifications/{id}": {
      "delete": {
        "tags": [
          "Organization identity"
        ],
        "operationId": "Identity_remove",
        "summary": "Delete identity verifications",
        "description": "API key scope `identity:write` (or `identity:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "removed": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "removed"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "identity:write"
      }
    },
    "/identity/verifications/{id}/check": {
      "post": {
        "tags": [
          "Organization identity"
        ],
        "operationId": "Identity_check",
        "summary": "Add identity verifications check",
        "description": "Asks the registry again (for a domain: looks for the TXT record).\n\nAPI key scope `identity:write` (or `identity:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "identity:write"
      }
    },
    "/identity/verifications/{id}/confirm": {
      "post": {
        "tags": [
          "Organization identity"
        ],
        "operationId": "Identity_confirm",
        "summary": "Add identity verifications confirm",
        "description": "An owner confirms a registry record whose legal name differs from the organization's (a trading name, a group entity).\n\nAPI key scope `identity:write` (or `identity:*`, `*`). Console users need the owner role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "identity:write"
      }
    },
    "/item-jobs/{jobId}": {
      "get": {
        "tags": [
          "Passports"
        ],
        "operationId": "ItemJobs_get",
        "summary": "Get a item job",
        "description": "One generation job with progress.\n\nAPI key scope `item-jobs:read` (or `item-jobs:*`, `*`).",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "percent": {
                      "type": "number"
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "dppId": {
                      "type": "string"
                    },
                    "gtin": {
                      "type": "string"
                    },
                    "batch": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "prefix": {
                      "type": "string"
                    },
                    "width": {
                      "type": "number"
                    },
                    "startNumber": {
                      "type": "number"
                    },
                    "count": {
                      "type": "number"
                    },
                    "nextOffset": {
                      "type": "number"
                    },
                    "createdCount": {
                      "type": "number"
                    },
                    "skippedCount": {
                      "type": "number"
                    },
                    "status": {
                      "type": "string"
                    },
                    "error": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "heartbeatAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "createdBy": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "finishedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "percent",
                    "id",
                    "organizationId",
                    "dppId",
                    "gtin",
                    "batch",
                    "prefix",
                    "width",
                    "startNumber",
                    "count",
                    "nextOffset",
                    "createdCount",
                    "skippedCount",
                    "status",
                    "error",
                    "heartbeatAt",
                    "createdBy",
                    "createdAt",
                    "finishedAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "item-jobs:read"
      }
    },
    "/item-jobs/{jobId}/cancel": {
      "post": {
        "tags": [
          "Passports"
        ],
        "operationId": "ItemJobs_cancel",
        "summary": "Cancel a item job",
        "description": "Stops a queued or running job; items already created stay.\n\nAPI key scope `item-jobs:write` (or `item-jobs:*`, `*`).",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemGenerationJob"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "item-jobs:write"
      }
    },
    "/jobs/{id}": {
      "get": {
        "tags": [
          "Bulk jobs"
        ],
        "operationId": "Jobs_get",
        "summary": "Get a job",
        "description": "API key scope `jobs:read` (or `jobs:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "state": {
                      "type": "string",
                      "enum": [
                        "active",
                        "unknown",
                        "failed",
                        "completed",
                        "delayed",
                        "prioritized",
                        "waiting",
                        "waiting-children"
                      ]
                    },
                    "progress": {},
                    "result": {},
                    "failedReason": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "name",
                    "state",
                    "progress",
                    "result",
                    "failedReason"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "jobs:read"
      }
    },
    "/jobs/bulk": {
      "post": {
        "tags": [
          "Bulk jobs"
        ],
        "operationId": "Jobs_bulkCreate",
        "summary": "Create job bulk",
        "description": "API key scope `jobs:write` (or `jobs:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {}
                  }
                },
                "required": [
                  "items"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "jobId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "status"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "jobs:write"
      }
    },
    "/jobs/dpp/{id}/revalidate": {
      "post": {
        "tags": [
          "Bulk jobs"
        ],
        "operationId": "Jobs_revalidate",
        "summary": "Revalidate dpp of a job",
        "description": "API key scope `jobs:write` (or `jobs:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "jobId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "status"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "jobs:write"
      }
    },
    "/jobs/import": {
      "post": {
        "tags": [
          "Bulk jobs"
        ],
        "operationId": "Jobs_importCsv",
        "summary": "Import jobs",
        "description": "API key scope `jobs:write` (or `jobs:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "csv": {
                    "type": "string"
                  }
                },
                "required": [
                  "csv"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "jobId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "status"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "jobs:write"
      }
    },
    "/lca/estimate": {
      "post": {
        "tags": [
          "Carbon & LCA"
        ],
        "operationId": "Lca_estimate",
        "summary": "Estimate LCA results",
        "description": "API key scope `lca:write` (or `lca:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LcaEstimateInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "method": {
                      "type": "string"
                    },
                    "methodology": {
                      "type": "string"
                    },
                    "functionalUnit": {
                      "type": "string"
                    },
                    "totalKgCo2e": {
                      "type": "number"
                    },
                    "uncertaintyPct": {
                      "type": "number"
                    },
                    "confidence": {
                      "type": "string"
                    },
                    "stages": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "value": {
                            "type": "number"
                          },
                          "share": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "key",
                          "name",
                          "value",
                          "share"
                        ]
                      }
                    },
                    "hotspots": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "material": {
                            "type": "string"
                          },
                          "valueKgCo2e": {
                            "type": "number"
                          },
                          "sharePct": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "material",
                          "valueKgCo2e",
                          "sharePct"
                        ]
                      }
                    },
                    "unresolvedInputs": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "recommendations": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "disclaimer": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "method",
                    "methodology",
                    "functionalUnit",
                    "totalKgCo2e",
                    "uncertaintyPct",
                    "confidence",
                    "stages",
                    "hotspots",
                    "unresolvedInputs",
                    "recommendations",
                    "disclaimer"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "lca:write"
      }
    },
    "/lca/factors": {
      "get": {
        "tags": [
          "Carbon & LCA"
        ],
        "operationId": "Lca_factors",
        "summary": "List LCA result factors",
        "description": "API key scope `lca:read` (or `lca:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "materials": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "number"
                      }
                    },
                    "grids": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "number"
                      }
                    },
                    "transport": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "number"
                      }
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "materials",
                    "grids",
                    "transport",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "lca:read"
      }
    },
    "/leases": {
      "get": {
        "tags": [
          "Ownership & leases"
        ],
        "operationId": "Leases_portfolio",
        "summary": "List leases",
        "description": "API key scope `leases:read` (or `leases:*`, `*`).",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "expiringInDays",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {}
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "leases:read"
      }
    },
    "/leases/{id}/end": {
      "post": {
        "tags": [
          "Ownership & leases"
        ],
        "operationId": "Leases_end",
        "summary": "Add lease end",
        "description": "API key scope `leases:write` (or `leases:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "cancelled",
                      "ended"
                    ]
                  },
                  "endDate": {
                    "type": "string"
                  },
                  "notes": {
                    "type": "string"
                  },
                  "returnCustody": {
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaseContract"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "leases:write"
      }
    },
    "/lifecycle-reports": {
      "get": {
        "tags": [
          "Lifecycle reports"
        ],
        "operationId": "LifecycleReports_list",
        "summary": "List lifecycle reports",
        "description": "Reports from credentialed third parties (pending, accepted or rejected).\n\nAPI key scope `lifecycle-reports:read` (or `lifecycle-reports:*`, `*`).",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {}
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "lifecycle-reports:read"
      }
    },
    "/lifecycle-reports/{id}/decision": {
      "post": {
        "tags": [
          "Lifecycle reports"
        ],
        "operationId": "LifecycleReports_decide",
        "summary": "Add lifecycle report decision",
        "description": "Accepts (records the lifecycle event and moves the item status) or rejects a report with a reason. Administrators only, since a recycled battery closes its passport.\n\nAPI key scope `lifecycle-reports:write` (or `lifecycle-reports:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "decision": {
                    "type": "string",
                    "enum": [
                      "accept",
                      "reject"
                    ]
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "decision",
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LifecycleReport"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "lifecycle-reports:write"
      }
    },
    "/localization/coverage": {
      "get": {
        "tags": [
          "Translations"
        ],
        "operationId": "Localization_coverage",
        "summary": "List translation coverage",
        "description": "Portfolio localization readiness per language and market.\n\nAPI key scope `localization:read` (or `localization:*`, `*`).",
        "parameters": [
          {
            "name": "markets",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "publishedPassports": {
                      "type": "number"
                    },
                    "localesAuthored": {
                      "type": "number"
                    },
                    "locales": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string"
                          },
                          "nativeName": {
                            "type": "string"
                          },
                          "passportsWithContent": {
                            "type": "number"
                          },
                          "passportsReviewed": {
                            "type": "number"
                          },
                          "passportsLive": {
                            "type": "number"
                          },
                          "passportsPartiallyHeldBack": {
                            "type": "number"
                          },
                          "passportsAwaitingReview": {
                            "type": "number"
                          },
                          "passportsMachineDrafted": {
                            "type": "number"
                          },
                          "percent": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "locale",
                          "nativeName",
                          "passportsWithContent",
                          "passportsReviewed",
                          "passportsLive",
                          "passportsPartiallyHeldBack",
                          "passportsAwaitingReview",
                          "passportsMachineDrafted",
                          "percent"
                        ]
                      }
                    },
                    "machineDrafted": {
                      "type": "number"
                    },
                    "awaitingReview": {
                      "type": "number"
                    },
                    "machineDraftedLocales": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "markets": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "market": {
                            "type": "string"
                          },
                          "expected": {
                            "type": "number"
                          },
                          "covered": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "missing": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "market",
                          "expected",
                          "covered",
                          "missing"
                        ]
                      }
                    },
                    "advisory": {
                      "type": "boolean"
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "publishedPassports",
                    "localesAuthored",
                    "locales",
                    "machineDrafted",
                    "awaitingReview",
                    "machineDraftedLocales",
                    "markets",
                    "advisory",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "localization:read"
      }
    },
    "/localization/export": {
      "get": {
        "tags": [
          "Translations"
        ],
        "operationId": "Localization_exportPortfolio",
        "summary": "Export translations",
        "description": "Translator file for one language across the portfolio (`format=xliff|csv`, `missingOnly=true`).\n\nAPI key scope `localization:read` (or `localization:*`, `*`).",
        "parameters": [
          {
            "name": "locale",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "missingOnly",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "filename": {
                      "type": "string"
                    },
                    "contentType": {
                      "type": "string"
                    },
                    "passports": {
                      "type": "number"
                    },
                    "units": {
                      "type": "number"
                    },
                    "content": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "filename",
                    "contentType",
                    "passports",
                    "units",
                    "content"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "localization:read"
      }
    },
    "/localization/glossary": {
      "get": {
        "tags": [
          "Translations"
        ],
        "operationId": "MachineTranslation_glossary",
        "summary": "List translation glossary",
        "description": "The reviewed glossary, the mask rules, the review checklist and the language notes.\n\nAPI key scope `localization:read` (or `localization:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "version": {
                      "type": "string"
                    },
                    "methodVersion": {
                      "type": "string"
                    },
                    "terms": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GlossaryEntry"
                      }
                    },
                    "patterns": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "pattern": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "label",
                          "pattern"
                        ]
                      }
                    },
                    "reviewChecklist": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "item": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "item"
                        ]
                      }
                    },
                    "caveat": {
                      "type": "string"
                    },
                    "note": {
                      "type": "string"
                    },
                    "updateNote": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "version",
                    "methodVersion",
                    "terms",
                    "patterns",
                    "reviewChecklist",
                    "caveat",
                    "note",
                    "updateNote"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "localization:read"
      }
    },
    "/localization/import": {
      "post": {
        "tags": [
          "Translations"
        ],
        "operationId": "Localization_importPortfolio",
        "summary": "Import translations",
        "description": "Import a translator file (XLIFF 1.2/2.x or the exported CSV) as drafts. Never approves.\n\nAPI key scope `localization:write` (or `localization:*`, `*`). Console users need the owner / admin / member role.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "locale": {
                    "type": "string"
                  },
                  "format": {
                    "type": "string"
                  },
                  "content": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string"
                  }
                },
                "required": [
                  "locale",
                  "content"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "passports": {
                      "type": "number"
                    },
                    "applied": {
                      "type": "number"
                    },
                    "skipped": {
                      "type": "number"
                    },
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "dppId": {
                            "type": "string"
                          },
                          "applied": {
                            "type": "number"
                          },
                          "unchanged": {
                            "type": "number"
                          },
                          "skipped": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "path": {
                                  "type": "string"
                                },
                                "reason": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "path",
                                "reason"
                              ]
                            }
                          },
                          "error": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "dppId",
                          "applied",
                          "unchanged",
                          "skipped"
                        ]
                      }
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "locale",
                    "status",
                    "passports",
                    "applied",
                    "skipped",
                    "results",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "localization:write"
      }
    },
    "/localization/locales": {
      "get": {
        "tags": [
          "Translations"
        ],
        "operationId": "Localization_locales",
        "summary": "List translation locales",
        "description": "EU-24 language catalogue and the status vocabulary of the workflow.\n\nAPI key scope `localization:read` (or `localization:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "locales": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/LocaleInfo"
                      }
                    },
                    "statuses": {
                      "type": "array",
                      "prefixItems": [
                        {
                          "type": "string",
                          "enum": [
                            "draft"
                          ]
                        },
                        {
                          "type": "string",
                          "enum": [
                            "reviewed"
                          ]
                        },
                        {
                          "type": "string",
                          "enum": [
                            "approved"
                          ]
                        }
                      ]
                    },
                    "productKeys": {
                      "type": "array",
                      "prefixItems": [
                        {
                          "type": "string",
                          "enum": [
                            "product.name"
                          ]
                        },
                        {
                          "type": "string",
                          "enum": [
                            "product.description"
                          ]
                        }
                      ]
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "locales",
                    "statuses",
                    "productKeys",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "localization:read"
      }
    },
    "/localization/provider": {
      "get": {
        "tags": [
          "Translations"
        ],
        "operationId": "MachineTranslation_provider",
        "summary": "List translation provider",
        "description": "Is machine drafting available, on which model, and what does that mean for translations.\n\nAPI key scope `localization:read` (or `localization:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "languages": {
                      "type": "number"
                    },
                    "machineDrafting": {
                      "type": "boolean"
                    },
                    "note": {
                      "type": "string"
                    },
                    "configured": {
                      "type": "boolean"
                    },
                    "provider": {
                      "type": "string"
                    },
                    "baseUrlHost": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "model": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "timeoutMs": {
                      "type": "number"
                    },
                    "hasApiKey": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "languages",
                    "machineDrafting",
                    "note",
                    "configured",
                    "provider",
                    "baseUrlHost",
                    "model",
                    "timeoutMs",
                    "hasApiKey"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "localization:read"
      }
    },
    "/localization/queue": {
      "get": {
        "tags": [
          "Translations"
        ],
        "operationId": "Localization_queue",
        "summary": "List translation queue",
        "description": "Drafts, translations ready for approval, and live translations whose source has changed.\n\nAPI key scope `localization:read` (or `localization:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {}
                    },
                    "counts": {
                      "type": "object",
                      "properties": {
                        "awaitingReview": {
                          "type": "number"
                        },
                        "readyForApproval": {
                          "type": "number"
                        },
                        "outdatedLive": {
                          "type": "number"
                        },
                        "machineDrafted": {
                          "type": "number"
                        },
                        "stale": {
                          "type": "number"
                        },
                        "suspect": {
                          "type": "number"
                        },
                        "reviewCarefully": {
                          "type": "number"
                        },
                        "readyForReview": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "awaitingReview",
                        "readyForApproval",
                        "outdatedLive",
                        "machineDrafted",
                        "stale",
                        "suspect",
                        "reviewCarefully",
                        "readyForReview"
                      ]
                    },
                    "byLocale": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "drafts": {
                            "type": "number"
                          },
                          "machine": {
                            "type": "number"
                          },
                          "locale": {
                            "type": "string"
                          },
                          "localeName": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "drafts",
                          "machine",
                          "locale",
                          "localeName"
                        ]
                      }
                    },
                    "checklist": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "item": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "item"
                        ]
                      }
                    },
                    "caveat": {
                      "type": "string"
                    },
                    "note": {
                      "type": "string"
                    },
                    "reviewNote": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "items",
                    "counts",
                    "byLocale",
                    "checklist",
                    "caveat",
                    "note",
                    "reviewNote"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "localization:read"
      }
    },
    "/localization/requirements": {
      "get": {
        "tags": [
          "Translations"
        ],
        "operationId": "Localization_requirements",
        "summary": "List translation requirements",
        "description": "Advisory market → language expectations (`?markets=EU,DE`).\n\nAPI key scope `localization:read` (or `localization:*`, `*`).",
        "parameters": [
          {
            "name": "markets",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "markets": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "requirements": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "market": {
                            "type": "string"
                          },
                          "locales": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "market",
                          "locales"
                        ]
                      }
                    },
                    "advisory": {
                      "type": "boolean"
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "markets",
                    "requirements",
                    "advisory",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "localization:read"
      }
    },
    "/localization/runs": {
      "get": {
        "tags": [
          "Translations"
        ],
        "operationId": "MachineTranslation_runs",
        "summary": "List translation runs",
        "description": "Run history (`?dppId=` to scope it to one passport).\n\nAPI key scope `localization:read` (or `localization:*`, `*`).",
        "parameters": [
          {
            "name": "dppId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "runs": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "reference": {},
                          "dppId": {},
                          "status": {},
                          "dppVersion": {},
                          "batch": {},
                          "provider": {},
                          "model": {},
                          "methodVersion": {},
                          "glossaryVersion": {},
                          "requested": {},
                          "drafted": {},
                          "rejected": {},
                          "segments": {},
                          "segmentsDrafted": {},
                          "termsLost": {},
                          "suspect": {},
                          "degraded": {},
                          "providerError": {},
                          "note": {},
                          "createdAt": {}
                        },
                        "required": [
                          "reference",
                          "dppId",
                          "status",
                          "dppVersion",
                          "batch",
                          "provider",
                          "model",
                          "methodVersion",
                          "glossaryVersion",
                          "requested",
                          "drafted",
                          "rejected",
                          "segments",
                          "segmentsDrafted",
                          "termsLost",
                          "suspect",
                          "degraded",
                          "providerError",
                          "note",
                          "createdAt"
                        ]
                      }
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "runs",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "localization:read"
      }
    },
    "/localization/runs/{reference}": {
      "get": {
        "tags": [
          "Translations"
        ],
        "operationId": "MachineTranslation_run",
        "summary": "Get translation runs",
        "description": "API key scope `localization:read` (or `localization:*`, `*`).",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "localization:read"
      }
    },
    "/localization/translate-missing": {
      "post": {
        "tags": [
          "Translations"
        ],
        "operationId": "MachineTranslation_translateMissing",
        "summary": "Create translation translate missing",
        "description": "Portfolio drafting: draft the given languages for every passport (or the listed ones) that has no translation in them yet. Runs in the background; never touches an existing translation.\n\nAPI key scope `localization:write` (or `localization:*`, `*`). Console users need the owner / admin / member role.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "locales": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "dppIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "note": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "batch": {
                      "type": "string"
                    },
                    "queued": {
                      "type": "boolean"
                    },
                    "passports": {
                      "type": "number"
                    },
                    "languages": {
                      "type": "number"
                    },
                    "deferred": {
                      "type": "number"
                    },
                    "alreadyTranslated": {
                      "type": "number"
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "batch",
                    "queued",
                    "passports",
                    "languages",
                    "deferred",
                    "alreadyTranslated",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "localization:write"
      }
    },
    "/localization/translation-capability": {
      "get": {
        "tags": [
          "Translations"
        ],
        "operationId": "MachineTranslation_capability",
        "summary": "List translation translation capability",
        "description": "What drafting means per language: script, review focus.\n\nAPI key scope `localization:read` (or `localization:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "methodVersion": {
                      "type": "string"
                    },
                    "glossaryVersion": {
                      "type": "string"
                    },
                    "languages": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "script": {
                            "type": "string",
                            "enum": [
                              "latin",
                              "greek",
                              "cyrillic"
                            ]
                          },
                          "reviewFocus": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "locale",
                          "name",
                          "script",
                          "reviewFocus"
                        ]
                      }
                    },
                    "supportedScripts": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "latin",
                          "greek",
                          "cyrillic"
                        ]
                      }
                    },
                    "caveat": {
                      "type": "string"
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "methodVersion",
                    "glossaryVersion",
                    "languages",
                    "supportedScripts",
                    "caveat",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "localization:read"
      }
    },
    "/materials-declarations/{reference}/revoke": {
      "post": {
        "tags": [
          "Substances & materials"
        ],
        "operationId": "Materials_revoke",
        "summary": "Revoke a materials declaration",
        "description": "API key scope `materials-declarations:write` (or `materials-declarations:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "materials-declarations:write"
      }
    },
    "/materials/catalogue": {
      "get": {
        "tags": [
          "Substances & materials"
        ],
        "operationId": "Materials_catalogue",
        "summary": "List material catalogue",
        "description": "The frameworks the assessment uses: weights, class bands, CRM list, recycled-content targets.\n\nAPI key scope `materials:read` (or `materials:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "methodVersion": {
                      "type": "string"
                    },
                    "criteria": {
                      "type": "array",
                      "prefixItems": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "enum": [
                                "documentation"
                              ]
                            },
                            "label": {
                              "type": "string",
                              "enum": [
                                "Documentation availability"
                              ]
                            },
                            "weightPercent": {
                              "type": "number",
                              "enum": [
                                15
                              ]
                            }
                          },
                          "required": [
                            "id",
                            "label",
                            "weightPercent"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "enum": [
                                "disassembly"
                              ]
                            },
                            "label": {
                              "type": "string",
                              "enum": [
                                "Disassembly (tool access)"
                              ]
                            },
                            "weightPercent": {
                              "type": "number",
                              "enum": [
                                20
                              ]
                            }
                          },
                          "required": [
                            "id",
                            "label",
                            "weightPercent"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "enum": [
                                "spareParts"
                              ]
                            },
                            "label": {
                              "type": "string",
                              "enum": [
                                "Spare parts availability"
                              ]
                            },
                            "weightPercent": {
                              "type": "number",
                              "enum": [
                                20
                              ]
                            }
                          },
                          "required": [
                            "id",
                            "label",
                            "weightPercent"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "enum": [
                                "battery"
                              ]
                            },
                            "label": {
                              "type": "string",
                              "enum": [
                                "Battery replaceability"
                              ]
                            },
                            "weightPercent": {
                              "type": "number",
                              "enum": [
                                15
                              ]
                            }
                          },
                          "required": [
                            "id",
                            "label",
                            "weightPercent"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "enum": [
                                "software"
                              ]
                            },
                            "label": {
                              "type": "string",
                              "enum": [
                                "Software update commitment"
                              ]
                            },
                            "weightPercent": {
                              "type": "number",
                              "enum": [
                                15
                              ]
                            }
                          },
                          "required": [
                            "id",
                            "label",
                            "weightPercent"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "enum": [
                                "reverseLogistics"
                              ]
                            },
                            "label": {
                              "type": "string",
                              "enum": [
                                "Reverse logistics"
                              ]
                            },
                            "weightPercent": {
                              "type": "number",
                              "enum": [
                                10
                              ]
                            }
                          },
                          "required": [
                            "id",
                            "label",
                            "weightPercent"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "enum": [
                                "packagingRecyclability"
                              ]
                            },
                            "label": {
                              "type": "string",
                              "enum": [
                                "Packaging recyclability"
                              ]
                            },
                            "weightPercent": {
                              "type": "number",
                              "enum": [
                                5
                              ]
                            }
                          },
                          "required": [
                            "id",
                            "label",
                            "weightPercent"
                          ]
                        }
                      ]
                    },
                    "classes": {
                      "type": "array",
                      "prefixItems": [
                        {
                          "type": "object",
                          "properties": {
                            "className": {
                              "type": "string",
                              "enum": [
                                "A"
                              ]
                            },
                            "min": {
                              "type": "number",
                              "enum": [
                                9
                              ]
                            }
                          },
                          "required": [
                            "className",
                            "min"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "className": {
                              "type": "string",
                              "enum": [
                                "B"
                              ]
                            },
                            "min": {
                              "type": "number",
                              "enum": [
                                7.5
                              ]
                            }
                          },
                          "required": [
                            "className",
                            "min"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "className": {
                              "type": "string",
                              "enum": [
                                "C"
                              ]
                            },
                            "min": {
                              "type": "number",
                              "enum": [
                                6
                              ]
                            }
                          },
                          "required": [
                            "className",
                            "min"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "className": {
                              "type": "string",
                              "enum": [
                                "D"
                              ]
                            },
                            "min": {
                              "type": "number",
                              "enum": [
                                4.5
                              ]
                            }
                          },
                          "required": [
                            "className",
                            "min"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "className": {
                              "type": "string",
                              "enum": [
                                "E"
                              ]
                            },
                            "min": {
                              "type": "number",
                              "enum": [
                                3
                              ]
                            }
                          },
                          "required": [
                            "className",
                            "min"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "className": {
                              "type": "string",
                              "enum": [
                                "F"
                              ]
                            },
                            "min": {
                              "type": "number",
                              "enum": [
                                1.5
                              ]
                            }
                          },
                          "required": [
                            "className",
                            "min"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "className": {
                              "type": "string",
                              "enum": [
                                "G"
                              ]
                            },
                            "min": {
                              "type": "number",
                              "enum": [
                                0
                              ]
                            }
                          },
                          "required": [
                            "className",
                            "min"
                          ]
                        }
                      ]
                    },
                    "classCaveat": {
                      "type": "string"
                    },
                    "crm": {
                      "type": "object",
                      "properties": {
                        "version": {
                          "type": "string"
                        },
                        "count": {
                          "type": "number"
                        },
                        "strategic": {
                          "type": "number"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "materials": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/CriticalMaterial"
                          }
                        }
                      },
                      "required": [
                        "version",
                        "count",
                        "strategic",
                        "disclaimer",
                        "materials"
                      ]
                    },
                    "recycledContent": {
                      "type": "object",
                      "properties": {
                        "targets": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/RecycledContentTarget"
                          }
                        },
                        "strategicBenchmark": {
                          "type": "object",
                          "properties": {
                            "percent": {
                              "type": "number"
                            },
                            "year": {
                              "type": "number"
                            },
                            "basis": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "percent",
                            "year",
                            "basis"
                          ]
                        },
                        "note": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "targets",
                        "strategicBenchmark",
                        "note"
                      ]
                    },
                    "evidence": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "methodVersion",
                    "criteria",
                    "classes",
                    "classCaveat",
                    "crm",
                    "recycledContent",
                    "evidence"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "materials:read"
      }
    },
    "/notifications/digest/preview": {
      "get": {
        "tags": [
          "Notifications"
        ],
        "operationId": "Notifications_preview",
        "summary": "Preview digest of notifications",
        "description": "Renders what the next digest would contain (no email is sent).\n\nAPI key scope `notifications:read` (or `notifications:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "recipients": {
                      "type": "array",
                      "items": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "subject": {
                      "type": "string"
                    },
                    "text": {
                      "type": "string"
                    },
                    "html": {
                      "type": "string"
                    },
                    "counts": {
                      "type": "object",
                      "properties": {
                        "expiringDocuments": {
                          "type": "number"
                        },
                        "nonCompliantPassports": {
                          "type": "number"
                        },
                        "overdueLeases": {
                          "type": "number"
                        },
                        "openSupplierRequests": {
                          "type": "number"
                        },
                        "translations": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "expiringDocuments",
                        "nonCompliantPassports",
                        "overdueLeases",
                        "openSupplierRequests",
                        "translations"
                      ]
                    },
                    "allClear": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "recipients",
                    "subject",
                    "text",
                    "html",
                    "counts",
                    "allClear"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "notifications:read"
      }
    },
    "/notifications/digest/send": {
      "post": {
        "tags": [
          "Notifications"
        ],
        "operationId": "Notifications_send",
        "summary": "Create notification digest send",
        "description": "API key scope `notifications:write` (or `notifications:*`, `*`). Console users need the owner / admin role.",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "sent": {
                      "type": "boolean"
                    },
                    "recipients": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "driver": {
                      "type": "string"
                    },
                    "delivered": {
                      "type": "boolean"
                    },
                    "counts": {
                      "type": "object",
                      "properties": {
                        "expiringDocuments": {
                          "type": "number"
                        },
                        "nonCompliantPassports": {
                          "type": "number"
                        },
                        "overdueLeases": {
                          "type": "number"
                        },
                        "openSupplierRequests": {
                          "type": "number"
                        },
                        "translations": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "expiringDocuments",
                        "nonCompliantPassports",
                        "overdueLeases",
                        "openSupplierRequests",
                        "translations"
                      ]
                    },
                    "allClear": {
                      "type": "boolean"
                    },
                    "subject": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "sent",
                    "recipients",
                    "driver",
                    "delivered",
                    "counts",
                    "allClear",
                    "subject"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "notifications:write"
      }
    },
    "/notifications/settings": {
      "get": {
        "tags": [
          "Notifications"
        ],
        "operationId": "Notifications_settings",
        "summary": "List notification settings",
        "description": "API key scope `notifications:read` (or `notifications:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "notifyEmail": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "lastDigestAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "frequency": {
                      "type": "string",
                      "enum": [
                        "off",
                        "daily",
                        "weekly"
                      ]
                    },
                    "recipients": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "expiryDays": {
                      "type": "number"
                    },
                    "includeSuppliers": {
                      "type": "boolean"
                    },
                    "includeLeases": {
                      "type": "boolean"
                    },
                    "supportedFrequencies": {
                      "type": "array",
                      "prefixItems": [
                        {
                          "type": "string",
                          "enum": [
                            "off"
                          ]
                        },
                        {
                          "type": "string",
                          "enum": [
                            "daily"
                          ]
                        },
                        {
                          "type": "string",
                          "enum": [
                            "weekly"
                          ]
                        }
                      ]
                    },
                    "mailDriver": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "notifyEmail",
                    "lastDigestAt",
                    "frequency",
                    "recipients",
                    "expiryDays",
                    "includeSuppliers",
                    "includeLeases",
                    "supportedFrequencies",
                    "mailDriver"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "notifications:read"
      },
      "patch": {
        "tags": [
          "Notifications"
        ],
        "operationId": "Notifications_update",
        "summary": "Update settings",
        "description": "API key scope `notifications:write` (or `notifications:*`, `*`). Console users need the owner / admin role.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DigestSettingsInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "notifyEmail": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "lastDigestAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "frequency": {
                      "type": "string",
                      "enum": [
                        "off",
                        "daily",
                        "weekly"
                      ]
                    },
                    "recipients": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "expiryDays": {
                      "type": "number"
                    },
                    "includeSuppliers": {
                      "type": "boolean"
                    },
                    "includeLeases": {
                      "type": "boolean"
                    },
                    "supportedFrequencies": {
                      "type": "array",
                      "prefixItems": [
                        {
                          "type": "string",
                          "enum": [
                            "off"
                          ]
                        },
                        {
                          "type": "string",
                          "enum": [
                            "daily"
                          ]
                        },
                        {
                          "type": "string",
                          "enum": [
                            "weekly"
                          ]
                        }
                      ]
                    },
                    "mailDriver": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "notifyEmail",
                    "lastDigestAt",
                    "frequency",
                    "recipients",
                    "expiryDays",
                    "includeSuppliers",
                    "includeLeases",
                    "supportedFrequencies",
                    "mailDriver"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "notifications:write"
      }
    },
    "/product-models": {
      "get": {
        "tags": [
          "Product models"
        ],
        "operationId": "ProductModels_list",
        "summary": "List product models",
        "description": "Models with how many variants each has.\n\nAPI key scope `product-models:read` (or `product-models:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {}
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "product-models:read"
      },
      "post": {
        "tags": [
          "Product models"
        ],
        "operationId": "ProductModels_create",
        "summary": "Create a product model",
        "description": "Creates a model: category, brand, the axes its variants differ by, and the passport data they share.\n\nAPI key scope `product-models:write` (or `product-models:*`, `*`). Console users need the owner / admin / member role.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "category": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60
                  },
                  "brand": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 120
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "workspaceId": {
                    "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"
                      }
                    ]
                  },
                  "variantAxes": {
                    "default": [],
                    "maxItems": 4,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40,
                      "pattern": "^[A-Za-z][A-Za-z0-9_ -]*$"
                    }
                  },
                  "sharedData": {
                    "default": {},
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "code",
                  "name",
                  "category",
                  "variantAxes",
                  "sharedData"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductModel2"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "product-models:write"
      }
    },
    "/product-models/{id}": {
      "get": {
        "tags": [
          "Product models"
        ],
        "operationId": "ProductModels_get",
        "summary": "Get a product model",
        "description": "The model with its variants, their passports and serialized item counts.\n\nAPI key scope `product-models:read` (or `product-models:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "variants": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "productId": {},
                          "sku": {},
                          "gtin": {},
                          "name": {},
                          "attributes": {},
                          "passport": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "type": "string"
                                  },
                                  "status": {
                                    "type": "string"
                                  },
                                  "currentVersion": {
                                    "type": "number"
                                  },
                                  "publishedVersion": {
                                    "type": [
                                      "number",
                                      "null"
                                    ]
                                  },
                                  "items": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "id",
                                  "status",
                                  "currentVersion",
                                  "publishedVersion",
                                  "items"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "productId",
                          "sku",
                          "gtin",
                          "name",
                          "attributes",
                          "passport"
                        ]
                      }
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "category": {
                      "type": "string"
                    },
                    "brand": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "workspaceId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "variantAxes": {},
                    "sharedData": {},
                    "createdBy": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "variants",
                    "id",
                    "organizationId",
                    "code",
                    "name",
                    "category",
                    "brand",
                    "workspaceId",
                    "variantAxes",
                    "sharedData",
                    "createdBy",
                    "createdAt",
                    "updatedAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "product-models:read"
      },
      "patch": {
        "tags": [
          "Product models"
        ],
        "operationId": "ProductModels_update",
        "summary": "Update a product model",
        "description": "API key scope `product-models:write` (or `product-models:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "brand": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 120
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "workspaceId": {
                    "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"
                      }
                    ]
                  },
                  "sharedData": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductModel"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "product-models:write"
      },
      "delete": {
        "tags": [
          "Product models"
        ],
        "operationId": "ProductModels_remove",
        "summary": "Delete a product model",
        "description": "Deletes the model; its variants stay as ungrouped products and passports.\n\nAPI key scope `product-models:write` (or `product-models:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "deleted": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "deleted"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "product-models:write"
      }
    },
    "/product-models/{id}/propagate": {
      "post": {
        "tags": [
          "Product models"
        ],
        "operationId": "ProductModels_propagate",
        "summary": "Add product model propagate",
        "description": "Writes the shared data into every variant passport where it differs, as new versions (dryRun previews).\n\nAPI key scope `product-models:write` (or `product-models:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dryRun": {
                      "type": "boolean"
                    },
                    "summary": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "number"
                      }
                    },
                    "outcomes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "sku": {
                            "type": "string"
                          },
                          "dppId": {
                            "type": "string"
                          },
                          "action": {
                            "type": "string",
                            "enum": [
                              "error",
                              "updated",
                              "unchanged",
                              "would-update",
                              "no-passport"
                            ]
                          },
                          "version": {
                            "type": "number"
                          },
                          "error": {
                            "type": "string"
                          },
                          "changes": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "path": {
                                  "type": "string"
                                },
                                "before": {},
                                "after": {}
                              },
                              "required": [
                                "path",
                                "before",
                                "after"
                              ]
                            }
                          }
                        },
                        "required": [
                          "sku",
                          "action"
                        ]
                      }
                    }
                  },
                  "required": [
                    "dryRun",
                    "summary",
                    "outcomes"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "product-models:write"
      }
    },
    "/product-models/{id}/variants": {
      "post": {
        "tags": [
          "Product models"
        ],
        "operationId": "ProductModels_generate",
        "summary": "Add product model variants",
        "description": "Creates the missing variants of a value matrix (colour x size ...), each with its product and passport.\n\nAPI key scope `product-models:write` (or `product-models:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "values": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {
                      "minItems": 1,
                      "maxItems": 50,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60
                      }
                    }
                  },
                  "skuPattern": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "namePattern": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "gtins": {
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "pattern": "^\\d{8}$|^\\d{12,14}$"
                    }
                  },
                  "createPassports": {
                    "default": true,
                    "type": "boolean"
                  }
                },
                "required": [
                  "values",
                  "skuPattern",
                  "createPassports"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "summary": {
                      "type": "object",
                      "properties": {
                        "combinations": {
                          "type": "number"
                        },
                        "created": {
                          "type": "number"
                        },
                        "existing": {
                          "type": "number"
                        },
                        "errors": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "combinations",
                        "created",
                        "existing",
                        "errors"
                      ]
                    },
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "attributes": {
                            "type": "object",
                            "additionalProperties": {
                              "type": "string"
                            }
                          },
                          "sku": {
                            "type": "string"
                          },
                          "outcome": {
                            "type": "string",
                            "enum": [
                              "error",
                              "created",
                              "exists"
                            ]
                          },
                          "productId": {
                            "type": "string"
                          },
                          "dppId": {
                            "type": "string"
                          },
                          "error": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "attributes",
                          "sku",
                          "outcome"
                        ]
                      }
                    }
                  },
                  "required": [
                    "summary",
                    "results"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "product-models:write"
      }
    },
    "/product-models/{id}/variants/{productId}": {
      "delete": {
        "tags": [
          "Product models"
        ],
        "operationId": "ProductModels_unlink",
        "summary": "Delete product model variants",
        "description": "API key scope `product-models:write` (or `product-models:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "unlinked": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "unlinked"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "product-models:write"
      }
    },
    "/product-models/{id}/variants/link": {
      "post": {
        "tags": [
          "Product models"
        ],
        "operationId": "ProductModels_link",
        "summary": "Add product model variants link",
        "description": "Makes an existing product of the same category a variant of this model.\n\nAPI key scope `product-models:write` (or `product-models:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "linked": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "linked"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "product-models:write"
      }
    },
    "/products": {
      "get": {
        "tags": [
          "Products"
        ],
        "operationId": "Products_list",
        "summary": "List products",
        "description": "The catalogue, newest first: at most LIST_MAX rows per request; page with `limit` and `offset`.\n\nAPI key scope `products:read` (or `products:*`, `*`).",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Product"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "products:read"
      },
      "post": {
        "tags": [
          "Products"
        ],
        "operationId": "Products_create",
        "summary": "Create a product",
        "description": "API key scope `products:write` (or `products:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 2
                  },
                  "sku": {
                    "type": "string",
                    "minLength": 1
                  },
                  "gtin": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 14
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "category": {
                    "type": "string",
                    "enum": [
                      "battery",
                      "textile",
                      "electronics",
                      "furniture",
                      "construction",
                      "chemicals",
                      "food-contact",
                      "packaging",
                      "automotive",
                      "cosmetics",
                      "medical-devices",
                      "agriculture",
                      "tyres",
                      "metals",
                      "toys",
                      "appliances",
                      "footwear"
                    ]
                  },
                  "brand": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "description": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 2000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "manufacturerName": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "manufacturerCountry": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 2,
                        "maxLength": 2
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "metadata": {
                    "type": "object",
                    "properties": {
                      "imageUrl": {
                        "anyOf": [
                          {
                            "type": "string",
                            "const": ""
                          },
                          {
                            "type": "string",
                            "maxLength": 2048,
                            "format": "uri"
                          }
                        ]
                      },
                      "modelNumber": {
                        "type": "string",
                        "maxLength": 100
                      },
                      "manufacturerDuns": {
                        "type": "string",
                        "maxLength": 30
                      },
                      "importer": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "maxLength": 180
                          },
                          "country": {
                            "anyOf": [
                              {
                                "type": "string",
                                "pattern": "^[A-Z]{2}$"
                              },
                              {
                                "type": "string",
                                "const": ""
                              }
                            ]
                          },
                          "eori": {
                            "type": "string",
                            "maxLength": 40
                          }
                        },
                        "additionalProperties": false
                      },
                      "authorizedRepresentative": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "maxLength": 180
                          },
                          "country": {
                            "anyOf": [
                              {
                                "type": "string",
                                "pattern": "^[A-Z]{2}$"
                              },
                              {
                                "type": "string",
                                "const": ""
                              }
                            ]
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  },
                  "workspaceId": {
                    "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"
                      }
                    ]
                  }
                },
                "required": [
                  "name",
                  "sku",
                  "category"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Product2"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "products:write"
      }
    },
    "/products/{id}": {
      "get": {
        "tags": [
          "Products"
        ],
        "operationId": "Products_get",
        "summary": "Get a product",
        "description": "API key scope `products:read` (or `products:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "products:read"
      },
      "delete": {
        "tags": [
          "Products"
        ],
        "operationId": "Products_remove",
        "summary": "Delete a product",
        "description": "Delete a product. Allowed only while none of its passports was ever published; its draft passports are deleted with it.\n\nAPI key scope `products:write` (or `products:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "deleted": {
                      "type": "boolean"
                    },
                    "id": {
                      "type": "string"
                    },
                    "draftPassportsDeleted": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "deleted",
                    "id",
                    "draftPassportsDeleted"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "products:write"
      },
      "patch": {
        "tags": [
          "Products"
        ],
        "operationId": "Products_update",
        "summary": "Update a product",
        "description": "API key scope `products:write` (or `products:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 2
                  },
                  "sku": {
                    "type": "string",
                    "minLength": 1
                  },
                  "gtin": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 14
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "category": {
                    "type": "string",
                    "enum": [
                      "battery",
                      "textile",
                      "electronics",
                      "furniture",
                      "construction",
                      "chemicals",
                      "food-contact",
                      "packaging",
                      "automotive",
                      "cosmetics",
                      "medical-devices",
                      "agriculture",
                      "tyres",
                      "metals",
                      "toys",
                      "appliances",
                      "footwear"
                    ]
                  },
                  "brand": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "description": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 2000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "manufacturerName": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "manufacturerCountry": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 2,
                        "maxLength": 2
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "metadata": {
                    "type": "object",
                    "properties": {
                      "imageUrl": {
                        "anyOf": [
                          {
                            "type": "string",
                            "const": ""
                          },
                          {
                            "type": "string",
                            "maxLength": 2048,
                            "format": "uri"
                          }
                        ]
                      },
                      "modelNumber": {
                        "type": "string",
                        "maxLength": 100
                      },
                      "manufacturerDuns": {
                        "type": "string",
                        "maxLength": 30
                      },
                      "importer": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "maxLength": 180
                          },
                          "country": {
                            "anyOf": [
                              {
                                "type": "string",
                                "pattern": "^[A-Z]{2}$"
                              },
                              {
                                "type": "string",
                                "const": ""
                              }
                            ]
                          },
                          "eori": {
                            "type": "string",
                            "maxLength": 40
                          }
                        },
                        "additionalProperties": false
                      },
                      "authorizedRepresentative": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "maxLength": 180
                          },
                          "country": {
                            "anyOf": [
                              {
                                "type": "string",
                                "pattern": "^[A-Z]{2}$"
                              },
                              {
                                "type": "string",
                                "const": ""
                              }
                            ]
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  },
                  "workspaceId": {
                    "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"
                      }
                    ]
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "products:write"
      }
    },
    "/products/bulk": {
      "post": {
        "tags": [
          "Products"
        ],
        "operationId": "Products_bulk",
        "summary": "Create product bulk",
        "description": "Update shared fields on, or delete, up to 200 products; every product is reported separately.\n\nAPI key scope `products:write` (or `products:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "action": {
                    "type": "string",
                    "enum": [
                      "update",
                      "delete"
                    ]
                  },
                  "fields": {
                    "type": "object",
                    "additionalProperties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "action": {
                      "type": "string"
                    },
                    "succeeded": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "failed": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "error": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "error"
                        ]
                      }
                    },
                    "succeededCount": {
                      "type": "number"
                    },
                    "failedCount": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "action",
                    "succeeded",
                    "failed",
                    "succeededCount",
                    "failedCount"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "products:write"
      }
    },
    "/products/categories": {
      "get": {
        "tags": [
          "Products"
        ],
        "operationId": "Products_categories",
        "summary": "List product categories",
        "description": "API key scope `products:read` (or `products:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "key": {
                        "type": "string"
                      },
                      "label": {
                        "type": "string"
                      },
                      "enabled": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "key",
                      "label",
                      "enabled"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "products:read"
      }
    },
    "/products/check-duplicates": {
      "post": {
        "tags": [
          "Products"
        ],
        "operationId": "Products_checkDuplicates",
        "summary": "Check duplicates products",
        "description": "API key scope `products:write` (or `products:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "sku": {
                    "type": "string"
                  },
                  "gtin": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "modelNumber": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "excludeId": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "duplicates": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "sku": {
                            "type": "string"
                          },
                          "gtin": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "reason": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "sku",
                          "gtin",
                          "reason"
                        ]
                      }
                    },
                    "similar": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "sku": {
                            "type": "string"
                          },
                          "similarity": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "sku",
                          "similarity"
                        ]
                      }
                    },
                    "hasBlockingDuplicate": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "duplicates",
                    "similar",
                    "hasBlockingDuplicate"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "products:write"
      }
    },
    "/products/import/csv": {
      "post": {
        "tags": [
          "Products"
        ],
        "operationId": "Products_importCsv",
        "summary": "Create product import csv",
        "description": "Import products from mapped CSV rows. With `dryRun: true` it reports the outcome of every row and the plan-limit check without writing anything.\n\nAPI key scope `products:write` (or `products:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CsvImportRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dryRun": {
                      "type": "boolean"
                    },
                    "summary": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "create": {
                          "type": "number"
                        },
                        "update": {
                          "type": "number"
                        },
                        "skip": {
                          "type": "number"
                        },
                        "error": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "total",
                        "create",
                        "update",
                        "skip",
                        "error"
                      ]
                    },
                    "plan": {
                      "$ref": "#/components/schemas/PlanCheck"
                    },
                    "rows": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/RowOutcome"
                      }
                    }
                  },
                  "required": [
                    "dryRun",
                    "summary",
                    "plan",
                    "rows"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "products:write"
      }
    },
    "/products/search": {
      "get": {
        "tags": [
          "Products"
        ],
        "operationId": "Products_search",
        "summary": "Search products",
        "description": "Search the catalogue with filters and pagination. Returns `{ items, total, totalAll, page, pageSize, categories }`.\n\nAPI key scope `products:read` (or `products:*`, `*`).",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Product"
                      }
                    },
                    "total": {
                      "type": "number"
                    },
                    "totalAll": {
                      "type": "number"
                    },
                    "page": {
                      "type": "number"
                    },
                    "pageSize": {
                      "type": "number"
                    },
                    "categories": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "items",
                    "total",
                    "totalAll",
                    "page",
                    "pageSize",
                    "categories"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "products:read"
      }
    },
    "/public/carriers/{id}/scan": {
      "post": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicCarriers_scan",
        "summary": "Add public carrier scan",
        "description": "Public: no API key needed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "country": {
                    "type": "string"
                  },
                  "device": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScanEvent"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/document-links/{token}": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicDocuments_shared",
        "summary": "Get a public document link",
        "description": "A share link issued by POST /documents/{id}/signed-url: anyone holding the link can download the file until it expires. The link names the document's hash, so a replaced file stops resolving.\n\nPublic: no API key needed.",
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/documents/{id}/file": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicDocuments_download",
        "summary": "Get public document file",
        "description": "Public: no API key needed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/dpp/{id}": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicDpp_get",
        "summary": "Get a public passport",
        "description": "Public: no API key needed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accept-language",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "regulatory": {
                      "type": "object",
                      "properties": {
                        "basis": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/PackRef"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "obligations": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/PublicObligation"
                          }
                        }
                      },
                      "required": [
                        "basis",
                        "obligations"
                      ]
                    },
                    "disclosedPaths": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "redactedPaths": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "defaultRedactedPaths": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "translatedPaths": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "translationReleasedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "product": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "description": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "variant": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "string"
                          }
                        },
                        "id": {
                          "type": "string"
                        },
                        "sku": {
                          "type": "string"
                        },
                        "gtin": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "category": {
                          "type": "string"
                        },
                        "brand": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "manufacturerName": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "manufacturerCountry": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "metadata": {
                          "type": "object",
                          "additionalProperties": {}
                        }
                      },
                      "required": [
                        "name",
                        "description",
                        "id",
                        "sku",
                        "gtin",
                        "category",
                        "brand",
                        "manufacturerName",
                        "manufacturerCountry",
                        "metadata"
                      ]
                    },
                    "data": {},
                    "version": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "owner": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "slug": {
                              "type": "string"
                            },
                            "branding": {
                              "type": [
                                "object",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "name",
                            "slug",
                            "branding"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "issuerIdentity": {
                      "type": "object",
                      "properties": {
                        "did": {
                          "type": "string"
                        },
                        "verified": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "scheme": {
                                "type": "string"
                              },
                              "value": {
                                "type": "string"
                              },
                              "registryName": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "registry": {
                                "type": "string"
                              },
                              "verifiedAt": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "format": "date-time"
                              }
                            },
                            "required": [
                              "scheme",
                              "value",
                              "registryName",
                              "registry",
                              "verifiedAt"
                            ]
                          }
                        }
                      },
                      "required": [
                        "did",
                        "verified"
                      ]
                    },
                    "productModel": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            },
                            "axes": {}
                          },
                          "required": [
                            "code",
                            "name",
                            "axes"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "locale": {
                      "type": "string"
                    },
                    "interfaceLocale": {
                      "type": "string"
                    },
                    "sourceLocale": {
                      "type": "string"
                    },
                    "languages": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/LocaleInfo"
                      }
                    },
                    "availableLocales": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "translationStatus": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "suspension": {
                      "type": "object",
                      "properties": {
                        "suspended": {
                          "type": "boolean"
                        },
                        "suspendedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "reason": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "notice": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "suspended",
                        "suspendedAt",
                        "reason",
                        "notice"
                      ]
                    },
                    "retirement": {
                      "type": "object",
                      "properties": {
                        "retired": {
                          "type": "boolean"
                        },
                        "notice": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "retired",
                        "notice"
                      ]
                    },
                    "withdrawal": {
                      "type": "object",
                      "properties": {
                        "recalled": {
                          "type": "boolean"
                        },
                        "recalledAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "notice": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "recalled",
                        "recalledAt",
                        "notice"
                      ]
                    },
                    "id": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "lifecycleState": {
                      "type": "string"
                    },
                    "publishedMarkets": {
                      "anyOf": [
                        {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "publishedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "availability": {
                      "type": "object",
                      "properties": {
                        "until": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "floorDays": {
                          "type": "number"
                        },
                        "basis": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "until",
                        "floorDays",
                        "basis"
                      ]
                    }
                  },
                  "required": [
                    "regulatory",
                    "translatedPaths",
                    "product",
                    "data",
                    "version",
                    "owner",
                    "issuerIdentity",
                    "productModel",
                    "locale",
                    "interfaceLocale",
                    "sourceLocale",
                    "languages",
                    "availableLocales",
                    "translationStatus",
                    "id",
                    "status",
                    "lifecycleState",
                    "publishedMarkets",
                    "publishedAt",
                    "availability"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/dpp/{id}/aas.json": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicAas_export",
        "summary": "Get public passport aas.json",
        "description": "Asset Administration Shell of a published passport, carrying exactly what the public passport shows.\n\nPublic: no API key needed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "assetAdministrationShells": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "modelType": {
                            "type": "string"
                          },
                          "id": {
                            "type": "string"
                          },
                          "idShort": {
                            "type": "string"
                          },
                          "assetInformation": {
                            "type": "object",
                            "properties": {
                              "specificAssetIds": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "value": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "name",
                                    "value"
                                  ]
                                }
                              },
                              "assetKind": {
                                "type": "string"
                              },
                              "globalAssetId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "assetKind",
                              "globalAssetId"
                            ]
                          },
                          "submodels": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "type": "string"
                                },
                                "keys": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string"
                                      },
                                      "value": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "type",
                                      "value"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "type",
                                "keys"
                              ]
                            }
                          }
                        },
                        "required": [
                          "modelType",
                          "id",
                          "idShort",
                          "assetInformation",
                          "submodels"
                        ]
                      }
                    },
                    "submodels": {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "modelType": {
                                "type": "string"
                              },
                              "id": {
                                "type": "string"
                              },
                              "idShort": {
                                "type": "string"
                              },
                              "kind": {
                                "type": "string"
                              },
                              "semanticId": {
                                "type": "object",
                                "properties": {
                                  "type": {
                                    "type": "string",
                                    "enum": [
                                      "ExternalReference",
                                      "ModelReference"
                                    ]
                                  },
                                  "keys": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string"
                                        },
                                        "value": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "value"
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "type",
                                  "keys"
                                ]
                              },
                              "submodelElements": {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "modelType": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "modelType"
                                      ],
                                      "additionalProperties": {}
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              }
                            },
                            "required": [
                              "modelType",
                              "id",
                              "idShort",
                              "kind",
                              "semanticId",
                              "submodelElements"
                            ]
                          },
                          {
                            "type": "object",
                            "properties": {
                              "modelType": {
                                "type": "string"
                              },
                              "id": {
                                "type": "string"
                              },
                              "idShort": {
                                "type": "string"
                              },
                              "kind": {
                                "type": "string"
                              },
                              "semanticId": {
                                "type": "object",
                                "properties": {
                                  "type": {
                                    "type": "string",
                                    "enum": [
                                      "ExternalReference",
                                      "ModelReference"
                                    ]
                                  },
                                  "keys": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string"
                                        },
                                        "value": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "value"
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "type",
                                  "keys"
                                ]
                              },
                              "submodelElements": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "modelType": {
                                      "type": "string"
                                    },
                                    "idShort": {
                                      "type": "string"
                                    },
                                    "orderRelevant": {
                                      "type": "boolean"
                                    },
                                    "typeValueListElement": {
                                      "type": "string"
                                    },
                                    "value": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "modelType": {
                                            "type": "string"
                                          },
                                          "value": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "modelType": {
                                                  "type": "string"
                                                }
                                              },
                                              "required": [
                                                "modelType"
                                              ],
                                              "additionalProperties": {}
                                            }
                                          }
                                        },
                                        "required": [
                                          "modelType",
                                          "value"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "modelType",
                                    "idShort",
                                    "orderRelevant",
                                    "typeValueListElement",
                                    "value"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "modelType",
                              "id",
                              "idShort",
                              "kind",
                              "semanticId",
                              "submodelElements"
                            ]
                          }
                        ]
                      }
                    },
                    "conceptDescriptions": {
                      "type": "array",
                      "items": {}
                    }
                  },
                  "required": [
                    "assetAdministrationShells",
                    "submodels",
                    "conceptDescriptions"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/dpp/{id}/components": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicComponents_publicComponents",
        "summary": "Get public passport components",
        "description": "Public components of a published passport, linked to their own published passports; masses and suppliers are not published.\n\nPublic: no API key needed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "components": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {},
                          "role": {},
                          "quantity": {
                            "type": "number"
                          },
                          "passport": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "id": {},
                                  "productName": {},
                                  "gtin": {},
                                  "status": {}
                                },
                                "required": [
                                  "id",
                                  "productName",
                                  "gtin",
                                  "status"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "externalReference": {}
                        },
                        "required": [
                          "name",
                          "role",
                          "quantity",
                          "passport",
                          "externalReference"
                        ]
                      }
                    },
                    "undisclosedComponents": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "dppId",
                    "components",
                    "undisclosedComponents"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/dpp/{id}/custody": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicCustody_statement",
        "summary": "Get public passport custody",
        "description": "A published passport's custody claims: model, its wording, scheme and claimed share.\n\nPublic: no API key needed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "statements": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "material": {},
                          "model": {},
                          "modelLabel": {
                            "type": "string"
                          },
                          "wording": {
                            "type": "string"
                          },
                          "claim": {},
                          "claimLabel": {
                            "type": "string"
                          },
                          "scheme": {},
                          "claimedSharePercent": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "material",
                          "model",
                          "modelLabel",
                          "wording",
                          "claim",
                          "claimLabel",
                          "scheme",
                          "claimedSharePercent"
                        ]
                      }
                    }
                  },
                  "required": [
                    "dppId",
                    "statements"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/dpp/{id}/display": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicDpp_display",
        "summary": "Get public passport display",
        "description": "The published passport as labelled groups, the carbon declaration and the withheld fields.\n\nPublic: no API key needed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accept-language",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "version": {},
                    "category": {
                      "type": "string"
                    },
                    "locale": {},
                    "groups": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/DisplayGroup"
                      }
                    },
                    "carbon": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/CarbonStatement"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "withheld": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/WithheldField"
                      }
                    }
                  },
                  "required": [
                    "id",
                    "version",
                    "category",
                    "locale",
                    "groups",
                    "carbon",
                    "withheld"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/dpp/{id}/documents": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicDocuments_listForDpp",
        "summary": "Get public passport documents",
        "description": "Public: no API key needed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accept-language",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "locale": {
                      "type": "string"
                    },
                    "documents": {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "title": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "id",
                              "title"
                            ]
                          },
                          {
                            "type": "object",
                            "properties": {
                              "title": {
                                "type": "string"
                              },
                              "sourceTitle": {
                                "type": "string"
                              },
                              "id": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "sourceTitle",
                              "id"
                            ]
                          }
                        ]
                      }
                    }
                  },
                  "required": [
                    "dppId",
                    "locale",
                    "documents"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/dpp/{id}/durability": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicMaterials_durability",
        "summary": "Get public passport durability",
        "description": "Public: no API key needed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "product": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "sku": {
                          "type": "string"
                        },
                        "category": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "name",
                        "sku",
                        "category"
                      ]
                    },
                    "repairability": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "score": {
                              "type": "number"
                            },
                            "class": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "coveragePercent": {
                              "type": "number"
                            },
                            "completeness": {
                              "type": "string",
                              "enum": [
                                "partial",
                                "insufficient",
                                "complete"
                              ]
                            },
                            "sparePartsYears": {
                              "type": [
                                "number",
                                "null"
                              ]
                            },
                            "softwareSupportYears": {
                              "type": [
                                "number",
                                "null"
                              ]
                            },
                            "batteryReplaceability": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "repairManualUrl": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "repairNetworkUrl": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "score",
                            "class",
                            "coveragePercent",
                            "completeness",
                            "sparePartsYears",
                            "softwareSupportYears",
                            "batteryReplaceability",
                            "repairManualUrl",
                            "repairNetworkUrl"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "recycledContent": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "weightedPercent": {
                              "type": "number"
                            },
                            "weightBasisBand": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "materials": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "weightedPercent",
                            "weightBasisBand",
                            "materials"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "criticalRawMaterials": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "material": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "strategic": {
                            "type": "boolean"
                          },
                          "recycledPercent": {
                            "type": [
                              "number",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "material",
                          "name",
                          "strategic",
                          "recycledPercent"
                        ]
                      }
                    },
                    "caveat": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "dppId",
                    "product",
                    "repairability",
                    "recycledContent",
                    "criticalRawMaterials",
                    "caveat"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/dpp/{id}/epd-summary": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicConstruction_summary",
        "summary": "Get public passport epd summary",
        "description": "Public: no API key needed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product": {
                      "type": "object",
                      "properties": {
                        "dppId": {
                          "type": "string"
                        },
                        "sku": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "name": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "category": {
                          "type": "string"
                        },
                        "declaredUnit": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "dppId",
                        "sku",
                        "name",
                        "category",
                        "declaredUnit"
                      ]
                    },
                    "headline": {
                      "type": "object",
                      "properties": {
                        "gwpTotal": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "unit": {
                          "type": "string"
                        },
                        "module": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "biogenicStorage": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "storageBasis": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "gwpTotal",
                        "unit",
                        "module",
                        "biogenicStorage",
                        "storageBasis"
                      ]
                    },
                    "indicators": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "unit": {
                            "type": "string"
                          },
                          "value": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "module": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "key",
                          "label",
                          "unit",
                          "value",
                          "module"
                        ]
                      }
                    },
                    "verification": {
                      "$ref": "#/components/schemas/ConstructionVerification"
                    },
                    "endOfLife": {
                      "type": "object",
                      "properties": {
                        "modules": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "reusePercent": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "recycledContentPercent": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "bioBasedContentPercent": {
                          "type": [
                            "number",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "modules",
                        "reusePercent",
                        "recycledContentPercent",
                        "bioBasedContentPercent"
                      ]
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "partial",
                        "declared",
                        "insufficient"
                      ]
                    },
                    "caveat": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "product",
                    "headline",
                    "indicators",
                    "verification",
                    "endOfLife",
                    "status",
                    "caveat"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/dpp/{id}/items/{serial}": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicItems_item",
        "summary": "Get public passport items",
        "description": "Public state of one item of a published passport: serial, batch and lifecycle status only.\n\nPublic: no API key needed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "serial",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "active",
                        "recalled",
                        "recycled",
                        "returned",
                        "refurbished",
                        "destroyed",
                        "sold",
                        "in_use"
                      ]
                    },
                    "serial": {
                      "type": "string"
                    },
                    "batch": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "status",
                    "serial",
                    "batch"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/dpp/{id}/label": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicChemicals_label",
        "summary": "Get public passport label",
        "description": "Public: no API key needed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "product": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "sku": {
                          "type": "string"
                        },
                        "category": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "name",
                        "sku",
                        "category"
                      ]
                    },
                    "classified": {
                      "type": "boolean"
                    },
                    "labelComparison": {
                      "$ref": "#/components/schemas/LabelComparison"
                    },
                    "signalWord": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "enum": [
                        "DANGER",
                        "WARNING",
                        null
                      ]
                    },
                    "pictograms": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "code",
                          "label"
                        ]
                      }
                    },
                    "hazardStatements": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string"
                          },
                          "text": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "code",
                          "text"
                        ]
                      }
                    },
                    "precautionaryStatements": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string"
                          },
                          "text": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "code",
                          "text"
                        ]
                      }
                    },
                    "ufi": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "unresolvedComponents": {
                      "type": "number"
                    },
                    "method": {
                      "type": "string"
                    },
                    "disclaimer": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "dppId",
                    "product",
                    "classified",
                    "labelComparison",
                    "signalWord",
                    "pictograms",
                    "hazardStatements",
                    "precautionaryStatements",
                    "ufi",
                    "unresolvedComponents",
                    "method",
                    "disclaimer"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/dpp/{id}/lease": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicDpp_lease",
        "summary": "Lease a public passport",
        "description": "Public lease status (asset is on lease, type and end date only).\n\nPublic: no API key needed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "onLease": {
                          "type": "boolean"
                        },
                        "lesseeType": {
                          "type": "null"
                        },
                        "endDate": {
                          "type": "null"
                        },
                        "contractRef": {
                          "type": "null"
                        }
                      },
                      "required": [
                        "onLease",
                        "lesseeType",
                        "endDate",
                        "contractRef"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "onLease": {
                          "type": "boolean"
                        },
                        "lesseeType": {
                          "type": "string"
                        },
                        "endDate": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "contractRef": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "onLease",
                        "lesseeType",
                        "endDate",
                        "contractRef"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/dpp/{id}/lineage": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicDpp_lineage",
        "summary": "Get public passport lineage",
        "description": "Public remanufacturing lineage: structure and dates, never payloads.\n\nPublic: no API key needed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "derivation": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "ancestry": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "schemaId": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "publishedVersion": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "derivation": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "createdAt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "string",
                                "format": "date-time"
                              }
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "schemaId",
                          "status",
                          "publishedVersion",
                          "derivation",
                          "createdAt"
                        ]
                      }
                    },
                    "descendants": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "schemaId": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "publishedVersion": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "derivation": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "createdAt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "string",
                                "format": "date-time"
                              }
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "schemaId",
                          "status",
                          "publishedVersion",
                          "derivation",
                          "createdAt"
                        ]
                      }
                    },
                    "depth": {
                      "type": "number"
                    },
                    "unpublishedRelatives": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "dppId",
                    "derivation",
                    "ancestry",
                    "descendants",
                    "depth",
                    "unpublishedRelatives"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/dpp/{id}/material-passport": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicDpp_materialPassport",
        "summary": "Get public passport material passport",
        "description": "Recycler / dismantler material passport for a published DPP.\n\nPublic: no API key needed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "sku": {
                          "type": "string"
                        },
                        "gtin": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "category": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "name",
                        "sku",
                        "gtin",
                        "category"
                      ]
                    },
                    "materials": {
                      "anyOf": [
                        {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": {}
                          }
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "totalDeclaredMassKg": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "totalDeclaredMassBand": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "massBasis": {
                      "type": "string",
                      "enum": [
                        "none",
                        "declared-mass",
                        "declared-share"
                      ]
                    },
                    "repairability": {},
                    "endOfLife": {},
                    "environmental": {},
                    "documents": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string"
                          },
                          "title": {
                            "type": "string"
                          },
                          "accessLevel": {
                            "type": "string"
                          },
                          "sha256": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "type",
                          "title",
                          "accessLevel",
                          "sha256"
                        ]
                      }
                    },
                    "note": {
                      "type": "string"
                    },
                    "withdrawal": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "dppId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "product",
                    "materials",
                    "totalDeclaredMassKg",
                    "totalDeclaredMassBand",
                    "massBasis",
                    "repairability",
                    "endOfLife",
                    "environmental",
                    "documents",
                    "note",
                    "dppId",
                    "status"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/dpp/{id}/ownership": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicDpp_ownership",
        "summary": "Get public passport ownership",
        "description": "Privacy-preserving custody chain (owner categories + dates, no personal data).\n\nPublic: no API key needed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "transfers": {
                      "type": "number"
                    },
                    "currentOwnerType": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chain": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "step": {
                            "type": "number"
                          },
                          "ownerType": {},
                          "country": {},
                          "acquiredAt": {},
                          "releasedAt": {},
                          "refHash": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "step",
                          "ownerType",
                          "country",
                          "acquiredAt",
                          "releasedAt",
                          "refHash"
                        ]
                      }
                    }
                  },
                  "required": [
                    "dppId",
                    "transfers",
                    "currentOwnerType",
                    "chain"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/dpp/{id}/qr.png": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicChannel_qr",
        "summary": "Get public passport qr.png",
        "description": "Public: no API key needed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/dpp/{id}/substances": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicSubstances_disclosure",
        "summary": "Get public passport substances",
        "description": "Public: no API key needed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {
                      "type": "string"
                    },
                    "product": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "sku": {
                          "type": "string"
                        },
                        "category": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "name",
                        "sku",
                        "category"
                      ]
                    },
                    "containsSvhc": {
                      "type": "boolean"
                    },
                    "candidateListVersion": {
                      "type": "string"
                    },
                    "candidateListAge": {
                      "$ref": "#/components/schemas/SvhcListAge"
                    },
                    "thresholdPercent": {
                      "type": "number"
                    },
                    "substances": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "cas": {
                            "type": "string"
                          },
                          "concentrationRange": {
                            "type": "string"
                          },
                          "location": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "reasonForInclusion": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "name",
                          "cas",
                          "concentrationRange",
                          "location",
                          "reasonForInclusion"
                        ]
                      }
                    },
                    "scipNumber": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "safeUse": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "requestedUnder": {
                      "type": "string"
                    },
                    "responseTimeDays": {
                      "type": "number"
                    },
                    "warnings": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "disclaimer": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "dppId",
                    "product",
                    "containsSvhc",
                    "candidateListVersion",
                    "candidateListAge",
                    "thresholdPercent",
                    "substances",
                    "scipNumber",
                    "safeUse",
                    "requestedUnder",
                    "responseTimeDays",
                    "warnings",
                    "disclaimer"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/dpp/{id}/widget": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicChannel_widget",
        "summary": "Get public passport widget",
        "description": "Public: no API key needed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WidgetPayload"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/gs1/01/{gtin}": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicDigitalLink_resolve",
        "summary": "Get public GS1 setting 01",
        "description": "GS1 Digital Link `01` application identifier: /01/{gtin} resolves the published passport.\n\nPublic: no API key needed.",
        "parameters": [
          {
            "name": "gtin",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "serial",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "batch",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "linkType",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accept",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "anchor": {
                          "type": "string"
                        },
                        "linkset": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "gs1:recallStatus": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "href": {
                                      "type": "string"
                                    },
                                    "title": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "type": "string"
                                    },
                                    "hreflang": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "linkType": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "href",
                                    "title",
                                    "type",
                                    "hreflang",
                                    "linkType"
                                  ]
                                }
                              },
                              "anchor": {
                                "type": "string"
                              },
                              "gs1:pip": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "href": {
                                      "type": "string"
                                    },
                                    "title": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "type": "string"
                                    },
                                    "hreflang": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "linkType": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "href",
                                    "title",
                                    "type",
                                    "hreflang",
                                    "linkType"
                                  ]
                                }
                              },
                              "gs1:productSustainabilityInfo": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "href": {
                                      "type": "string"
                                    },
                                    "title": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "type": "string"
                                    },
                                    "hreflang": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "linkType": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "href",
                                    "title",
                                    "type",
                                    "hreflang",
                                    "linkType"
                                  ]
                                }
                              },
                              "gs1:traceability": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "href": {
                                      "type": "string"
                                    },
                                    "title": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "type": "string"
                                    },
                                    "hreflang": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "linkType": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "href",
                                    "title",
                                    "type",
                                    "hreflang",
                                    "linkType"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "anchor",
                              "gs1:pip",
                              "gs1:productSustainabilityInfo",
                              "gs1:traceability"
                            ]
                          }
                        }
                      },
                      "required": [
                        "anchor",
                        "linkset"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "product": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "sku": {
                              "type": "string"
                            },
                            "brand": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "category": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "name",
                            "sku",
                            "brand",
                            "category"
                          ]
                        },
                        "carrier": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "type": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "id",
                                "type"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "passportUrl": {
                          "type": "string"
                        },
                        "digitalLink": {
                          "type": "string"
                        },
                        "item": {
                          "type": "object",
                          "properties": {
                            "serial": {
                              "type": "string"
                            },
                            "batch": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "status": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "serial",
                            "batch",
                            "status"
                          ]
                        },
                        "recalled": {
                          "type": "boolean"
                        },
                        "gtin": {
                          "type": "string"
                        },
                        "batch": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "serial": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "resolution": {
                          "type": "string",
                          "enum": [
                            "gtin",
                            "serial",
                            "batch",
                            "batch+serial"
                          ]
                        },
                        "dppId": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "product",
                        "carrier",
                        "passportUrl",
                        "digitalLink",
                        "gtin",
                        "batch",
                        "serial",
                        "resolution",
                        "dppId",
                        "status"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/gs1/01/{gtin}/10/{batch}": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicDigitalLink_resolveBatch",
        "summary": "Get public GS1 setting 01 10",
        "description": "GS1 Digital Link `01/10` (batch) and `01/10/21` (batch + item) qualifier paths.\n\nPublic: no API key needed.",
        "parameters": [
          {
            "name": "gtin",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "batch",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "linkType",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accept",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "anchor": {
                          "type": "string"
                        },
                        "linkset": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "gs1:recallStatus": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "href": {
                                      "type": "string"
                                    },
                                    "title": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "type": "string"
                                    },
                                    "hreflang": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "linkType": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "href",
                                    "title",
                                    "type",
                                    "hreflang",
                                    "linkType"
                                  ]
                                }
                              },
                              "anchor": {
                                "type": "string"
                              },
                              "gs1:pip": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "href": {
                                      "type": "string"
                                    },
                                    "title": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "type": "string"
                                    },
                                    "hreflang": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "linkType": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "href",
                                    "title",
                                    "type",
                                    "hreflang",
                                    "linkType"
                                  ]
                                }
                              },
                              "gs1:productSustainabilityInfo": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "href": {
                                      "type": "string"
                                    },
                                    "title": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "type": "string"
                                    },
                                    "hreflang": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "linkType": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "href",
                                    "title",
                                    "type",
                                    "hreflang",
                                    "linkType"
                                  ]
                                }
                              },
                              "gs1:traceability": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "href": {
                                      "type": "string"
                                    },
                                    "title": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "type": "string"
                                    },
                                    "hreflang": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "linkType": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "href",
                                    "title",
                                    "type",
                                    "hreflang",
                                    "linkType"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "anchor",
                              "gs1:pip",
                              "gs1:productSustainabilityInfo",
                              "gs1:traceability"
                            ]
                          }
                        }
                      },
                      "required": [
                        "anchor",
                        "linkset"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "product": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "sku": {
                              "type": "string"
                            },
                            "brand": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "category": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "name",
                            "sku",
                            "brand",
                            "category"
                          ]
                        },
                        "carrier": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "type": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "id",
                                "type"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "passportUrl": {
                          "type": "string"
                        },
                        "digitalLink": {
                          "type": "string"
                        },
                        "item": {
                          "type": "object",
                          "properties": {
                            "serial": {
                              "type": "string"
                            },
                            "batch": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "status": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "serial",
                            "batch",
                            "status"
                          ]
                        },
                        "recalled": {
                          "type": "boolean"
                        },
                        "gtin": {
                          "type": "string"
                        },
                        "batch": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "serial": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "resolution": {
                          "type": "string",
                          "enum": [
                            "gtin",
                            "serial",
                            "batch",
                            "batch+serial"
                          ]
                        },
                        "dppId": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "product",
                        "carrier",
                        "passportUrl",
                        "digitalLink",
                        "gtin",
                        "batch",
                        "serial",
                        "resolution",
                        "dppId",
                        "status"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/gs1/01/{gtin}/10/{batch}/21/{serial}": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicDigitalLink_resolveBatchSerial",
        "summary": "Get public GS1 setting 01 10 21",
        "description": "Public: no API key needed.",
        "parameters": [
          {
            "name": "gtin",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "batch",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "serial",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "linkType",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accept",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "anchor": {
                          "type": "string"
                        },
                        "linkset": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "gs1:recallStatus": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "href": {
                                      "type": "string"
                                    },
                                    "title": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "type": "string"
                                    },
                                    "hreflang": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "linkType": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "href",
                                    "title",
                                    "type",
                                    "hreflang",
                                    "linkType"
                                  ]
                                }
                              },
                              "anchor": {
                                "type": "string"
                              },
                              "gs1:pip": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "href": {
                                      "type": "string"
                                    },
                                    "title": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "type": "string"
                                    },
                                    "hreflang": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "linkType": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "href",
                                    "title",
                                    "type",
                                    "hreflang",
                                    "linkType"
                                  ]
                                }
                              },
                              "gs1:productSustainabilityInfo": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "href": {
                                      "type": "string"
                                    },
                                    "title": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "type": "string"
                                    },
                                    "hreflang": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "linkType": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "href",
                                    "title",
                                    "type",
                                    "hreflang",
                                    "linkType"
                                  ]
                                }
                              },
                              "gs1:traceability": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "href": {
                                      "type": "string"
                                    },
                                    "title": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "type": "string"
                                    },
                                    "hreflang": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "linkType": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "href",
                                    "title",
                                    "type",
                                    "hreflang",
                                    "linkType"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "anchor",
                              "gs1:pip",
                              "gs1:productSustainabilityInfo",
                              "gs1:traceability"
                            ]
                          }
                        }
                      },
                      "required": [
                        "anchor",
                        "linkset"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "product": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "sku": {
                              "type": "string"
                            },
                            "brand": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "category": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "name",
                            "sku",
                            "brand",
                            "category"
                          ]
                        },
                        "carrier": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "type": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "id",
                                "type"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "passportUrl": {
                          "type": "string"
                        },
                        "digitalLink": {
                          "type": "string"
                        },
                        "item": {
                          "type": "object",
                          "properties": {
                            "serial": {
                              "type": "string"
                            },
                            "batch": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "status": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "serial",
                            "batch",
                            "status"
                          ]
                        },
                        "recalled": {
                          "type": "boolean"
                        },
                        "gtin": {
                          "type": "string"
                        },
                        "batch": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "serial": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "resolution": {
                          "type": "string",
                          "enum": [
                            "gtin",
                            "serial",
                            "batch",
                            "batch+serial"
                          ]
                        },
                        "dppId": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "product",
                        "carrier",
                        "passportUrl",
                        "digitalLink",
                        "gtin",
                        "batch",
                        "serial",
                        "resolution",
                        "dppId",
                        "status"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/gs1/01/{gtin}/21/{serial}": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicDigitalLink_resolveSerial",
        "summary": "Get public GS1 setting 01 21",
        "description": "GS1 Digital Link `01/21` (item + serial) resolution.\n\nPublic: no API key needed.",
        "parameters": [
          {
            "name": "gtin",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "serial",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "linkType",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accept",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "anchor": {
                          "type": "string"
                        },
                        "linkset": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "gs1:recallStatus": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "href": {
                                      "type": "string"
                                    },
                                    "title": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "type": "string"
                                    },
                                    "hreflang": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "linkType": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "href",
                                    "title",
                                    "type",
                                    "hreflang",
                                    "linkType"
                                  ]
                                }
                              },
                              "anchor": {
                                "type": "string"
                              },
                              "gs1:pip": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "href": {
                                      "type": "string"
                                    },
                                    "title": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "type": "string"
                                    },
                                    "hreflang": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "linkType": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "href",
                                    "title",
                                    "type",
                                    "hreflang",
                                    "linkType"
                                  ]
                                }
                              },
                              "gs1:productSustainabilityInfo": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "href": {
                                      "type": "string"
                                    },
                                    "title": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "type": "string"
                                    },
                                    "hreflang": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "linkType": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "href",
                                    "title",
                                    "type",
                                    "hreflang",
                                    "linkType"
                                  ]
                                }
                              },
                              "gs1:traceability": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "href": {
                                      "type": "string"
                                    },
                                    "title": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "type": "string"
                                    },
                                    "hreflang": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "linkType": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "href",
                                    "title",
                                    "type",
                                    "hreflang",
                                    "linkType"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "anchor",
                              "gs1:pip",
                              "gs1:productSustainabilityInfo",
                              "gs1:traceability"
                            ]
                          }
                        }
                      },
                      "required": [
                        "anchor",
                        "linkset"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "product": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "sku": {
                              "type": "string"
                            },
                            "brand": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "category": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "name",
                            "sku",
                            "brand",
                            "category"
                          ]
                        },
                        "carrier": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "type": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "id",
                                "type"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "passportUrl": {
                          "type": "string"
                        },
                        "digitalLink": {
                          "type": "string"
                        },
                        "item": {
                          "type": "object",
                          "properties": {
                            "serial": {
                              "type": "string"
                            },
                            "batch": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "status": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "serial",
                            "batch",
                            "status"
                          ]
                        },
                        "recalled": {
                          "type": "boolean"
                        },
                        "gtin": {
                          "type": "string"
                        },
                        "batch": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "serial": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "resolution": {
                          "type": "string",
                          "enum": [
                            "gtin",
                            "serial",
                            "batch",
                            "batch+serial"
                          ]
                        },
                        "dppId": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "product",
                        "carrier",
                        "passportUrl",
                        "digitalLink",
                        "gtin",
                        "batch",
                        "serial",
                        "resolution",
                        "dppId",
                        "status"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/gs1/01/{gtin}/linkset": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicDigitalLink_linkset",
        "summary": "Get public GS1 setting 01 linkset",
        "description": "The GS1 linkset for a GTIN: every link type this resolver can offer for that identifier. A conformant resolver answers \"what else is there for this product?\" with a linkset rather than a single redirect, which is how a recycler's tool or a customs system finds the traceability and EPCIS endpoints without being told about them out of band.\n\nPublic: no API key needed.",
        "parameters": [
          {
            "name": "gtin",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "serial",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "batch",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "anchor": {
                      "type": "string"
                    },
                    "linkset": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "gs1:recallStatus": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "href": {
                                  "type": "string"
                                },
                                "title": {
                                  "type": "string"
                                },
                                "type": {
                                  "type": "string"
                                },
                                "hreflang": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "linkType": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "href",
                                "title",
                                "type",
                                "hreflang",
                                "linkType"
                              ]
                            }
                          },
                          "anchor": {
                            "type": "string"
                          },
                          "gs1:pip": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "href": {
                                  "type": "string"
                                },
                                "title": {
                                  "type": "string"
                                },
                                "type": {
                                  "type": "string"
                                },
                                "hreflang": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "linkType": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "href",
                                "title",
                                "type",
                                "hreflang",
                                "linkType"
                              ]
                            }
                          },
                          "gs1:productSustainabilityInfo": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "href": {
                                  "type": "string"
                                },
                                "title": {
                                  "type": "string"
                                },
                                "type": {
                                  "type": "string"
                                },
                                "hreflang": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "linkType": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "href",
                                "title",
                                "type",
                                "hreflang",
                                "linkType"
                              ]
                            }
                          },
                          "gs1:traceability": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "href": {
                                  "type": "string"
                                },
                                "title": {
                                  "type": "string"
                                },
                                "type": {
                                  "type": "string"
                                },
                                "hreflang": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "linkType": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "href",
                                "title",
                                "type",
                                "hreflang",
                                "linkType"
                              ]
                            }
                          }
                        },
                        "required": [
                          "anchor",
                          "gs1:pip",
                          "gs1:productSustainabilityInfo",
                          "gs1:traceability"
                        ]
                      }
                    }
                  },
                  "required": [
                    "anchor",
                    "linkset"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/integrations/{id}/push": {
      "post": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "DataMappingPush_push",
        "summary": "Add public integration push",
        "description": "Public: no API key needed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dryRun",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "runId": {
                      "type": "string"
                    },
                    "dryRun": {
                      "type": "boolean"
                    },
                    "summary": {
                      "type": "object",
                      "properties": {
                        "records": {
                          "type": "number"
                        },
                        "updated": {
                          "type": "number"
                        },
                        "wouldUpdate": {
                          "type": "number"
                        },
                        "created": {
                          "type": "number"
                        },
                        "wouldCreate": {
                          "type": "number"
                        },
                        "unchanged": {
                          "type": "number"
                        },
                        "unmatched": {
                          "type": "number"
                        },
                        "errors": {
                          "type": "number"
                        },
                        "fieldChanges": {
                          "type": "number"
                        },
                        "outcomesTruncated": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "records",
                        "updated",
                        "wouldUpdate",
                        "created",
                        "wouldCreate",
                        "unchanged",
                        "unmatched",
                        "errors",
                        "fieldChanges",
                        "outcomesTruncated"
                      ]
                    },
                    "outcomes": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Outcome"
                      }
                    }
                  },
                  "required": [
                    "runId",
                    "dryRun",
                    "summary",
                    "outcomes"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/organizations/{id}/did.json": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicIdentity_didDocument",
        "summary": "Get public organization did.json",
        "description": "Public: no API key needed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "verificationMethod": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VerificationMethod"
                      }
                    },
                    "assertionMethod": {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "$ref": "#/components/schemas/VerificationMethod"
                          }
                        ]
                      }
                    },
                    "alsoKnownAs": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/organizations/{id}/identity": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicIdentity_publicIdentity",
        "summary": "Get public organization identity",
        "description": "Public: no API key needed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "organization": {
                      "type": "string"
                    },
                    "did": {
                      "type": "string"
                    },
                    "verified": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "scheme": {},
                          "value": {},
                          "registryName": {},
                          "registry": {
                            "type": "string"
                          },
                          "verifiedAt": {},
                          "checkedAt": {},
                          "confirmed": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "scheme",
                          "value",
                          "registryName",
                          "registry",
                          "verifiedAt",
                          "checkedAt",
                          "confirmed"
                        ]
                      }
                    }
                  },
                  "required": [
                    "organization",
                    "did",
                    "verified"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/sitemap/passports": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "PublicSitemap_passports",
        "summary": "List public sitemap passports",
        "description": "Published passports of issuers that opted in to search listing.\n\nPublic: no API key needed.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "updatedAt": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "updatedAt"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/supplier-requests/{token}": {
      "get": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "SupplierPortal_view",
        "summary": "Get a public supplier request",
        "description": "Public: no API key needed.",
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "organizationName": {
                      "type": "string"
                    },
                    "supplierName": {
                      "type": "string"
                    },
                    "supplierCountry": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "requestedFields": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "linkedPassport": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string"
                            },
                            "status": {
                              "type": "string"
                            },
                            "version": {
                              "type": "number"
                            },
                            "product": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "sku": {
                                  "type": "string"
                                },
                                "category": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "name",
                                "sku",
                                "category"
                              ]
                            },
                            "fields": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "withheld": {
                                    "type": "boolean"
                                  },
                                  "path": {
                                    "type": "string"
                                  },
                                  "value": {
                                    "type": [
                                      "object",
                                      "null"
                                    ]
                                  }
                                },
                                "required": [
                                  "path",
                                  "value"
                                ]
                              }
                            }
                          },
                          "required": [
                            "id",
                            "status",
                            "version",
                            "product",
                            "fields"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "requestItems": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/SupplierRequestItem"
                      }
                    },
                    "requestedDocuments": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/SupplierPortalDocument"
                      }
                    },
                    "fields": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string"
                          },
                          "unit": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "key",
                          "label"
                        ]
                      }
                    },
                    "message": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "status": {
                      "type": "string"
                    },
                    "respondedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "tier": {
                      "type": "number"
                    },
                    "canDelegate": {
                      "type": "boolean"
                    },
                    "delegations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {},
                          "status": {},
                          "respondedAt": {},
                          "fields": {},
                          "createdAt": {},
                          "supplierName": {},
                          "identityWithheld": {}
                        },
                        "required": [
                          "id",
                          "status",
                          "respondedAt",
                          "fields",
                          "createdAt",
                          "supplierName",
                          "identityWithheld"
                        ]
                      }
                    }
                  },
                  "required": [
                    "id",
                    "organizationName",
                    "supplierName",
                    "supplierCountry",
                    "requestedFields",
                    "linkedPassport",
                    "requestItems",
                    "requestedDocuments",
                    "fields",
                    "message",
                    "status",
                    "respondedAt",
                    "createdAt",
                    "tier",
                    "canDelegate",
                    "delegations"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/supplier-requests/{token}/delegate": {
      "post": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "SupplierPortal_delegate",
        "summary": "Add public supplier request delegate",
        "description": "Forwards part of this request to the supplier's own supplier (multi-tier cascading). Only fields and documents of this request can be forwarded; with discloseIdentity false the requesting organization sees a neutral label instead of the upstream name and address. At most 10 per request, up to tier 5.\n\nPublic: no API key needed.",
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "email": {
                    "type": "string",
                    "maxLength": 254,
                    "format": "email",
                    "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                  },
                  "country": {
                    "anyOf": [
                      {},
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "fields": {
                    "default": [],
                    "maxItems": 48,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 80
                    }
                  },
                  "documents": {
                    "default": [],
                    "maxItems": 10,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 160
                    }
                  },
                  "message": {
                    "type": "string",
                    "maxLength": 1000
                  },
                  "discloseIdentity": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "name",
                  "email",
                  "fields",
                  "documents",
                  "discloseIdentity"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "requestId": {
                      "type": "string"
                    },
                    "tier": {
                      "type": "number"
                    },
                    "identityWithheld": {
                      "type": "boolean"
                    },
                    "inviteSent": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "requestId",
                    "tier",
                    "identityWithheld",
                    "inviteSent"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/supplier-requests/{token}/documents/{documentSlotId}": {
      "post": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "SupplierPortal_upload",
        "summary": "Add public supplier request documents",
        "description": "Upload one requested document using the unexpired invitation token. Send multipart/form-data with exactly one file field named file and no other fields. Accepts PDF, PNG, JPEG, GIF, WebP, or TIFF up to 10 MiB. Successful uploads permanently consume the requested slot; no replacement or public download is available. Production uploads require malware scanning.\n\nPublic: no API key needed.",
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "documentSlotId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierPortalDocument"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/public/supplier-requests/{token}/respond": {
      "post": {
        "tags": [
          "Public passport access"
        ],
        "operationId": "SupplierPortal_respond",
        "summary": "Respond a public supplier request",
        "description": "Public: no API key needed.",
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "status"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/regulations": {
      "get": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "Regulations_list",
        "summary": "List regulations",
        "description": "API key scope `regulations:read` (or `regulations:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "rules": {
                        "type": "number"
                      },
                      "category": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "rules",
                      "category"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "regulations:read"
      }
    },
    "/regulations/{category}": {
      "get": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "Regulations_one",
        "summary": "Get a regulation",
        "description": "API key scope `regulations:read` (or `regulations:*`, `*`).",
        "parameters": [
          {
            "name": "category",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegulationPack"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "regulations:read"
      }
    },
    "/regulations/{category}/schema": {
      "get": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "Regulations_schema",
        "summary": "Get regulation schema",
        "description": "The category's passport schema, with every field labelled and marked with what the effective EU rules demand (`x-required`, `x-requiredIf`) so a form can show it before the first validation.\n\nAPI key scope `regulations:read` (or `regulations:*`, `*`).",
        "parameters": [
          {
            "name": "category",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "market",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "category": {
                      "type": "string"
                    },
                    "manifest": {},
                    "schema": {
                      "type": "object",
                      "additionalProperties": {}
                    },
                    "ui": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/UiField"
                      }
                    },
                    "source": {
                      "type": "string"
                    },
                    "fields": {
                      "type": "array",
                      "items": {}
                    },
                    "obligations": {
                      "type": "array",
                      "items": {}
                    }
                  },
                  "required": [
                    "category",
                    "manifest",
                    "schema",
                    "ui",
                    "source",
                    "fields",
                    "obligations"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "regulations:read"
      }
    },
    "/regulations/effective": {
      "get": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "Regulations_effective",
        "summary": "List regulation effective",
        "description": "API key scope `regulations:read` (or `regulations:*`, `*`).",
        "parameters": [
          {
            "name": "market",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "category": {
                        "type": "string"
                      },
                      "code": {
                        "type": "string"
                      },
                      "market": {
                        "type": "string"
                      },
                      "version": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "legalSource": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "effectiveFrom": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "date-time"
                      },
                      "effectiveTo": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "date-time"
                      },
                      "note": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "source": {
                        "type": "string",
                        "enum": [
                          "operator",
                          "bundled"
                        ]
                      },
                      "rules": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "category",
                      "source",
                      "rules"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "regulations:read"
      }
    },
    "/regulations/effective/{category}": {
      "get": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "Regulations_effectiveOne",
        "summary": "Get regulation effective",
        "description": "API key scope `regulations:read` (or `regulations:*`, `*`).",
        "parameters": [
          {
            "name": "category",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "market",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "category": {
                          "type": "string"
                        },
                        "code": {
                          "type": "string"
                        },
                        "market": {
                          "type": "string"
                        },
                        "version": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        },
                        "legalSource": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "effectiveFrom": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "effectiveTo": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "note": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "source": {
                          "type": "string",
                          "enum": [
                            "operator"
                          ]
                        },
                        "rules": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Rule"
                          }
                        },
                        "fields": {
                          "type": "array",
                          "items": {}
                        },
                        "obligations": {
                          "type": "array",
                          "items": {}
                        },
                        "schema": {
                          "type": "object",
                          "additionalProperties": {}
                        },
                        "schemaSource": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "category",
                        "code",
                        "market",
                        "version",
                        "status",
                        "legalSource",
                        "effectiveFrom",
                        "effectiveTo",
                        "note",
                        "source",
                        "rules",
                        "fields",
                        "obligations",
                        "schema",
                        "schemaSource"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "enum": [
                            "bundled"
                          ]
                        },
                        "rules": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Rule"
                          }
                        },
                        "schema": {
                          "type": "object",
                          "additionalProperties": {}
                        },
                        "schemaSource": {
                          "type": "string"
                        },
                        "category": {
                          "type": "string"
                        },
                        "code": {
                          "type": "null"
                        },
                        "market": {
                          "type": "null"
                        },
                        "version": {
                          "type": "null"
                        },
                        "status": {
                          "type": "null"
                        },
                        "legalSource": {
                          "type": "null"
                        },
                        "effectiveFrom": {
                          "type": "null"
                        },
                        "effectiveTo": {
                          "type": "null"
                        },
                        "note": {
                          "type": "null"
                        },
                        "fields": {
                          "type": "null"
                        },
                        "obligations": {
                          "type": "null"
                        }
                      },
                      "required": [
                        "source",
                        "rules",
                        "schema",
                        "schemaSource",
                        "category"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "regulations:read"
      }
    },
    "/regulatory/analytics/regulatory": {
      "get": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "RegulatoryWatch_portfolio",
        "summary": "List regulatory analytics regulatory",
        "description": "Portfolio readiness: what is coming and how much of the portfolio it touches.\n\nAPI key scope `regulatory:read` (or `regulatory:*`, `*`).",
        "parameters": [
          {
            "name": "horizonDays",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "version": {
                      "type": "string"
                    },
                    "generatedAt": {
                      "type": "string"
                    },
                    "horizonDays": {
                      "type": "number"
                    },
                    "leadTimeDays": {
                      "type": "number"
                    },
                    "calendarCounts": {
                      "type": "object",
                      "properties": {
                        "overdue": {
                          "type": "number"
                        },
                        "imminent": {
                          "type": "number"
                        },
                        "approaching": {
                          "type": "number"
                        },
                        "latePreparation": {
                          "type": "number"
                        },
                        "draft": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "overdue",
                        "imminent",
                        "approaching",
                        "latePreparation",
                        "draft"
                      ]
                    },
                    "watchedPacks": {
                      "type": "number"
                    },
                    "upcoming": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string"
                          },
                          "market": {
                            "type": "string"
                          },
                          "category": {
                            "type": "string"
                          },
                          "version": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "legalSource": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "effectiveFrom": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "format": "date-time"
                          },
                          "ruleCount": {
                            "type": "number"
                          },
                          "daysUntilEffective": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "prepareBy": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "preparationLate": {
                            "type": "boolean"
                          },
                          "bucket": {
                            "type": "string",
                            "enum": [
                              "overdue",
                              "scheduled",
                              "imminent",
                              "approaching",
                              "planned"
                            ]
                          },
                          "passportsInScope": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "code",
                          "market",
                          "category",
                          "version",
                          "status",
                          "legalSource",
                          "effectiveFrom",
                          "ruleCount",
                          "daysUntilEffective",
                          "prepareBy",
                          "preparationLate",
                          "bucket",
                          "passportsInScope"
                        ]
                      }
                    },
                    "changes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string"
                          },
                          "category": {
                            "type": "string"
                          },
                          "fromVersion": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "toVersion": {
                            "type": "string"
                          },
                          "counts": {
                            "type": "object",
                            "properties": {
                              "added": {
                                "type": "number"
                              },
                              "removed": {
                                "type": "number"
                              },
                              "changed": {
                                "type": "number"
                              },
                              "breaking": {
                                "type": "number"
                              },
                              "tightening": {
                                "type": "number"
                              },
                              "easing": {
                                "type": "number"
                              },
                              "editorial": {
                                "type": "number"
                              },
                              "timing": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "added",
                              "removed",
                              "changed",
                              "breaking",
                              "tightening",
                              "easing",
                              "editorial",
                              "timing"
                            ]
                          },
                          "headline": {
                            "type": "string"
                          },
                          "mayBreakExistingPassports": {
                            "type": "boolean"
                          },
                          "requiredFieldsAdded": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "code",
                          "category",
                          "fromVersion",
                          "toVersion",
                          "counts",
                          "headline",
                          "mayBreakExistingPassports",
                          "requiredFieldsAdded"
                        ]
                      }
                    },
                    "reportsIssued": {
                      "type": "number"
                    },
                    "lastReport": {
                      "type": "object",
                      "additionalProperties": {}
                    },
                    "byCategory": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "category": {
                            "type": "string"
                          },
                          "packs": {
                            "type": "number"
                          },
                          "nextEffective": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "drafts": {
                            "type": "number"
                          },
                          "passports": {
                            "type": "number"
                          },
                          "atRisk": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "category",
                          "packs",
                          "nextEffective",
                          "drafts",
                          "passports",
                          "atRisk"
                        ]
                      }
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "version",
                    "generatedAt",
                    "horizonDays",
                    "leadTimeDays",
                    "calendarCounts",
                    "watchedPacks",
                    "upcoming",
                    "changes",
                    "reportsIssued",
                    "lastReport",
                    "byCategory",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "regulatory:read"
      }
    },
    "/regulatory/reports": {
      "get": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "RegulatoryWatch_history",
        "summary": "List regulatory reports",
        "description": "API key scope `regulatory:read` (or `regulatory:*`, `*`).",
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": {}
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "regulatory:read"
      }
    },
    "/regulatory/reports/{reference}": {
      "get": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "RegulatoryWatch_report",
        "summary": "Get regulatory reports",
        "description": "API key scope `regulatory:read` (or `regulatory:*`, `*`).",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegulatoryImpactReport"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "regulatory:read"
      }
    },
    "/regulatory/reports/{reference}/revoke": {
      "post": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "RegulatoryWatch_revoke",
        "summary": "Revoke reports of a regulatory",
        "description": "API key scope `regulatory:write` (or `regulatory:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegulatoryImpactReport"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "regulatory:write"
      }
    },
    "/regulatory/watch/calendar": {
      "get": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "RegulatoryWatch_calendar",
        "summary": "List regulatory watch calendar",
        "description": "Upcoming effective dates with the preparation horizon and the passports in scope.\n\nAPI key scope `regulatory:read` (or `regulatory:*`, `*`).",
        "parameters": [
          {
            "name": "horizonDays",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "leadTimeDays",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "version": {
                      "type": "string"
                    },
                    "leadTimeDays": {
                      "type": "number"
                    },
                    "horizonDays": {
                      "type": "number"
                    },
                    "generatedAt": {
                      "type": "string"
                    },
                    "counts": {
                      "type": "object",
                      "properties": {
                        "overdue": {
                          "type": "number"
                        },
                        "imminent": {
                          "type": "number"
                        },
                        "approaching": {
                          "type": "number"
                        },
                        "latePreparation": {
                          "type": "number"
                        },
                        "draft": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "overdue",
                        "imminent",
                        "approaching",
                        "latePreparation",
                        "draft"
                      ]
                    },
                    "entries": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string"
                          },
                          "market": {
                            "type": "string"
                          },
                          "category": {
                            "type": "string"
                          },
                          "version": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "legalSource": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "effectiveFrom": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "format": "date-time"
                          },
                          "ruleCount": {
                            "type": "number"
                          },
                          "daysUntilEffective": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "prepareBy": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "preparationLate": {
                            "type": "boolean"
                          },
                          "bucket": {
                            "type": "string",
                            "enum": [
                              "overdue",
                              "scheduled",
                              "imminent",
                              "approaching",
                              "planned"
                            ]
                          },
                          "passportsInScope": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "code",
                          "market",
                          "category",
                          "version",
                          "status",
                          "legalSource",
                          "effectiveFrom",
                          "ruleCount",
                          "daysUntilEffective",
                          "prepareBy",
                          "preparationLate",
                          "bucket",
                          "passportsInScope"
                        ]
                      }
                    }
                  },
                  "required": [
                    "version",
                    "leadTimeDays",
                    "horizonDays",
                    "generatedAt",
                    "counts",
                    "entries"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "regulatory:read"
      }
    },
    "/regulatory/watch/changes": {
      "get": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "RegulatoryWatch_changes",
        "summary": "List regulatory watch changes",
        "description": "Rule-level change feed, most breaking first.\n\nAPI key scope `regulatory:read` (or `regulatory:*`, `*`).",
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "type": "string"
                      },
                      "category": {
                        "type": "string"
                      },
                      "fromVersion": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "toVersion": {
                        "type": "string"
                      },
                      "diff": {
                        "$ref": "#/components/schemas/RuleSetDiff"
                      },
                      "metadataChanges": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "requiredFieldsAdded": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "requiredFieldsRemoved": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "required": [
                      "code",
                      "category",
                      "fromVersion",
                      "toVersion",
                      "diff",
                      "metadataChanges",
                      "requiredFieldsAdded",
                      "requiredFieldsRemoved"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "regulatory:read"
      }
    },
    "/regulatory/watch/impact": {
      "get": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "RegulatoryWatch_impact",
        "summary": "List regulatory watch impact",
        "description": "Impact assessment: both rule sets evaluated over the same passport versions.\n\nAPI key scope `regulatory:read` (or `regulatory:*`, `*`).",
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fromVersion",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "toVersion",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "category": {
                          "type": "string"
                        },
                        "fromVersion": {
                          "type": "null"
                        },
                        "toVersion": {
                          "type": "string"
                        },
                        "assessable": {
                          "type": "boolean"
                        },
                        "reason": {
                          "type": "string"
                        },
                        "leadTimeDays": {
                          "type": "number"
                        },
                        "version": {
                          "type": "null"
                        },
                        "market": {
                          "type": "null"
                        },
                        "fromRuleCount": {
                          "type": "null"
                        },
                        "toRuleCount": {
                          "type": "null"
                        },
                        "legalSource": {
                          "type": "null"
                        },
                        "effectiveFrom": {
                          "type": "null"
                        },
                        "daysUntilEffective": {
                          "type": "null"
                        },
                        "prepareBy": {
                          "type": "null"
                        },
                        "preparationLate": {
                          "type": "null"
                        },
                        "bucket": {
                          "type": "null"
                        },
                        "diff": {
                          "type": "null"
                        },
                        "requiredFieldsAdded": {
                          "type": "null"
                        },
                        "coverage": {
                          "type": "null"
                        },
                        "headline": {
                          "type": "null"
                        },
                        "plan": {
                          "type": "null"
                        },
                        "comparison": {
                          "type": "null"
                        },
                        "basis": {
                          "type": "null"
                        },
                        "note": {
                          "type": "null"
                        }
                      },
                      "required": [
                        "code",
                        "category",
                        "fromVersion",
                        "toVersion",
                        "assessable",
                        "reason",
                        "leadTimeDays"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "version": {
                          "type": "string"
                        },
                        "code": {
                          "type": "string"
                        },
                        "category": {
                          "type": "string"
                        },
                        "market": {
                          "type": "string"
                        },
                        "fromVersion": {
                          "type": "string"
                        },
                        "toVersion": {
                          "type": "string"
                        },
                        "fromRuleCount": {
                          "type": "number"
                        },
                        "toRuleCount": {
                          "type": "number"
                        },
                        "legalSource": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "effectiveFrom": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "daysUntilEffective": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "prepareBy": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "preparationLate": {
                          "type": "boolean"
                        },
                        "bucket": {
                          "type": "string",
                          "enum": [
                            "overdue",
                            "scheduled",
                            "imminent",
                            "approaching",
                            "planned"
                          ]
                        },
                        "assessable": {
                          "type": "boolean"
                        },
                        "diff": {
                          "$ref": "#/components/schemas/RuleSetDiff"
                        },
                        "requiredFieldsAdded": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "coverage": {
                          "$ref": "#/components/schemas/ImpactCoverage"
                        },
                        "headline": {
                          "type": "string"
                        },
                        "plan": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "step": {
                                "type": "string"
                              },
                              "why": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "step",
                              "why"
                            ]
                          }
                        },
                        "comparison": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "dppId": {
                                "type": "string"
                              },
                              "product": {
                                "type": "string"
                              },
                              "sku": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "version": {
                                "type": "number"
                              },
                              "passesBefore": {
                                "type": "boolean"
                              },
                              "passesAfter": {
                                "type": "boolean"
                              },
                              "status": {
                                "type": "string",
                                "enum": [
                                  "unchanged",
                                  "newly-failing",
                                  "newly-passing",
                                  "still-failing"
                                ]
                              },
                              "newFindings": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "ruleId": {
                                      "type": "string"
                                    },
                                    "field": {
                                      "type": "string"
                                    },
                                    "message": {
                                      "type": "string"
                                    },
                                    "severity": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "ruleId",
                                    "field",
                                    "message",
                                    "severity"
                                  ]
                                }
                              },
                              "resolvedFindings": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "ruleId": {
                                      "type": "string"
                                    },
                                    "field": {
                                      "type": "string"
                                    },
                                    "message": {
                                      "type": "string"
                                    },
                                    "severity": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "ruleId",
                                    "field",
                                    "message",
                                    "severity"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "dppId",
                              "product",
                              "sku",
                              "version",
                              "passesBefore",
                              "passesAfter",
                              "status",
                              "newFindings",
                              "resolvedFindings"
                            ]
                          }
                        },
                        "basis": {
                          "type": "string"
                        },
                        "note": {
                          "type": "string"
                        },
                        "reason": {
                          "type": "null"
                        },
                        "leadTimeDays": {
                          "type": "null"
                        }
                      },
                      "required": [
                        "version",
                        "code",
                        "category",
                        "market",
                        "fromVersion",
                        "toVersion",
                        "fromRuleCount",
                        "toRuleCount",
                        "legalSource",
                        "effectiveFrom",
                        "daysUntilEffective",
                        "prepareBy",
                        "preparationLate",
                        "bucket",
                        "assessable",
                        "diff",
                        "requiredFieldsAdded",
                        "coverage",
                        "headline",
                        "plan",
                        "comparison",
                        "basis",
                        "note"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "regulatory:read"
      },
      "post": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "RegulatoryWatch_issue",
        "summary": "Create regulatory watch impact",
        "description": "Issues the assessment as an immutable change-management artifact (reference like IMP-EU-BATTERY-V1).\n\nAPI key scope `regulatory:write` (or `regulatory:*`, `*`). Console users need the owner / admin / member role.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "fromVersion": {
                    "type": "string"
                  },
                  "toVersion": {
                    "type": "string"
                  },
                  "limit": {
                    "type": "number"
                  },
                  "leadTimeDays": {
                    "type": "number"
                  },
                  "note": {
                    "type": "string"
                  }
                },
                "required": [
                  "code"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegulatoryImpactReport2"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "regulatory:write"
      }
    },
    "/regulatory/watch/impact.csv": {
      "get": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "RegulatoryWatch_csv",
        "summary": "List regulatory watch impact.csv",
        "description": "API key scope `regulatory:read` (or `regulatory:*`, `*`).",
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reference",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fromVersion",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "toVersion",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "regulatory:read"
      }
    },
    "/regulatory/watch/packs/{code}/rules": {
      "get": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "RegulatoryWatch_packRules",
        "summary": "Get regulatory watch packs rules",
        "description": "The rules a pack version carries (from the latest snapshot, or the bundled pack).\n\nAPI key scope `regulatory:read` (or `regulatory:*`, `*`).",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string"
                    },
                    "version": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "source": {
                      "type": "string"
                    },
                    "rules": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Rule"
                      }
                    },
                    "requiredFields": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "snapshot": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "code",
                    "version",
                    "source",
                    "rules",
                    "requiredFields",
                    "snapshot"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "regulatory:read"
      }
    },
    "/regulatory/watch/snapshots": {
      "get": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "RegulatoryWatch_snapshots",
        "summary": "List regulatory watch snapshots",
        "description": "Latest captured state per pack, with the change counts behind it.\n\nAPI key scope `regulatory:read` (or `regulatory:*`, `*`).",
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "type": "string"
                      },
                      "category": {
                        "type": "string"
                      },
                      "market": {
                        "type": "string"
                      },
                      "source": {
                        "type": "string"
                      },
                      "current": {
                        "type": "object",
                        "properties": {
                          "version": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "legalSource": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "effectiveFrom": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "format": "date-time"
                          },
                          "ruleCount": {
                            "type": "number"
                          },
                          "contentHash": {
                            "type": "string"
                          },
                          "capturedAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "version",
                          "status",
                          "legalSource",
                          "effectiveFrom",
                          "ruleCount",
                          "contentHash",
                          "capturedAt"
                        ]
                      },
                      "previous": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "version": {
                                "type": "string"
                              },
                              "ruleCount": {
                                "type": "number"
                              },
                              "capturedAt": {
                                "type": "string",
                                "format": "date-time"
                              }
                            },
                            "required": [
                              "version",
                              "ruleCount",
                              "capturedAt"
                            ]
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "changed": {
                        "type": "boolean"
                      },
                      "changes": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "added": {
                                "type": "number"
                              },
                              "removed": {
                                "type": "number"
                              },
                              "changed": {
                                "type": "number"
                              },
                              "breaking": {
                                "type": "number"
                              },
                              "tightening": {
                                "type": "number"
                              },
                              "easing": {
                                "type": "number"
                              },
                              "editorial": {
                                "type": "number"
                              },
                              "timing": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "added",
                              "removed",
                              "changed",
                              "breaking",
                              "tightening",
                              "easing",
                              "editorial",
                              "timing"
                            ]
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "headline": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "history": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "code",
                      "category",
                      "market",
                      "source",
                      "current",
                      "previous",
                      "changed",
                      "changes",
                      "headline",
                      "history"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "regulatory:read"
      }
    },
    "/regulatory/watch/sync": {
      "post": {
        "tags": [
          "Regulations & compliance"
        ],
        "operationId": "RegulatoryWatch_sync",
        "summary": "Sync watch of regulatory",
        "description": "Captures the current pack versions (idempotent) and reports what changed since the last capture.\n\nAPI key scope `regulatory:write` (or `regulatory:*`, `*`). Console users need the owner / admin / member role.",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "version": {
                      "type": "string"
                    },
                    "watched": {
                      "type": "number"
                    },
                    "captured": {
                      "type": "number"
                    },
                    "unchanged": {
                      "type": "number"
                    },
                    "changes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string"
                          },
                          "fromVersion": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "toVersion": {
                            "type": "string"
                          },
                          "headline": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "code",
                          "fromVersion",
                          "toVersion",
                          "headline"
                        ]
                      }
                    },
                    "packs": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string"
                          },
                          "version": {
                            "type": "string"
                          },
                          "ruleCount": {
                            "type": "number"
                          },
                          "changed": {
                            "type": "boolean"
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "code",
                          "version",
                          "ruleCount",
                          "changed",
                          "headline"
                        ]
                      }
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "version",
                    "watched",
                    "captured",
                    "unchanged",
                    "changes",
                    "packs",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "regulatory:write"
      }
    },
    "/remediation-campaigns": {
      "get": {
        "tags": [
          "Remediation campaigns"
        ],
        "operationId": "Remediation_list",
        "summary": "List remediation campaigns",
        "description": "Campaigns (newest 200) with progress counts.\n\nAPI key scope `remediation-campaigns:read` (or `remediation-campaigns:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {}
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "remediation-campaigns:read"
      },
      "post": {
        "tags": [
          "Remediation campaigns"
        ],
        "operationId": "Remediation_create",
        "summary": "Create a remediation campaign",
        "description": "Creates a campaign from an issued impact report: every passport in the category failing the new rule set becomes an item.\n\nAPI key scope `remediation-campaigns:write` (or `remediation-campaigns:*`, `*`). Console users need the owner / admin role.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "impactReference": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "dueDate": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "ownerId": {
                    "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"
                      }
                    ]
                  }
                },
                "required": [
                  "impactReference"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "passportsInScope": {
                      "type": "number"
                    },
                    "items": {
                      "type": "number"
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "status": {
                      "type": "string"
                    },
                    "createdBy": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "category": {
                      "type": "string"
                    },
                    "reference": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    },
                    "fromVersion": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "toVersion": {
                      "type": "string"
                    },
                    "impactReference": {
                      "type": "string"
                    },
                    "dueDate": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "ownerId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "lastCheckedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "closedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "closedBy": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "closeNote": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "passportsInScope",
                    "items",
                    "id",
                    "organizationId",
                    "createdAt",
                    "status",
                    "createdBy",
                    "category",
                    "reference",
                    "code",
                    "title",
                    "fromVersion",
                    "toVersion",
                    "impactReference",
                    "dueDate",
                    "ownerId",
                    "lastCheckedAt",
                    "closedAt",
                    "closedBy",
                    "closeNote"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "remediation-campaigns:write"
      }
    },
    "/remediation-campaigns/{id}": {
      "get": {
        "tags": [
          "Remediation campaigns"
        ],
        "operationId": "Remediation_get",
        "summary": "Get a remediation campaign",
        "description": "One campaign with every item, its findings and whether the passport changed since the last check.\n\nAPI key scope `remediation-campaigns:read` (or `remediation-campaigns:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "progress": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "open": {
                          "type": "number"
                        },
                        "evidenceRequested": {
                          "type": "number"
                        },
                        "resolved": {
                          "type": "number"
                        },
                        "waived": {
                          "type": "number"
                        },
                        "remaining": {
                          "type": "number"
                        },
                        "percentComplete": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "total",
                        "open",
                        "evidenceRequested",
                        "resolved",
                        "waived",
                        "remaining",
                        "percentComplete"
                      ]
                    },
                    "items": {
                      "type": "array",
                      "items": {}
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "reference": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    },
                    "impactReference": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "category": {
                      "type": "string"
                    },
                    "fromVersion": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "toVersion": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "dueDate": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "ownerId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "lastCheckedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "createdBy": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "closedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "closedBy": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "closeNote": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "progress",
                    "items",
                    "id",
                    "organizationId",
                    "reference",
                    "title",
                    "impactReference",
                    "code",
                    "category",
                    "fromVersion",
                    "toVersion",
                    "status",
                    "dueDate",
                    "ownerId",
                    "lastCheckedAt",
                    "createdBy",
                    "createdAt",
                    "closedAt",
                    "closedBy",
                    "closeNote"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "remediation-campaigns:read"
      }
    },
    "/remediation-campaigns/{id}/close": {
      "post": {
        "tags": [
          "Remediation campaigns"
        ],
        "operationId": "Remediation_close",
        "summary": "Add remediation campaign close",
        "description": "Closes the campaign with a note; passports still failing are recorded as accepted at closing.\n\nAPI key scope `remediation-campaigns:write` (or `remediation-campaigns:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "note": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "note"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/RemediationCampaign"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "progress": {
                          "type": "object",
                          "properties": {
                            "total": {
                              "type": "number"
                            },
                            "open": {
                              "type": "number"
                            },
                            "evidenceRequested": {
                              "type": "number"
                            },
                            "resolved": {
                              "type": "number"
                            },
                            "waived": {
                              "type": "number"
                            },
                            "remaining": {
                              "type": "number"
                            },
                            "percentComplete": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "total",
                            "open",
                            "evidenceRequested",
                            "resolved",
                            "waived",
                            "remaining",
                            "percentComplete"
                          ]
                        },
                        "id": {
                          "type": "string"
                        },
                        "organizationId": {
                          "type": "string"
                        },
                        "reference": {
                          "type": "string"
                        },
                        "title": {
                          "type": "string"
                        },
                        "impactReference": {
                          "type": "string"
                        },
                        "code": {
                          "type": "string"
                        },
                        "category": {
                          "type": "string"
                        },
                        "fromVersion": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "toVersion": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        },
                        "dueDate": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "ownerId": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "lastCheckedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "createdBy": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "closedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "closedBy": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "closeNote": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "progress",
                        "id",
                        "organizationId",
                        "reference",
                        "title",
                        "impactReference",
                        "code",
                        "category",
                        "fromVersion",
                        "toVersion",
                        "status",
                        "dueDate",
                        "ownerId",
                        "lastCheckedAt",
                        "createdBy",
                        "createdAt",
                        "closedAt",
                        "closedBy",
                        "closeNote"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "remediation-campaigns:write"
      }
    },
    "/remediation-campaigns/{id}/items/{itemId}": {
      "patch": {
        "tags": [
          "Remediation campaigns"
        ],
        "operationId": "Remediation_updateItem",
        "summary": "Update remediation campaign items",
        "description": "Waives an item with a recorded reason, or reopens a waived one (administrators).\n\nAPI key scope `remediation-campaigns:write` (or `remediation-campaigns:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "expectedRevision": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "open",
                      "waived"
                    ]
                  },
                  "note": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "expectedRevision",
                  "status",
                  "note"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RemediationItem"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "remediation-campaigns:write"
      }
    },
    "/remediation-campaigns/{id}/items/{itemId}/evidence-request": {
      "post": {
        "tags": [
          "Remediation campaigns"
        ],
        "operationId": "Remediation_requestEvidence",
        "summary": "Add remediation campaign items evidence request",
        "description": "Creates a supplier request for the fields this passport's findings name, plus one evidence document slot.\n\nAPI key scope `remediation-campaigns:write` (or `remediation-campaigns:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "supplierId": {
                    "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)$"
                  },
                  "message": {
                    "type": "string",
                    "maxLength": 2000
                  }
                },
                "required": [
                  "supplierId"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "requestId": {
                      "type": "string"
                    },
                    "supplierId": {
                      "type": "string"
                    },
                    "requestedFields": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "requestId",
                    "supplierId",
                    "requestedFields"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "remediation-campaigns:write"
      }
    },
    "/remediation-campaigns/{id}/recheck": {
      "post": {
        "tags": [
          "Remediation campaigns"
        ],
        "operationId": "Remediation_recheck",
        "summary": "Add remediation campaign recheck",
        "description": "Deterministic re-check under the target rule set; the only way an item becomes resolved.\n\nAPI key scope `remediation-campaigns:write` (or `remediation-campaigns:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "checked": {
                      "type": "number"
                    },
                    "resolved": {
                      "type": "number"
                    },
                    "reopened": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "checked",
                    "resolved",
                    "reopened"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "remediation-campaigns:write"
      }
    },
    "/remediation-campaigns/{id}/report.csv": {
      "get": {
        "tags": [
          "Remediation campaigns"
        ],
        "operationId": "Remediation_csv",
        "summary": "Get remediation campaign report.csv",
        "description": "Flat per-passport audit report; cells are neutralized against formula injection by the CSV hook.\n\nAPI key scope `remediation-campaigns:read` (or `remediation-campaigns:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "remediation-campaigns:read"
      }
    },
    "/risk-assessments": {
      "get": {
        "tags": [
          "Suppliers"
        ],
        "operationId": "SupplierRisk_portfolio",
        "summary": "List risk assessments",
        "description": "API key scope `risk-assessments:read` (or `risk-assessments:*`, `*`).",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "suppliersAssessed": {
                      "type": "number"
                    },
                    "assessments": {
                      "type": "number"
                    },
                    "verdicts": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "number"
                      }
                    },
                    "degradedRuns": {
                      "type": "number"
                    },
                    "averageCombinedIndex": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "averageDeterministicScore": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "highRiskSuppliers": {
                      "type": "number"
                    },
                    "categories": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "label": {
                            "type": "string"
                          },
                          "riskFound": {
                            "type": "number"
                          },
                          "noSignal": {
                            "type": "number"
                          },
                          "unassessable": {
                            "type": "number"
                          },
                          "key": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "label",
                          "riskFound",
                          "noSignal",
                          "unassessable",
                          "key"
                        ]
                      }
                    },
                    "unassessableSignals": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string"
                          },
                          "requires": {
                            "type": "string"
                          },
                          "count": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "key",
                          "requires",
                          "count"
                        ]
                      }
                    },
                    "recent": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "supplierId": {
                            "type": "string"
                          },
                          "supplier": {
                            "type": "string"
                          },
                          "country": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "reference": {
                            "type": "string"
                          },
                          "verdict": {
                            "type": "string"
                          },
                          "deterministicScore": {
                            "type": "number"
                          },
                          "combinedIndex": {
                            "type": "number"
                          },
                          "combinedLevel": {
                            "type": "string"
                          },
                          "riskPoints": {
                            "type": "number"
                          },
                          "mitigationPoints": {
                            "type": "number"
                          },
                          "accepted": {
                            "type": "number"
                          },
                          "unassessable": {
                            "type": "number"
                          },
                          "degraded": {
                            "type": "boolean"
                          },
                          "createdAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "id",
                          "supplierId",
                          "supplier",
                          "country",
                          "reference",
                          "verdict",
                          "deterministicScore",
                          "combinedIndex",
                          "combinedLevel",
                          "riskPoints",
                          "mitigationPoints",
                          "accepted",
                          "unassessable",
                          "degraded",
                          "createdAt"
                        ]
                      }
                    },
                    "catalogueVersion": {
                      "type": "string"
                    },
                    "note": {
                      "type": "string"
                    },
                    "disclaimer": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "suppliersAssessed",
                    "assessments",
                    "verdicts",
                    "degradedRuns",
                    "averageCombinedIndex",
                    "averageDeterministicScore",
                    "highRiskSuppliers",
                    "categories",
                    "unassessableSignals",
                    "recent",
                    "catalogueVersion",
                    "note",
                    "disclaimer"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "risk-assessments:read"
      }
    },
    "/risk-assessments/{reference}": {
      "get": {
        "tags": [
          "Suppliers"
        ],
        "operationId": "SupplierRisk_byReference",
        "summary": "Get a risk assessment",
        "description": "API key scope `risk-assessments:read` (or `risk-assessments:*`, `*`).",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierRiskAssessment"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "risk-assessments:read"
      }
    },
    "/risk-assessments/{reference}.csv": {
      "get": {
        "tags": [
          "Suppliers"
        ],
        "operationId": "SupplierRisk_csv",
        "summary": "Get a risk assessment",
        "description": "API key scope `risk-assessments:read` (or `risk-assessments:*`, `*`).",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "risk-assessments:read"
      }
    },
    "/risk-assessments/{reference}/revoke": {
      "post": {
        "tags": [
          "Suppliers"
        ],
        "operationId": "SupplierRisk_revoke",
        "summary": "Revoke a risk assessment",
        "description": "API key scope `risk-assessments:write` (or `risk-assessments:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierRiskAssessment"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "risk-assessments:write"
      }
    },
    "/schema-extensions": {
      "get": {
        "tags": [
          "Custom fields"
        ],
        "operationId": "Extensions_list",
        "summary": "List schema extensions",
        "description": "API key scope `schema-extensions:read` (or `schema-extensions:*`, `*`).",
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SchemaExtension"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "schema-extensions:read"
      },
      "post": {
        "tags": [
          "Custom fields"
        ],
        "operationId": "Extensions_create",
        "summary": "Create a schema extension",
        "description": "API key scope `schema-extensions:write` (or `schema-extensions:*`, `*`). Console users need the owner / admin role.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExtensionInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchemaExtension2"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "schema-extensions:write"
      }
    },
    "/schema-extensions/{id}": {
      "get": {
        "tags": [
          "Custom fields"
        ],
        "operationId": "Extensions_get",
        "summary": "Get a schema extension",
        "description": "API key scope `schema-extensions:read` (or `schema-extensions:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchemaExtension"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "schema-extensions:read"
      },
      "patch": {
        "tags": [
          "Custom fields"
        ],
        "operationId": "Extensions_update",
        "summary": "Update a schema extension",
        "description": "API key scope `schema-extensions:write` (or `schema-extensions:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "label": {
                    "type": "string"
                  },
                  "category": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "description": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "string",
                      "number",
                      "boolean",
                      "date",
                      "integer",
                      "enum"
                    ]
                  },
                  "required": {
                    "type": "boolean"
                  },
                  "enumValues": {
                    "anyOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "pattern": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "minValue": {
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "maxValue": {
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "unit": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "active": {
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchemaExtension"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "schema-extensions:write"
      },
      "delete": {
        "tags": [
          "Custom fields"
        ],
        "operationId": "Extensions_remove",
        "summary": "Delete a schema extension",
        "description": "API key scope `schema-extensions:write` (or `schema-extensions:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "deleted": {
                      "type": "boolean"
                    },
                    "id": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "deleted",
                    "id"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "schema-extensions:write"
      }
    },
    "/schema-extensions/resolve": {
      "get": {
        "tags": [
          "Custom fields"
        ],
        "operationId": "Extensions_resolve",
        "summary": "Resolve schema extensions",
        "description": "Merged view used by the no-code form renderer: definitions + JSON Schema fragment + UI hints.\n\nAPI key scope `schema-extensions:read` (or `schema-extensions:*`, `*`).",
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "properties": {
                      "type": "object",
                      "additionalProperties": {}
                    },
                    "required": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "ui": {
                      "type": "object",
                      "additionalProperties": {}
                    },
                    "count": {
                      "type": "number"
                    },
                    "category": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "properties",
                    "required",
                    "ui",
                    "count",
                    "category"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "schema-extensions:read"
      }
    },
    "/scip-dossiers/{reference}/revoke": {
      "post": {
        "tags": [
          "Substances & materials"
        ],
        "operationId": "Substances_revoke",
        "summary": "Revoke a scip dossier",
        "description": "API key scope `scip-dossiers:write` (or `scip-dossiers:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "scip-dossiers:write"
      }
    },
    "/sds-records/{reference}/revoke": {
      "post": {
        "tags": [
          "Substances & materials"
        ],
        "operationId": "Chemicals_revoke",
        "summary": "Revoke a sds record",
        "description": "API key scope `sds-records:write` (or `sds-records:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "sds-records:write"
      }
    },
    "/sourcing-assessments": {
      "get": {
        "tags": [
          "Responsible sourcing"
        ],
        "operationId": "Sourcing_allAssessments",
        "summary": "List sourcing assessments",
        "description": "API key scope `sourcing-assessments:read` (or `sourcing-assessments:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "reference": {},
                      "versionNumber": {},
                      "dppVersion": {},
                      "status": {},
                      "band": {},
                      "resilienceIndex": {},
                      "materials": {},
                      "suppliers": {},
                      "singleSourceCount": {},
                      "criticalExposureCount": {},
                      "unattributedCount": {},
                      "candidates": {},
                      "eligibleCandidates": {},
                      "blockedCandidates": {},
                      "openDecisions": {},
                      "adopted": {},
                      "headline": {},
                      "deductions": {},
                      "exposures": {},
                      "concentration": {},
                      "note": {},
                      "supersededBy": {},
                      "issuedAt": {},
                      "revokedAt": {},
                      "revokeReason": {},
                      "caveat": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "reference",
                      "versionNumber",
                      "dppVersion",
                      "status",
                      "band",
                      "resilienceIndex",
                      "materials",
                      "suppliers",
                      "singleSourceCount",
                      "criticalExposureCount",
                      "unattributedCount",
                      "candidates",
                      "eligibleCandidates",
                      "blockedCandidates",
                      "openDecisions",
                      "adopted",
                      "headline",
                      "deductions",
                      "exposures",
                      "concentration",
                      "note",
                      "supersededBy",
                      "issuedAt",
                      "revokedAt",
                      "revokeReason",
                      "caveat"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "sourcing-assessments:read"
      }
    },
    "/sourcing-assessments/{reference}": {
      "get": {
        "tags": [
          "Responsible sourcing"
        ],
        "operationId": "Sourcing_assessmentByReference",
        "summary": "Get a sourcing assessment",
        "description": "API key scope `sourcing-assessments:read` (or `sourcing-assessments:*`, `*`).",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dppId": {},
                    "payload": {},
                    "reference": {},
                    "versionNumber": {},
                    "dppVersion": {},
                    "status": {},
                    "band": {},
                    "resilienceIndex": {},
                    "materials": {},
                    "suppliers": {},
                    "singleSourceCount": {},
                    "criticalExposureCount": {},
                    "unattributedCount": {},
                    "candidates": {},
                    "eligibleCandidates": {},
                    "blockedCandidates": {},
                    "openDecisions": {},
                    "adopted": {},
                    "headline": {},
                    "deductions": {},
                    "exposures": {},
                    "concentration": {},
                    "note": {},
                    "supersededBy": {},
                    "issuedAt": {},
                    "revokedAt": {},
                    "revokeReason": {},
                    "caveat": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "dppId",
                    "payload",
                    "reference",
                    "versionNumber",
                    "dppVersion",
                    "status",
                    "band",
                    "resilienceIndex",
                    "materials",
                    "suppliers",
                    "singleSourceCount",
                    "criticalExposureCount",
                    "unattributedCount",
                    "candidates",
                    "eligibleCandidates",
                    "blockedCandidates",
                    "openDecisions",
                    "adopted",
                    "headline",
                    "deductions",
                    "exposures",
                    "concentration",
                    "note",
                    "supersededBy",
                    "issuedAt",
                    "revokedAt",
                    "revokeReason",
                    "caveat"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "sourcing-assessments:read"
      }
    },
    "/sourcing-assessments/{reference}/revoke": {
      "post": {
        "tags": [
          "Responsible sourcing"
        ],
        "operationId": "Sourcing_revoke",
        "summary": "Revoke a sourcing assessment",
        "description": "API key scope `sourcing-assessments:write` (or `sourcing-assessments:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "reference": {},
                    "versionNumber": {},
                    "dppVersion": {},
                    "status": {},
                    "band": {},
                    "resilienceIndex": {},
                    "materials": {},
                    "suppliers": {},
                    "singleSourceCount": {},
                    "criticalExposureCount": {},
                    "unattributedCount": {},
                    "candidates": {},
                    "eligibleCandidates": {},
                    "blockedCandidates": {},
                    "openDecisions": {},
                    "adopted": {},
                    "headline": {},
                    "deductions": {},
                    "exposures": {},
                    "concentration": {},
                    "note": {},
                    "supersededBy": {},
                    "issuedAt": {},
                    "revokedAt": {},
                    "revokeReason": {},
                    "caveat": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "reference",
                    "versionNumber",
                    "dppVersion",
                    "status",
                    "band",
                    "resilienceIndex",
                    "materials",
                    "suppliers",
                    "singleSourceCount",
                    "criticalExposureCount",
                    "unattributedCount",
                    "candidates",
                    "eligibleCandidates",
                    "blockedCandidates",
                    "openDecisions",
                    "adopted",
                    "headline",
                    "deductions",
                    "exposures",
                    "concentration",
                    "note",
                    "supersededBy",
                    "issuedAt",
                    "revokedAt",
                    "revokeReason",
                    "caveat"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "sourcing-assessments:write"
      }
    },
    "/sourcing-assessments/{reference}/sourcing.csv": {
      "get": {
        "tags": [
          "Responsible sourcing"
        ],
        "operationId": "Sourcing_csv",
        "summary": "Get sourcing assessment sourcing.csv",
        "description": "API key scope `sourcing-assessments:read` (or `sourcing-assessments:*`, `*`).",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "sourcing-assessments:read"
      }
    },
    "/sourcing/alternatives": {
      "get": {
        "tags": [
          "Responsible sourcing"
        ],
        "operationId": "Sourcing_alternatives",
        "summary": "List sourcing alternatives",
        "description": "The decision queue (optionally one passport, one status).\n\nAPI key scope `sourcing:read` (or `sourcing:*`, `*`).",
        "parameters": [
          {
            "name": "dppId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeCleared",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "alternatives": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "material": {},
                          "toSupplier": {},
                          "fromSupplier": {},
                          "id": {},
                          "dppId": {},
                          "fromSupplierId": {},
                          "toSupplierId": {},
                          "status": {},
                          "eligibility": {},
                          "score": {},
                          "criticality": {},
                          "exposureScore": {},
                          "blockers": {},
                          "conditions": {},
                          "improvements": {},
                          "whatDoesNotImprove": {},
                          "reasons": {},
                          "requestId": {},
                          "decisionReason": {},
                          "decidedAt": {},
                          "occurrences": {},
                          "cleared": {},
                          "lastSeenAt": {},
                          "firstSeenAt": {}
                        },
                        "required": [
                          "material",
                          "toSupplier",
                          "fromSupplier",
                          "id",
                          "dppId",
                          "fromSupplierId",
                          "toSupplierId",
                          "status",
                          "eligibility",
                          "score",
                          "criticality",
                          "exposureScore",
                          "blockers",
                          "conditions",
                          "improvements",
                          "whatDoesNotImprove",
                          "reasons",
                          "requestId",
                          "decisionReason",
                          "decidedAt",
                          "occurrences",
                          "cleared",
                          "lastSeenAt",
                          "firstSeenAt"
                        ]
                      }
                    },
                    "counts": {
                      "type": "object",
                      "properties": {
                        "proposed": {
                          "type": "number"
                        },
                        "shortlisted": {
                          "type": "number"
                        },
                        "rejected": {
                          "type": "number"
                        },
                        "adopted": {
                          "type": "number"
                        },
                        "cleared": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "proposed",
                        "shortlisted",
                        "rejected",
                        "adopted",
                        "cleared"
                      ]
                    },
                    "actions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string",
                            "enum": [
                              "reject",
                              "shortlist",
                              "adopt"
                            ]
                          },
                          "label": {
                            "type": "string"
                          },
                          "requiresReason": {
                            "type": "boolean"
                          },
                          "note": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "key",
                          "label",
                          "requiresReason",
                          "note"
                        ]
                      }
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "alternatives",
                    "counts",
                    "actions",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "sourcing:read"
      }
    },
    "/sourcing/alternatives/{alternativeId}/decision": {
      "post": {
        "tags": [
          "Responsible sourcing"
        ],
        "operationId": "Sourcing_decide",
        "summary": "Add sourcing alternatives decision",
        "description": "Shortlist, reject or adopt an alternative (a rejection and an adoption need a reason).\n\nAPI key scope `sourcing:write` (or `sourcing:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "alternativeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string"
                  },
                  "reason": {
                    "type": "string"
                  },
                  "openRequest": {
                    "type": "boolean"
                  },
                  "requestedFields": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "action"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "material": {
                      "type": "string"
                    },
                    "requestOpened": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "id"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "nextStep": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "caveat": {
                      "type": "string"
                    },
                    "id": {},
                    "dppId": {},
                    "fromSupplierId": {},
                    "toSupplierId": {},
                    "status": {},
                    "eligibility": {},
                    "score": {},
                    "criticality": {},
                    "exposureScore": {},
                    "blockers": {},
                    "conditions": {},
                    "improvements": {},
                    "whatDoesNotImprove": {},
                    "reasons": {},
                    "requestId": {},
                    "decisionReason": {},
                    "decidedAt": {},
                    "occurrences": {},
                    "cleared": {},
                    "lastSeenAt": {},
                    "firstSeenAt": {}
                  },
                  "required": [
                    "material",
                    "requestOpened",
                    "nextStep",
                    "caveat",
                    "id",
                    "dppId",
                    "fromSupplierId",
                    "toSupplierId",
                    "status",
                    "eligibility",
                    "score",
                    "criticality",
                    "exposureScore",
                    "blockers",
                    "conditions",
                    "improvements",
                    "whatDoesNotImprove",
                    "reasons",
                    "requestId",
                    "decisionReason",
                    "decidedAt",
                    "occurrences",
                    "cleared",
                    "lastSeenAt",
                    "firstSeenAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "sourcing:write"
      }
    },
    "/sourcing/catalogue": {
      "get": {
        "tags": [
          "Responsible sourcing"
        ],
        "operationId": "Sourcing_catalogue",
        "summary": "List sourcing catalogue",
        "description": "Criteria reference: the resilience dimensions, the criticality list and what each decision means.\n\nAPI key scope `sourcing:read` (or `sourcing:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "version": {
                      "type": "string"
                    },
                    "dimensions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "weight": {
                            "type": "number"
                          },
                          "measures": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "key",
                          "label",
                          "weight",
                          "measures"
                        ]
                      }
                    },
                    "criticalMaterials": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "material": {
                            "type": "string"
                          },
                          "level": {
                            "type": "string",
                            "enum": [
                              "medium",
                              "high"
                            ]
                          },
                          "reason": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "material",
                          "level",
                          "reason"
                        ]
                      }
                    },
                    "actions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string",
                            "enum": [
                              "reject",
                              "shortlist",
                              "adopt"
                            ]
                          },
                          "label": {
                            "type": "string"
                          },
                          "requiresReason": {
                            "type": "boolean"
                          },
                          "note": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "key",
                          "label",
                          "requiresReason",
                          "note"
                        ]
                      }
                    },
                    "eligibility": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string"
                          },
                          "meaning": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "key",
                          "meaning"
                        ]
                      }
                    },
                    "caveat": {
                      "type": "string"
                    },
                    "scopeNote": {
                      "type": "string"
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "version",
                    "dimensions",
                    "criticalMaterials",
                    "actions",
                    "eligibility",
                    "caveat",
                    "scopeNote",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "sourcing:read"
      }
    },
    "/sourcing/critical-materials": {
      "get": {
        "tags": [
          "Responsible sourcing"
        ],
        "operationId": "Sourcing_criticalMaterials",
        "summary": "List sourcing critical materials",
        "description": "The reviewed criticality list on its own.\n\nAPI key scope `sourcing:read` (or `sourcing:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "materials": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "material": {
                            "type": "string"
                          },
                          "level": {
                            "type": "string",
                            "enum": [
                              "medium",
                              "high"
                            ]
                          },
                          "reason": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "material",
                          "level",
                          "reason"
                        ]
                      }
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "materials",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "sourcing:read"
      }
    },
    "/sourcing/material": {
      "get": {
        "tags": [
          "Responsible sourcing"
        ],
        "operationId": "Sourcing_explain",
        "summary": "List sourcing material",
        "description": "Explain one material name without running an analysis (normalisation + criticality).\n\nAPI key scope `sourcing:read` (or `sourcing:*`, `*`).",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "material": {
                      "type": "string"
                    },
                    "normalised": {
                      "type": "string"
                    },
                    "criticality": {
                      "type": "object",
                      "properties": {
                        "level": {
                          "type": "string",
                          "enum": [
                            "low",
                            "medium",
                            "high"
                          ]
                        },
                        "reason": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "level",
                        "reason"
                      ]
                    }
                  },
                  "required": [
                    "material",
                    "normalised",
                    "criticality"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "sourcing:read"
      }
    },
    "/status": {
      "get": {
        "tags": [
          "Service"
        ],
        "operationId": "Status_status",
        "summary": "List status",
        "description": "Public: no API key needed.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "overall": {
                      "type": "string",
                      "enum": [
                        "unknown",
                        "operational",
                        "degraded",
                        "down"
                      ]
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "sampleIntervalMinutes": {
                      "type": "number"
                    },
                    "measuredSince": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "components": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string",
                            "enum": [
                              "api",
                              "website",
                              "resolver",
                              "jobs"
                            ]
                          },
                          "name": {
                            "type": "string",
                            "enum": [
                              "Website",
                              "Console & API",
                              "Passport resolver",
                              "Background jobs"
                            ]
                          },
                          "description": {
                            "type": "string",
                            "enum": [
                              "dppshield.com information pages",
                              "Operator console, REST API, database and cache",
                              "QR codes and GS1 Digital Links resolving to public passports",
                              "Imports, validations, webhooks, notifications"
                            ]
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "unknown",
                              "operational",
                              "degraded",
                              "down"
                            ]
                          },
                          "latencyMs": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "checkedAt": {
                            "type": "string"
                          },
                          "uptime90d": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "measuredDays": {
                            "type": "number"
                          },
                          "missedChecks": {
                            "type": "number"
                          },
                          "history": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "date": {
                                  "type": "string"
                                },
                                "uptime": {
                                  "type": [
                                    "number",
                                    "null"
                                  ]
                                }
                              },
                              "required": [
                                "date",
                                "uptime"
                              ]
                            }
                          }
                        },
                        "required": [
                          "key",
                          "name",
                          "description",
                          "state",
                          "latencyMs",
                          "checkedAt",
                          "uptime90d",
                          "measuredDays",
                          "missedChecks",
                          "history"
                        ]
                      }
                    }
                  },
                  "required": [
                    "overall",
                    "updatedAt",
                    "sampleIntervalMinutes",
                    "measuredSince",
                    "components"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": []
      }
    },
    "/substances/candidate-list": {
      "get": {
        "tags": [
          "Substances & materials"
        ],
        "operationId": "Substances_candidateList",
        "summary": "List substance candidate list",
        "description": "The bundled candidate-list subset — so an operator can see what we screen against.\n\nAPI key scope `substances:read` (or `substances:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "version": {
                      "type": "string"
                    },
                    "listAge": {
                      "$ref": "#/components/schemas/SvhcListAge"
                    },
                    "source": {
                      "type": "string"
                    },
                    "methodVersion": {
                      "type": "string"
                    },
                    "thresholdPercent": {
                      "type": "number"
                    },
                    "entries": {
                      "type": "number"
                    },
                    "authorisationListed": {
                      "type": "number"
                    },
                    "restrictions": {
                      "type": "number"
                    },
                    "groups": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "group": {
                            "type": "string"
                          },
                          "count": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "group",
                          "count"
                        ]
                      }
                    },
                    "substances": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/CandidateEntry"
                      }
                    },
                    "restrictedSubstances": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Restriction"
                      }
                    },
                    "disclaimer": {
                      "type": "string"
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "version",
                    "listAge",
                    "source",
                    "methodVersion",
                    "thresholdPercent",
                    "entries",
                    "authorisationListed",
                    "restrictions",
                    "groups",
                    "substances",
                    "restrictedSubstances",
                    "disclaimer",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "substances:read"
      }
    },
    "/substances/lookup": {
      "get": {
        "tags": [
          "Substances & materials"
        ],
        "operationId": "Substances_lookup",
        "summary": "List substance lookup",
        "description": "Single-substance lookup (candidate list, authorisation, restriction).\n\nAPI key scope `substances:read` (or `substances:*`, `*`).",
        "parameters": [
          {
            "name": "cas",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "found": {
                          "type": "boolean"
                        },
                        "query": {
                          "type": "object",
                          "properties": {
                            "cas": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            }
                          }
                        },
                        "casValid": {
                          "type": "boolean"
                        },
                        "casIssue": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "restriction": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/Restriction"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "note": {
                          "type": "string"
                        },
                        "candidateList": {
                          "type": "null"
                        }
                      },
                      "required": [
                        "found",
                        "query",
                        "casValid",
                        "casIssue",
                        "restriction",
                        "note"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "found": {
                          "type": "boolean"
                        },
                        "query": {
                          "type": "object",
                          "properties": {
                            "cas": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            }
                          }
                        },
                        "casValid": {
                          "type": "boolean"
                        },
                        "casIssue": {
                          "type": "null"
                        },
                        "candidateList": {
                          "type": "object",
                          "properties": {
                            "cas": {
                              "type": "string"
                            },
                            "ec": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "name": {
                              "type": "string"
                            },
                            "reason": {
                              "type": "string"
                            },
                            "addedOn": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "specificLimitPercent": {
                              "type": [
                                "number",
                                "null"
                              ]
                            },
                            "thresholdPercent": {
                              "type": "number"
                            },
                            "annexXiv": {
                              "type": "boolean"
                            },
                            "group": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "cas",
                            "ec",
                            "name",
                            "reason",
                            "addedOn",
                            "specificLimitPercent",
                            "thresholdPercent",
                            "annexXiv",
                            "group"
                          ]
                        },
                        "restriction": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/Restriction"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "note": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "found",
                        "query",
                        "casValid",
                        "casIssue",
                        "candidateList",
                        "restriction"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "substances:read"
      }
    },
    "/substances/watchlist": {
      "get": {
        "tags": [
          "Substances & materials"
        ],
        "operationId": "Substances_watchlist",
        "summary": "List substance watchlist",
        "description": "API key scope `substances:read` (or `substances:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "candidate": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "candidate"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "substances:read"
      },
      "post": {
        "tags": [
          "Substances & materials"
        ],
        "operationId": "Substances_addWatch",
        "summary": "Create substance watchlist",
        "description": "API key scope `substances:write` (or `substances:*`, `*`). Console users need the owner / admin / member role.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "cas": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "reason": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "candidate": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "candidate"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "substances:write"
      }
    },
    "/substances/watchlist/{cas}": {
      "delete": {
        "tags": [
          "Substances & materials"
        ],
        "operationId": "Substances_removeWatch",
        "summary": "Delete substance watchlist",
        "description": "API key scope `substances:write` (or `substances:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "cas",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "candidate": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "candidate"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "substances:write"
      }
    },
    "/supplier-risk/catalogue": {
      "get": {
        "tags": [
          "Suppliers"
        ],
        "operationId": "SupplierRisk_catalogue",
        "summary": "List supplier risk catalogue",
        "description": "The catalogue and the formula: what a signal is, where it can come from and what it is worth.\n\nAPI key scope `supplier-risk:read` (or `supplier-risk:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "riskVersion": {
                      "type": "string"
                    },
                    "catalogueVersion": {
                      "type": "string"
                    },
                    "categories": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string",
                            "enum": [
                              "quality",
                              "labour",
                              "environment",
                              "governance",
                              "sanctions",
                              "logistics",
                              "financial"
                            ]
                          },
                          "label": {
                            "type": "string"
                          },
                          "question": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "key",
                          "label",
                          "question"
                        ]
                      }
                    },
                    "signals": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "category": {
                            "type": "string",
                            "enum": [
                              "quality",
                              "labour",
                              "environment",
                              "governance",
                              "sanctions",
                              "logistics",
                              "financial"
                            ]
                          },
                          "direction": {
                            "type": "string",
                            "enum": [
                              "risk",
                              "mitigation"
                            ]
                          },
                          "severity": {
                            "type": "string",
                            "enum": [
                              "low",
                              "medium",
                              "high"
                            ]
                          },
                          "indicator": {
                            "type": "string"
                          },
                          "source": {
                            "type": "string",
                            "enum": [
                              "document",
                              "platform",
                              "external-registry"
                            ]
                          },
                          "externalSource": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "note": {
                            "type": "string"
                          },
                          "phrases": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "key",
                          "label",
                          "category",
                          "direction",
                          "severity",
                          "indicator",
                          "source",
                          "externalSource",
                          "note",
                          "phrases"
                        ]
                      }
                    },
                    "unassessable": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "requires": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "key",
                          "label"
                        ]
                      }
                    },
                    "maxPenalty": {
                      "type": "number"
                    },
                    "formula": {
                      "type": "string"
                    },
                    "rules": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "disclaimer": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "riskVersion",
                    "catalogueVersion",
                    "categories",
                    "signals",
                    "unassessable",
                    "maxPenalty",
                    "formula",
                    "rules",
                    "disclaimer"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "supplier-risk:read"
      }
    },
    "/suppliers": {
      "get": {
        "tags": [
          "Suppliers"
        ],
        "operationId": "Suppliers_list",
        "summary": "List suppliers",
        "description": "API key scope `suppliers:read` (or `suppliers:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "organizationId": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "createdAt": {
                        "type": "string",
                        "format": "date-time"
                      },
                      "metadata": {},
                      "country": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "email": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "trustScore": {
                        "type": [
                          "number",
                          "null"
                        ]
                      },
                      "tier": {
                        "type": "number"
                      },
                      "viaSupplierId": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "identityWithheld": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "id",
                      "organizationId",
                      "name",
                      "createdAt",
                      "metadata",
                      "country",
                      "email",
                      "trustScore",
                      "tier",
                      "viaSupplierId",
                      "identityWithheld"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "suppliers:read"
      },
      "post": {
        "tags": [
          "Suppliers"
        ],
        "operationId": "Suppliers_create",
        "summary": "Create a supplier",
        "description": "API key scope `suppliers:write` (or `suppliers:*`, `*`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "country": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "email": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Supplier"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "suppliers:write"
      }
    },
    "/suppliers/{id}": {
      "patch": {
        "tags": [
          "Suppliers"
        ],
        "operationId": "Suppliers_update",
        "summary": "Update a supplier",
        "description": "API key scope `suppliers:write` (or `suppliers:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "country": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "email": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "metadata": {},
                    "country": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "email": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "trustScore": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "tier": {
                      "type": "number"
                    },
                    "viaSupplierId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "identityWithheld": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "id",
                    "organizationId",
                    "name",
                    "createdAt",
                    "metadata",
                    "country",
                    "email",
                    "trustScore",
                    "tier",
                    "viaSupplierId",
                    "identityWithheld"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "suppliers:write"
      },
      "get": {
        "tags": [
          "Suppliers"
        ],
        "operationId": "Suppliers_get",
        "summary": "Get a supplier",
        "description": "API key scope `suppliers:read` (or `suppliers:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "metadata": {},
                    "country": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "email": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "trustScore": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "tier": {
                      "type": "number"
                    },
                    "viaSupplierId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "identityWithheld": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "id",
                    "organizationId",
                    "name",
                    "createdAt",
                    "metadata",
                    "country",
                    "email",
                    "trustScore",
                    "tier",
                    "viaSupplierId",
                    "identityWithheld"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "suppliers:read"
      }
    },
    "/suppliers/{id}/capabilities": {
      "get": {
        "tags": [
          "Suppliers"
        ],
        "operationId": "Sourcing_capabilities",
        "summary": "Get supplier capabilities",
        "description": "What a supplier is recorded as able to make (the input the analysis depends on).\n\nAPI key scope `suppliers:read` (or `suppliers:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "supplierId": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "country": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "materials": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "normalised": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "criticalMaterials": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "level": {
                            "type": "string",
                            "enum": [
                              "low",
                              "medium",
                              "high"
                            ]
                          },
                          "reason": {
                            "type": "string"
                          },
                          "material": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "level",
                          "reason",
                          "material"
                        ]
                      }
                    },
                    "certifications": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "validUntil": {}
                        },
                        "required": [
                          "name",
                          "validUntil"
                        ]
                      }
                    },
                    "leadTimeDays": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "recorded": {
                      "type": "boolean"
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "supplierId",
                    "name",
                    "country",
                    "materials",
                    "normalised",
                    "criticalMaterials",
                    "certifications",
                    "leadTimeDays",
                    "recorded",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "suppliers:read"
      },
      "put": {
        "tags": [
          "Suppliers"
        ],
        "operationId": "Sourcing_setCapabilities",
        "summary": "Update supplier capabilities",
        "description": "Record capabilities: materials, certifications with validity, lead time.\n\nAPI key scope `suppliers:write` (or `suppliers:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "materials": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "certifications": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "validUntil": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "name"
                      ]
                    }
                  },
                  "leadTimeDays": {
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "notes": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "replace": {
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "updatedAt": {},
                    "supplierId": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "country": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "materials": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "normalised": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "criticalMaterials": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "level": {
                            "type": "string",
                            "enum": [
                              "low",
                              "medium",
                              "high"
                            ]
                          },
                          "reason": {
                            "type": "string"
                          },
                          "material": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "level",
                          "reason",
                          "material"
                        ]
                      }
                    },
                    "certifications": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "validUntil": {}
                        },
                        "required": [
                          "name",
                          "validUntil"
                        ]
                      }
                    },
                    "leadTimeDays": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "recorded": {
                      "type": "boolean"
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "updatedAt",
                    "supplierId",
                    "name",
                    "country",
                    "materials",
                    "normalised",
                    "criticalMaterials",
                    "certifications",
                    "leadTimeDays",
                    "recorded",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "suppliers:write"
      }
    },
    "/suppliers/{id}/request": {
      "post": {
        "tags": [
          "Suppliers"
        ],
        "operationId": "Suppliers_requestAlias",
        "summary": "Add supplier request",
        "description": "API key scope `suppliers:write` (or `suppliers:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "dppId": {
                    "type": "string"
                  },
                  "requestedFields": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "requestItems": {},
                  "requestedDocuments": {},
                  "message": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierRequest2"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "suppliers:write"
      }
    },
    "/suppliers/{id}/requests": {
      "post": {
        "tags": [
          "Suppliers"
        ],
        "operationId": "Suppliers_request",
        "summary": "Add supplier requests",
        "description": "API key scope `suppliers:write` (or `suppliers:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "maxItems": 10,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 160
                    },
                    "instructions": {
                      "type": "string",
                      "maxLength": 1000
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierRequest2"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "suppliers:write"
      },
      "get": {
        "tags": [
          "Suppliers"
        ],
        "operationId": "Suppliers_requests",
        "summary": "Get supplier requests",
        "description": "API key scope `suppliers:read` (or `suppliers:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SupplierRequest"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "suppliers:read"
      }
    },
    "/suppliers/{id}/requests/{requestId}/invite": {
      "post": {
        "tags": [
          "Suppliers"
        ],
        "operationId": "Suppliers_invite",
        "summary": "Add supplier requests invite",
        "description": "API key scope `suppliers:write` (or `suppliers:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "requestId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "inviteSent": {
                      "type": "boolean"
                    },
                    "driver": {
                      "type": "string"
                    },
                    "inviteUrl": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "inviteSent",
                    "driver"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "suppliers:write"
      }
    },
    "/suppliers/{id}/requests/{requestId}/invite/resend": {
      "post": {
        "tags": [
          "Suppliers"
        ],
        "operationId": "Suppliers_resendInvite",
        "summary": "Add supplier requests invite resend",
        "description": "API key scope `suppliers:write` (or `suppliers:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "requestId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "inviteSent": {
                      "type": "boolean"
                    },
                    "driver": {
                      "type": "string"
                    },
                    "inviteUrl": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "inviteSent",
                    "driver"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "suppliers:write"
      }
    },
    "/suppliers/{id}/requests/{requestId}/respond": {
      "post": {
        "tags": [
          "Suppliers"
        ],
        "operationId": "Suppliers_respond",
        "summary": "Respond requests of a supplier",
        "description": "Record a response the supplier gave outside the portal (email, call, a signed form). It goes through the same bounds as a portal answer, and the audit entry names who recorded it and keeps any answer it replaces.\n\nAPI key scope `suppliers:write` (or `suppliers:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "requestId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "data": {
                    "type": "object",
                    "additionalProperties": {}
                  },
                  "note": {
                    "type": "string"
                  }
                },
                "required": [
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierRequest"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "suppliers:write"
      }
    },
    "/suppliers/{id}/risk": {
      "get": {
        "tags": [
          "Suppliers"
        ],
        "operationId": "Suppliers_risk",
        "summary": "Get supplier risk",
        "description": "Deterministic supplier risk heuristic (master spec §6.2, local signals only): trust score, request response rate, country risk tier and data recency. External registries (sanctions, OpenCorporates, EcoVadis) remain adapters. The arithmetic lives in `@dpp/shared` (`supplierRiskSignals` / `supplierRiskScore`), because the sourcing resilience analysis and the AI-assisted assessment must produce the same number: this endpoint used to carry a second copy of the formula, and the two had drifted apart.\n\nAPI key scope `suppliers:read` (or `suppliers:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "supplierId": {
                      "type": "string"
                    },
                    "score": {
                      "type": "number"
                    },
                    "level": {
                      "type": "string",
                      "enum": [
                        "low",
                        "medium",
                        "high"
                      ]
                    },
                    "factors": {
                      "type": "object",
                      "properties": {
                        "trustScore": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "responseRate": {
                          "type": "number"
                        },
                        "requests": {
                          "type": "number"
                        },
                        "responded": {
                          "type": "number"
                        },
                        "country": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "countryRiskTier": {
                          "type": "string",
                          "enum": [
                            "low",
                            "medium",
                            "high",
                            "unknown"
                          ]
                        },
                        "lastResponseDaysAgo": {
                          "type": [
                            "number",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "trustScore",
                        "responseRate",
                        "requests",
                        "responded",
                        "country",
                        "countryRiskTier",
                        "lastResponseDaysAgo"
                      ]
                    },
                    "latestAssessment": {
                      "type": "object",
                      "properties": {
                        "reference": {
                          "type": "string"
                        },
                        "verdict": {
                          "type": "string"
                        },
                        "combinedIndex": {
                          "type": "number"
                        },
                        "combinedLevel": {
                          "type": "string"
                        },
                        "riskPoints": {
                          "type": "number"
                        },
                        "mitigationPoints": {
                          "type": "number"
                        },
                        "unassessableCount": {
                          "type": "number"
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        }
                      },
                      "required": [
                        "reference",
                        "verdict",
                        "combinedIndex",
                        "combinedLevel",
                        "riskPoints",
                        "mitigationPoints",
                        "unassessableCount",
                        "createdAt"
                      ]
                    },
                    "disclaimer": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "supplierId",
                    "score",
                    "level",
                    "factors",
                    "latestAssessment",
                    "disclaimer"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "suppliers:read"
      }
    },
    "/suppliers/{id}/risk-assessment": {
      "post": {
        "tags": [
          "Suppliers"
        ],
        "operationId": "SupplierRisk_assess",
        "summary": "Add supplier risk assessment",
        "description": "Assesses a supplier from its declaration responses and attributed documents. dryRun records nothing.\n\nAPI key scope `suppliers:write` (or `suppliers:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RiskAssessmentInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "recorded": {
                          "type": "boolean"
                        },
                        "notes": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "supplier": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            },
                            "country": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "trustScore": {
                              "type": [
                                "number",
                                "null"
                              ]
                            },
                            "materials": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "required": [
                            "id",
                            "name",
                            "country",
                            "trustScore",
                            "materials"
                          ]
                        },
                        "assessedAt": {
                          "type": "string"
                        },
                        "basis": {
                          "type": "object",
                          "properties": {
                            "responses": {
                              "type": "number"
                            },
                            "documents": {
                              "type": "number"
                            },
                            "readableDocuments": {
                              "type": "number"
                            },
                            "evidenceCharacters": {
                              "type": "number"
                            },
                            "attributionRule": {
                              "type": "string"
                            },
                            "screeningClosed": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "required": [
                            "responses",
                            "documents",
                            "readableDocuments",
                            "evidenceCharacters",
                            "attributionRule",
                            "screeningClosed"
                          ]
                        },
                        "deterministic": {
                          "type": "object",
                          "properties": {
                            "score": {
                              "type": "number"
                            },
                            "level": {
                              "type": "string",
                              "enum": [
                                "low",
                                "medium",
                                "high"
                              ]
                            },
                            "factors": {
                              "type": "object",
                              "properties": {
                                "trustScore": {
                                  "type": [
                                    "number",
                                    "null"
                                  ]
                                },
                                "responseRate": {
                                  "type": "number"
                                },
                                "requests": {
                                  "type": "number"
                                },
                                "responded": {
                                  "type": "number"
                                },
                                "country": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "countryRiskTier": {
                                  "type": "string",
                                  "enum": [
                                    "low",
                                    "medium",
                                    "high",
                                    "unknown"
                                  ]
                                },
                                "lastResponseDaysAgo": {
                                  "type": [
                                    "number",
                                    "null"
                                  ]
                                }
                              },
                              "required": [
                                "trustScore",
                                "responseRate",
                                "requests",
                                "responded",
                                "country",
                                "countryRiskTier",
                                "lastResponseDaysAgo"
                              ]
                            },
                            "note": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "score",
                            "level",
                            "factors",
                            "note"
                          ]
                        },
                        "signals": {
                          "type": "object",
                          "properties": {
                            "accepted": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "key": {
                                    "type": "string"
                                  },
                                  "label": {
                                    "type": "string"
                                  },
                                  "category": {
                                    "type": "string",
                                    "enum": [
                                      "quality",
                                      "labour",
                                      "environment",
                                      "governance",
                                      "sanctions",
                                      "logistics",
                                      "financial"
                                    ]
                                  },
                                  "direction": {
                                    "type": "string",
                                    "enum": [
                                      "risk",
                                      "mitigation"
                                    ]
                                  },
                                  "severity": {
                                    "type": "string",
                                    "enum": [
                                      "low",
                                      "medium",
                                      "high"
                                    ]
                                  },
                                  "weight": {
                                    "type": "number"
                                  },
                                  "evidence": {
                                    "type": "string"
                                  },
                                  "recordedBy": {
                                    "type": "string",
                                    "enum": [
                                      "model",
                                      "reader",
                                      "platform"
                                    ]
                                  },
                                  "source": {
                                    "type": "string",
                                    "enum": [
                                      "document",
                                      "platform",
                                      "external-registry"
                                    ]
                                  },
                                  "note": {
                                    "type": [
                                      "string",
                                      "null"
                                    ]
                                  }
                                },
                                "required": [
                                  "key",
                                  "label",
                                  "category",
                                  "direction",
                                  "severity",
                                  "weight",
                                  "evidence",
                                  "recordedBy",
                                  "source",
                                  "note"
                                ]
                              }
                            },
                            "dropped": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "signal": {
                                    "type": "string"
                                  },
                                  "reason": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "signal",
                                  "reason"
                                ]
                              }
                            },
                            "ignored": {
                              "type": "array",
                              "items": {
                                "$ref": "#/components/schemas/IgnoredRiskField"
                              }
                            },
                            "duplicates": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "signal": {
                                    "type": "string"
                                  },
                                  "reason": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "signal",
                                  "reason"
                                ]
                              }
                            },
                            "acceptedCount": {
                              "type": "number"
                            },
                            "evidenceAcceptedCount": {
                              "type": "number"
                            },
                            "platformSignals": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "riskPoints": {
                              "type": "number"
                            },
                            "mitigationPoints": {
                              "type": "number"
                            },
                            "netRiskPoints": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "accepted",
                            "dropped",
                            "ignored",
                            "duplicates",
                            "acceptedCount",
                            "evidenceAcceptedCount",
                            "platformSignals",
                            "riskPoints",
                            "mitigationPoints",
                            "netRiskPoints"
                          ]
                        },
                        "dimensions": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/RiskDimension"
                          }
                        },
                        "index": {
                          "type": "object",
                          "properties": {
                            "deterministicScore": {
                              "type": "number"
                            },
                            "netRiskPoints": {
                              "type": "number"
                            },
                            "penalty": {
                              "type": "number"
                            },
                            "combinedIndex": {
                              "type": "number"
                            },
                            "level": {
                              "type": "string",
                              "enum": [
                                "low",
                                "medium",
                                "high"
                              ]
                            },
                            "formula": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "deterministicScore",
                            "netRiskPoints",
                            "penalty",
                            "combinedIndex",
                            "level",
                            "formula"
                          ]
                        },
                        "unassessable": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "label": {
                                "type": "string"
                              },
                              "category": {
                                "type": "string",
                                "enum": [
                                  "quality",
                                  "labour",
                                  "environment",
                                  "governance",
                                  "sanctions",
                                  "logistics",
                                  "financial"
                                ]
                              },
                              "requires": {
                                "type": "string"
                              },
                              "note": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "key",
                              "label",
                              "category",
                              "note"
                            ]
                          }
                        },
                        "verdict": {
                          "$ref": "#/components/schemas/RiskVerdict"
                        },
                        "actions": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "catalogueVersion": {
                          "type": "string"
                        },
                        "riskVersion": {
                          "type": "string"
                        },
                        "provider": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "model": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "configured": {
                              "type": "boolean"
                            },
                            "degraded": {
                              "type": "boolean"
                            },
                            "providerError": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "latencyMs": {
                              "type": [
                                "number",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "name",
                            "model",
                            "configured",
                            "degraded",
                            "providerError",
                            "latencyMs"
                          ]
                        },
                        "caveat": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "writtenToSupplier": {
                          "type": "boolean"
                        },
                        "reference": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "recorded",
                        "notes",
                        "supplier",
                        "assessedAt",
                        "basis",
                        "deterministic",
                        "signals",
                        "dimensions",
                        "index",
                        "unassessable",
                        "verdict",
                        "actions",
                        "catalogueVersion",
                        "riskVersion",
                        "provider",
                        "caveat",
                        "disclaimer",
                        "writtenToSupplier",
                        "reference"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "recorded": {
                          "type": "boolean"
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "notes": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "reference": {
                          "type": "string"
                        },
                        "supplier": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            },
                            "country": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "trustScore": {
                              "type": [
                                "number",
                                "null"
                              ]
                            },
                            "materials": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "required": [
                            "id",
                            "name",
                            "country",
                            "trustScore",
                            "materials"
                          ]
                        },
                        "assessedAt": {
                          "type": "string"
                        },
                        "basis": {
                          "type": "object",
                          "properties": {
                            "responses": {
                              "type": "number"
                            },
                            "documents": {
                              "type": "number"
                            },
                            "readableDocuments": {
                              "type": "number"
                            },
                            "evidenceCharacters": {
                              "type": "number"
                            },
                            "attributionRule": {
                              "type": "string"
                            },
                            "screeningClosed": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "required": [
                            "responses",
                            "documents",
                            "readableDocuments",
                            "evidenceCharacters",
                            "attributionRule",
                            "screeningClosed"
                          ]
                        },
                        "deterministic": {
                          "type": "object",
                          "properties": {
                            "score": {
                              "type": "number"
                            },
                            "level": {
                              "type": "string",
                              "enum": [
                                "low",
                                "medium",
                                "high"
                              ]
                            },
                            "factors": {
                              "type": "object",
                              "properties": {
                                "trustScore": {
                                  "type": [
                                    "number",
                                    "null"
                                  ]
                                },
                                "responseRate": {
                                  "type": "number"
                                },
                                "requests": {
                                  "type": "number"
                                },
                                "responded": {
                                  "type": "number"
                                },
                                "country": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "countryRiskTier": {
                                  "type": "string",
                                  "enum": [
                                    "low",
                                    "medium",
                                    "high",
                                    "unknown"
                                  ]
                                },
                                "lastResponseDaysAgo": {
                                  "type": [
                                    "number",
                                    "null"
                                  ]
                                }
                              },
                              "required": [
                                "trustScore",
                                "responseRate",
                                "requests",
                                "responded",
                                "country",
                                "countryRiskTier",
                                "lastResponseDaysAgo"
                              ]
                            },
                            "note": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "score",
                            "level",
                            "factors",
                            "note"
                          ]
                        },
                        "signals": {
                          "type": "object",
                          "properties": {
                            "accepted": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "key": {
                                    "type": "string"
                                  },
                                  "label": {
                                    "type": "string"
                                  },
                                  "category": {
                                    "type": "string",
                                    "enum": [
                                      "quality",
                                      "labour",
                                      "environment",
                                      "governance",
                                      "sanctions",
                                      "logistics",
                                      "financial"
                                    ]
                                  },
                                  "direction": {
                                    "type": "string",
                                    "enum": [
                                      "risk",
                                      "mitigation"
                                    ]
                                  },
                                  "severity": {
                                    "type": "string",
                                    "enum": [
                                      "low",
                                      "medium",
                                      "high"
                                    ]
                                  },
                                  "weight": {
                                    "type": "number"
                                  },
                                  "evidence": {
                                    "type": "string"
                                  },
                                  "recordedBy": {
                                    "type": "string",
                                    "enum": [
                                      "model",
                                      "reader",
                                      "platform"
                                    ]
                                  },
                                  "source": {
                                    "type": "string",
                                    "enum": [
                                      "document",
                                      "platform",
                                      "external-registry"
                                    ]
                                  },
                                  "note": {
                                    "type": [
                                      "string",
                                      "null"
                                    ]
                                  }
                                },
                                "required": [
                                  "key",
                                  "label",
                                  "category",
                                  "direction",
                                  "severity",
                                  "weight",
                                  "evidence",
                                  "recordedBy",
                                  "source",
                                  "note"
                                ]
                              }
                            },
                            "dropped": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "signal": {
                                    "type": "string"
                                  },
                                  "reason": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "signal",
                                  "reason"
                                ]
                              }
                            },
                            "ignored": {
                              "type": "array",
                              "items": {
                                "$ref": "#/components/schemas/IgnoredRiskField"
                              }
                            },
                            "duplicates": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "signal": {
                                    "type": "string"
                                  },
                                  "reason": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "signal",
                                  "reason"
                                ]
                              }
                            },
                            "acceptedCount": {
                              "type": "number"
                            },
                            "evidenceAcceptedCount": {
                              "type": "number"
                            },
                            "platformSignals": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "riskPoints": {
                              "type": "number"
                            },
                            "mitigationPoints": {
                              "type": "number"
                            },
                            "netRiskPoints": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "accepted",
                            "dropped",
                            "ignored",
                            "duplicates",
                            "acceptedCount",
                            "evidenceAcceptedCount",
                            "platformSignals",
                            "riskPoints",
                            "mitigationPoints",
                            "netRiskPoints"
                          ]
                        },
                        "dimensions": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/RiskDimension"
                          }
                        },
                        "index": {
                          "type": "object",
                          "properties": {
                            "deterministicScore": {
                              "type": "number"
                            },
                            "netRiskPoints": {
                              "type": "number"
                            },
                            "penalty": {
                              "type": "number"
                            },
                            "combinedIndex": {
                              "type": "number"
                            },
                            "level": {
                              "type": "string",
                              "enum": [
                                "low",
                                "medium",
                                "high"
                              ]
                            },
                            "formula": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "deterministicScore",
                            "netRiskPoints",
                            "penalty",
                            "combinedIndex",
                            "level",
                            "formula"
                          ]
                        },
                        "unassessable": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "label": {
                                "type": "string"
                              },
                              "category": {
                                "type": "string",
                                "enum": [
                                  "quality",
                                  "labour",
                                  "environment",
                                  "governance",
                                  "sanctions",
                                  "logistics",
                                  "financial"
                                ]
                              },
                              "requires": {
                                "type": "string"
                              },
                              "note": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "key",
                              "label",
                              "category",
                              "note"
                            ]
                          }
                        },
                        "verdict": {
                          "$ref": "#/components/schemas/RiskVerdict"
                        },
                        "actions": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "catalogueVersion": {
                          "type": "string"
                        },
                        "riskVersion": {
                          "type": "string"
                        },
                        "provider": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "model": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "configured": {
                              "type": "boolean"
                            },
                            "degraded": {
                              "type": "boolean"
                            },
                            "providerError": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "latencyMs": {
                              "type": [
                                "number",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "name",
                            "model",
                            "configured",
                            "degraded",
                            "providerError",
                            "latencyMs"
                          ]
                        },
                        "caveat": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "writtenToSupplier": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "id",
                        "recorded",
                        "createdAt",
                        "notes",
                        "reference",
                        "supplier",
                        "assessedAt",
                        "basis",
                        "deterministic",
                        "signals",
                        "dimensions",
                        "index",
                        "unassessable",
                        "verdict",
                        "actions",
                        "catalogueVersion",
                        "riskVersion",
                        "provider",
                        "caveat",
                        "disclaimer",
                        "writtenToSupplier"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "suppliers:write"
      }
    },
    "/suppliers/{id}/risk-assessments": {
      "get": {
        "tags": [
          "Suppliers"
        ],
        "operationId": "SupplierRisk_history",
        "summary": "Get supplier risk assessments",
        "description": "API key scope `suppliers:read` (or `suppliers:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "supplierId": {
                      "type": "string"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "reference": {
                            "type": "string"
                          },
                          "versionNumber": {
                            "type": "number"
                          },
                          "status": {
                            "type": "string"
                          },
                          "verdict": {
                            "type": "string"
                          },
                          "deterministicScore": {
                            "type": "number"
                          },
                          "combinedIndex": {
                            "type": "number"
                          },
                          "combinedLevel": {
                            "type": "string"
                          },
                          "riskPoints": {
                            "type": "number"
                          },
                          "mitigationPoints": {
                            "type": "number"
                          },
                          "acceptedCount": {
                            "type": "number"
                          },
                          "droppedCount": {
                            "type": "number"
                          },
                          "ignoredCount": {
                            "type": "number"
                          },
                          "unassessableCount": {
                            "type": "number"
                          },
                          "provider": {
                            "type": "string"
                          },
                          "degraded": {
                            "type": "boolean"
                          },
                          "note": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "createdAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "revokedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "format": "date-time"
                          },
                          "revokeReason": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "reference",
                          "versionNumber",
                          "status",
                          "verdict",
                          "deterministicScore",
                          "combinedIndex",
                          "combinedLevel",
                          "riskPoints",
                          "mitigationPoints",
                          "acceptedCount",
                          "droppedCount",
                          "ignoredCount",
                          "unassessableCount",
                          "provider",
                          "degraded",
                          "note",
                          "createdAt",
                          "revokedAt",
                          "revokeReason"
                        ]
                      }
                    },
                    "count": {
                      "type": "number"
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "supplierId",
                    "items",
                    "count",
                    "note"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "suppliers:read"
      }
    },
    "/suppliers/{id}/screening": {
      "put": {
        "tags": [
          "Suppliers"
        ],
        "operationId": "SupplierRisk_recordScreening",
        "summary": "Update supplier screening",
        "description": "Records the sanctions screening result on the supplier record. This is what closes the platform-side gap - without it every assessment reports the absence of a check.\n\nAPI key scope `suppliers:write` (or `suppliers:*`, `*`). Console users need the owner / admin / member role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "source": {
                    "type": "string"
                  },
                  "reference": {
                    "type": "string"
                  },
                  "date": {
                    "type": "string"
                  },
                  "outcome": {
                    "type": "string"
                  },
                  "note": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "supplierId": {
                      "type": "string"
                    },
                    "screening": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string"
                        },
                        "reference": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "date": {
                          "type": "string"
                        },
                        "outcome": {
                          "type": "string"
                        },
                        "note": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "recordedAt": {
                          "type": "string"
                        },
                        "recordedBy": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "source",
                        "reference",
                        "date",
                        "outcome",
                        "note",
                        "recordedAt",
                        "recordedBy"
                      ]
                    },
                    "effect": {
                      "type": "string"
                    },
                    "caveat": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "supplierId",
                    "screening",
                    "effect",
                    "caveat"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "suppliers:write"
      }
    },
    "/suppliers/requests": {
      "get": {
        "tags": [
          "Suppliers"
        ],
        "operationId": "Suppliers_allRequests",
        "summary": "List supplier requests",
        "description": "API key scope `suppliers:read` (or `suppliers:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "request": {
                        "$ref": "#/components/schemas/SupplierRequest"
                      },
                      "supplierName": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "request",
                      "supplierName"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "suppliers:read"
      }
    },
    "/webhooks": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "operationId": "Webhooks_list",
        "summary": "List webhooks",
        "description": "API key scope `webhooks:read` (or `webhooks:*`, `*`). Console users need the owner / admin role.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "hasSecret": {
                        "type": "boolean"
                      },
                      "secretHint": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "hasSecret",
                      "secretHint"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "webhooks:read"
      },
      "post": {
        "tags": [
          "Webhooks"
        ],
        "operationId": "Webhooks_create",
        "summary": "Create a webhook",
        "description": "API key scope `webhooks:write` (or `webhooks:*`, `*`). Console users need the owner / admin role.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "secret": {
                    "type": "string"
                  },
                  "events": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "url"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "secret": {
                      "type": "string"
                    },
                    "hasSecret": {
                      "type": "boolean"
                    },
                    "secretHint": {
                      "type": "string"
                    },
                    "active": {
                      "type": "boolean"
                    },
                    "id": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "url": {
                      "type": "string"
                    },
                    "events": {}
                  },
                  "required": [
                    "secret",
                    "hasSecret",
                    "secretHint",
                    "active",
                    "id",
                    "organizationId",
                    "createdAt",
                    "url",
                    "events"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "webhooks:write"
      }
    },
    "/webhooks/{id}": {
      "delete": {
        "tags": [
          "Webhooks"
        ],
        "operationId": "Webhooks_remove",
        "summary": "Delete a webhook",
        "description": "API key scope `webhooks:write` (or `webhooks:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "deleted": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "deleted"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "webhooks:write"
      }
    },
    "/webhooks/{id}/deliveries": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "operationId": "Webhooks_deliveries",
        "summary": "Get webhook deliveries",
        "description": "Delivery attempts (status codes, failures, timestamps).\n\nAPI key scope `webhooks:read` (or `webhooks:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WebhookDelivery"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "webhooks:read"
      }
    },
    "/webhooks/{id}/deliveries/{deliveryId}/replay": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "operationId": "Webhooks_replay",
        "summary": "Replay deliveries of a webhook",
        "description": "Re-queues a recorded delivery (requires a stored payload).\n\nAPI key scope `webhooks:write` (or `webhooks:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "replayed": {
                      "type": "boolean"
                    },
                    "deliveryId": {
                      "type": "string"
                    },
                    "event": {
                      "type": "string"
                    },
                    "target": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "replayed",
                    "deliveryId",
                    "event",
                    "target"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "webhooks:write"
      }
    },
    "/webhooks/events": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "operationId": "Webhooks_events",
        "summary": "List webhook events",
        "description": "Supported webhook event catalogue (master spec §9.2).\n\nAPI key scope `webhooks:read` (or `webhooks:*`, `*`). Console users need the owner / admin role.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "events": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "event": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "event",
                          "description"
                        ]
                      }
                    }
                  },
                  "required": [
                    "events"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "webhooks:read"
      }
    },
    "/workspaces": {
      "get": {
        "tags": [
          "Workspaces"
        ],
        "operationId": "Workspaces_list",
        "summary": "List workspaces",
        "description": "API key scope `workspaces:read` (or `workspaces:*`, `*`).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "productCount": {
                        "type": "number"
                      },
                      "id": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "productCount",
                      "id"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "workspaces:read"
      },
      "post": {
        "tags": [
          "Workspaces"
        ],
        "operationId": "Workspaces_create",
        "summary": "Create a workspace",
        "description": "API key scope `workspaces:write` (or `workspaces:*`, `*`). Console users need the owner / admin role.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "brand": {
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workspace"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "workspaces:write"
      }
    },
    "/workspaces/{id}": {
      "get": {
        "tags": [
          "Workspaces"
        ],
        "operationId": "Workspaces_get",
        "summary": "Get a workspace",
        "description": "API key scope `workspaces:read` (or `workspaces:*`, `*`).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workspace"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "workspaces:read"
      },
      "patch": {
        "tags": [
          "Workspaces"
        ],
        "operationId": "Workspaces_update",
        "summary": "Update a workspace",
        "description": "API key scope `workspaces:write` (or `workspaces:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "brand": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workspace"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "workspaces:write"
      },
      "delete": {
        "tags": [
          "Workspaces"
        ],
        "operationId": "Workspaces_remove",
        "summary": "Delete a workspace",
        "description": "API key scope `workspaces:write` (or `workspaces:*`, `*`). Console users need the owner / admin role.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "deleted": {
                      "type": "boolean"
                    },
                    "id": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "deleted",
                    "id"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Scope, role or plan limit does not allow this"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-required-scope": "workspaces:write"
      }
    }
  }
}
