{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "additionalProperties": true,
  "properties": {
    "type": {
      "type": "array",
      "readOnly": true,
      "default": [
        "DigitalConformityCredential",
        "VerifiableCredential"
      ],
      "items": {
        "type": "string"
      },
      "allOf": [
        {
          "contains": {
            "const": "DigitalConformityCredential",
            "minContains": 1
          }
        },
        {
          "contains": {
            "const": "VerifiableCredential",
            "minContains": 1
          }
        }
      ]
    },
    "@context": {
      "example": [
        "https://www.w3.org/ns/credentials/v2",
        "https://vocabulary.uncefact.org/untp/0.8.0/context/"
      ],
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "A list of JSON-LD context URIs that define the semantic meaning of properties within the credential. ",
      "readOnly": true,
      "prefixItems": [
        {
          "const": "https://www.w3.org/ns/credentials/v2",
          "type": "string"
        },
        {
          "const": "https://vocabulary.uncefact.org/untp/0.8.0/context/",
          "type": "string"
        }
      ],
      "default": [
        "https://www.w3.org/ns/credentials/v2",
        "https://vocabulary.uncefact.org/untp/0.8.0/context/"
      ],
      "minItems": 2,
      "uniqueItems": true
    },
    "id": {
      "example": "https://example-company.com/credentials/2a423366-a0d6-4855-ba65-2e0c926d09b0",
      "type": "string",
      "format": "uri",
      "description": "A unique identifier (URI) assigned to this verifiable credential."
    },
    "issuer": {
      "$ref": "#/$defs/IssuerParty",
      "description": "The organisation that is the issuer of this VC. The \"id\" property MUST be a W3C DID. Other identifiers, such as business or tax registration numbers, are listed in the \"issuerAlsoKnownAs\" property."
    },
    "validFrom": {
      "example": "2024-03-15T12:00:00Z",
      "type": "string",
      "format": "date-time",
      "description": "The date and time from which the credential is valid."
    },
    "validUntil": {
      "example": "2034-03-15T12:00:00Z",
      "type": "string",
      "format": "date-time",
      "description": "The expiry date (if applicable) of this verifiable credential."
    },
    "name": {
      "example": "Some name",
      "type": "string",
      "description": "Name of this verifiable credential instance (eg the title of a digital product passport, facility record, lifecycle event, or conformity credential)"
    },
    "credentialStatus": {
      "oneOf": [
        {
          "$ref": "#/$defs/BitstringStatusListEntry"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/BitstringStatusListEntry"
          },
          "minItems": 1
        }
      ],
      "description": "A W3C VCDM2.0 compliant object, or array of such objects, containing credential status information."
    },
    "renderMethod": {
      "oneOf": [
        {
          "$ref": "#/$defs/RenderMethod"
        },
        {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/$defs/RenderMethod"
          }
        }
      ],
      "description": "Human rendering information for this credential. A single render method or an array of them. UNTP recommends SuiteRenderMethod but accepts any render method type, so each render method only needs a type, and a SuiteRenderMethod also needs a renderSuite."
    },
    "credentialSubject": {
      "$ref": "#/$defs/ConformityAttestation",
      "description": "The attestation that is the subject of this digital conformity credential."
    },
    "issuingSoftware": {
      "$ref": "#/$defs/IssuingSoftware",
      "description": "Optional metadata identifying the software product (and its vendor) that issued this credential. Useful for vendor traceability and conformity testing. Issuers MAY omit this property."
    }
  },
  "description": "A Digital Conformity Credential (DCC) credential.",
  "required": [
    "@context",
    "id",
    "issuer",
    "validFrom",
    "name",
    "credentialSubject"
  ],
  "$defs": {
    "IssuerParty": {
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "type": {
          "type": "array",
          "readOnly": true,
          "default": [
            "Party"
          ],
          "items": {
            "type": "string"
          },
          "allOf": [
            {
              "contains": {
                "const": "Party",
                "minContains": 1
              }
            }
          ]
        },
        "id": {
          "example": "did:web:identifiers.example-company.com:12345",
          "type": "string",
          "format": "uri",
          "description": "The W3C DID of the issuer. did:web and did:webvh are the RECOMMENDED methods."
        },
        "name": {
          "example": "Example Company Pty Ltd",
          "type": "string",
          "description": "The name of the issuer person or organisation"
        },
        "alsoKnownAs": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "type": {
                "type": "array",
                "readOnly": true,
                "default": [
                  "Party"
                ],
                "items": {
                  "type": "string"
                },
                "allOf": [
                  {
                    "contains": {
                      "const": "Party",
                      "minContains": 1
                    }
                  }
                ]
              },
              "id": {
                "example": "https://sample-business-register.gov/123456789",
                "type": "string",
                "format": "uri",
                "description": "Globally unique identifier of this party. Typically represented as a URI identifierScheme/Identifier URI"
              },
              "name": {
                "example": "Sample Company Ltd",
                "type": "string",
                "description": "Legal registered name of this party."
              },
              "registeredId": {
                "example": 90664869327,
                "type": "string",
                "description": "The registration number (alphanumeric) of the Party within the register. Unique within the register."
              },
              "idScheme": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "array",
                    "readOnly": true,
                    "default": [
                      "IdentifierScheme"
                    ],
                    "items": {
                      "type": "string"
                    },
                    "allOf": [
                      {
                        "contains": {
                          "const": "IdentifierScheme",
                          "minContains": 1
                        }
                      }
                    ]
                  },
                  "id": {
                    "type": "string",
                    "format": "uri",
                    "description": "The URI of this identifier scheme"
                  },
                  "name": {
                    "example": "Global Identifier Scheme Name",
                    "type": "string",
                    "description": "The name of the identifier scheme. "
                  }
                },
                "required": [
                  "id",
                  "name"
                ],
                "description": "The identifier scheme of the registeredId - eg the register that issued this identifier."
              }
            },
            "required": [
              "id",
              "name"
            ]
          },
          "description": "An optional list of other registered identifiers for this credential issuer "
        }
      },
      "description": "The issuer party (person or organisation) of a verifiable credential.",
      "required": [
        "id",
        "name"
      ]
    },
    "BitstringStatusListEntry": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "BitstringStatusListEntry"
          ],
          "example": "BitstringStatusListEntry",
          "description": "The type of status list - must be set to \"The type property MUST be BitstringStatusListEntry.\""
        },
        "id": {
          "example": "https://example-cab.com/credentials/status/3#94567",
          "type": "string",
          "format": "uri",
          "description": "optional identifier of this status list entry."
        },
        "statusPurpose": {
          "type": "string",
          "examples": [
            "refresh",
            "revocation",
            "suspension",
            "message"
          ],
          "description": "Status purpose drawn from a standard list but extensible as per w3c bitstring status list specification."
        },
        "statusListIndex": {
          "example": "94567",
          "type": "string",
          "pattern": "^[0-9]+$",
          "description": "The statusListIndex property MUST be an arbitrary size integer greater than or equal to 0, expressed as a string in base 10. The value identifies the position of the status of the verifiable credential."
        },
        "statusListCredential": {
          "example": "https://example-cab.com/credentials/status/4",
          "type": "string",
          "format": "uri",
          "description": "The statusListCredential property MUST be a URL to a verifiable credential. When the URL is dereferenced, the resulting verifiable credential MUST have type property that includes the BitstringStatusListCredential value."
        },
        "statusSize": {
          "type": "integer",
          "minimum": 1
        },
        "statusMessage": {
          "type": "array",
          "minItems": 2,
          "items": {
            "type": "object",
            "required": [
              "status",
              "message"
            ],
            "properties": {
              "status": {
                "type": "string",
                "pattern": "^0x[0-9a-fA-F]+$"
              },
              "message": {
                "type": "string"
              }
            }
          }
        },
        "statusReference": {
          "oneOf": [
            {
              "type": "string",
              "format": "uri"
            },
            {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uri"
              }
            }
          ]
        }
      },
      "description": "A privacy-preserving, space-efficient, and high-performance mechanism for publishing status information such as suspension or revocation of Verifiable Credentials through use of bitstrings.  See https://www.w3.org/TR/vc-bitstring-status-list/ for full details.",
      "required": [
        "type",
        "statusPurpose",
        "statusListIndex",
        "statusListCredential"
      ],
      "allOf": [
        {
          "if": {
            "type": "object",
            "required": [
              "statusSize"
            ],
            "properties": {
              "statusSize": {
                "type": "integer",
                "minimum": 2
              }
            }
          },
          "then": {
            "type": "object",
            "required": [
              "statusMessage"
            ],
            "properties": {
              "statusMessage": {
                "type": "array"
              }
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "statusSize": {
                "type": "integer",
                "const": 1
              }
            }
          },
          "then": {
            "type": "object",
            "properties": {
              "statusMessage": {
                "type": "array",
                "maxItems": 2
              }
            }
          }
        }
      ]
    },
    "RenderMethod": {
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "string"
              }
            }
          ],
          "description": "The type of render method, for example SuiteRenderMethod."
        }
      },
      "required": [
        "type"
      ],
      "if": {
        "properties": {
          "type": {
            "const": "SuiteRenderMethod"
          }
        },
        "required": [
          "type"
        ]
      },
      "then": {
        "$ref": "#/$defs/SuiteRenderMethod"
      },
      "description": "A render method as reserved by the W3C Verifiable Credentials Data Model v2.0. Any render method type is accepted. A render method whose type is SuiteRenderMethod is also checked against SuiteRenderMethod."
    },
    "SuiteRenderMethod": {
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "type": {
          "type": "string",
          "example": "SuiteRenderMethod",
          "description": "The type of render method. The W3C Working Draft of 6 October 2026 uses SuiteRenderMethod."
        },
        "id": {
          "example": "https://example-company.com/templates/dpp/1.0.0-render-method.json",
          "description": "Optional URL that dereferences to a hosted render method document."
        },
        "renderSuite": {
          "example": "html",
          "type": "string",
          "description": "Identifies the render suite, the set of algorithms used to produce the rendering. UNTP recommends html (an HTML fragment rendered in a sandbox). W3C also defines summary (a JSON template for wallet displays) and static (a pre-rendered payload such as an image, PDF or NFC message). Renderers ignore render methods whose suite they do not support."
        },
        "name": {
          "example": "Digital Product Passport - web view",
          "description": "Human-readable name that helps a person choose between render methods."
        },
        "description": {
          "description": "Human-readable description of when this render method is useful."
        },
        "renderProperty": {
          "example": [
            "/issuer/name",
            "/credentialSubject/name"
          ],
          "description": "JSON pointers (RFC 6901) to the credential properties exposed to the template. If omitted, the whole credential is exposed."
        },
        "template": {
          "description": "The template used to render the credential: a URL (a data: URL embeds the template inline), or an object with the template's id, mediaType and digestMultibase."
        },
        "deliveryMode": {
          "example": "nfc",
          "description": "The intended delivery method for a static render suite payload, for example nfc for transmission over NFC. Used by the static render suite only."
        },
        "digestMultibase": {
          "example": "uEiAsZMszMc45xiwf_IEpEQXL0gg4Fy3y_ngstaxUTC501Q",
          "description": "A multibase-encoded multihash (base64url with the 'u' prefix, SHA-256) of the render method document referenced by id. Renderers check the fetched content against this value, so a pinned render method cannot be changed without reissuing the credential. See https://www.w3.org/TR/2026/WD-vc-render-method-20261006/#suiterendermethod"
        },
        "outputPreference": {
          "description": "Optional hints about the preferred output, such as accessMode, mediaType and style."
        }
      },
      "description": "A render method as defined by the W3C Verifiable Credential Rendering Methods Working Draft of 6 October 2026. Only type and renderSuite are checked here; the W3C specification defines the remaining properties. See https://www.w3.org/TR/2026/WD-vc-render-method-20261006/#suiterendermethod",
      "required": [
        "type",
        "renderSuite"
      ]
    },
    "IssuingSoftware": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "example": "https://example.com/.well-known/untp/software/yourproduct/2026.04.1",
          "type": "string",
          "format": "uri",
          "description": "A resolvable identifier for the specific version of the software product that issued this credential."
        },
        "name": {
          "example": "Your Product Name",
          "type": "string",
          "description": "The name of the software product that issued this credential."
        },
        "version": {
          "example": "2026.04.1",
          "type": "string",
          "description": "The version of the software product that issued this credential."
        },
        "vendor": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "id": {
              "example": "did:web:example.com",
              "type": "string",
              "format": "uri",
              "description": "The decentralised identifier (DID) or other resolvable identifier of the software vendor."
            },
            "name": {
              "example": "Your Vendor Name",
              "type": "string",
              "description": "The name of the software vendor."
            }
          },
          "required": [
            "id",
            "name"
          ],
          "description": "The vendor of the software product that issued this credential."
        }
      },
      "required": [
        "id",
        "name",
        "version",
        "vendor"
      ],
      "description": "Optional metadata identifying the software product (and its vendor) that issued the parent credential. When present, all listed sub-properties MUST be populated; when absent, the credential is still valid (verifiers MUST treat the property as optional)."
    },
    "ConformityAttestation": {
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "type": {
          "type": "array",
          "readOnly": true,
          "default": [
            "ConformityAttestation"
          ],
          "items": {
            "type": "string"
          },
          "allOf": [
            {
              "contains": {
                "const": "ConformityAttestation",
                "minContains": 1
              }
            }
          ]
        },
        "id": {
          "example": "https://sample-cab.com/attestation/LR-98765",
          "type": "string",
          "format": "uri",
          "description": "Globally unique identifier of this attestation. Typically represented as a URI AssessmentBody/CertificateID URI or a UUID"
        },
        "name": {
          "example": "Forced Labour Facility Certificate",
          "type": "string",
          "description": "Name of this attestation - typically the title of the certificate."
        },
        "description": {
          "type": "string",
          "description": "Description of this attestation."
        },
        "assessorLevel": {
          "type": "string",
          "enum": [
            "first-party",
            "second-party",
            "third-party",
            "unspecified"
          ],
          "example": "third-party",
          "description": "A code for the level of independence of the issuer of the attestation in relation to the object of conformity assessment (ISO/IEC 17000:2020)."
        },
        "assessmentLevel": {
          "type": "string",
          "enum": [
            "authority-derived",
            "scheme-derived",
            "unspecified"
          ],
          "example": "authority-derived",
          "description": "A code for the nominated assurance pathway for the attestation. Authority-derived detail is carried by the linked authorityEndorsement (authority endorsement); scheme-derived detail by the scheme declaration or licensedByScheme reference."
        },
        "evidenceSelection": {
          "type": "string",
          "enum": [
            "self-declared",
            "cab-controlled",
            "independent-source",
            "mixed-source"
          ],
          "example": "cab-controlled",
          "description": "A code for who selected and supplied the evidence this attestation rests on. Distinct from assessor level, which states the independence of the issuer rather than the provenance of the evidence reviewed: a third-party assessor may still be working from evidence the assessed party chose."
        },
        "attestationType": {
          "type": "string",
          "enum": [
            "certification",
            "declaration",
            "audit",
            "peer",
            "inspection",
            "testing",
            "verification",
            "validation",
            "calibration"
          ],
          "example": "certification",
          "description": "A code for the type of the conformity attestation."
        },
        "issuedToParty": {
          "type": "object",
          "properties": {
            "type": {
              "type": "array",
              "readOnly": true,
              "default": [
                "Party"
              ],
              "items": {
                "type": "string"
              },
              "allOf": [
                {
                  "contains": {
                    "const": "Party",
                    "minContains": 1
                  }
                }
              ]
            },
            "id": {
              "example": "https://sample-business-register.gov/123456789",
              "type": "string",
              "format": "uri",
              "description": "Globally unique identifier of this party. Typically represented as a URI identifierScheme/Identifier URI"
            },
            "name": {
              "example": "Sample Company Ltd",
              "type": "string",
              "description": "Legal registered name of this party."
            },
            "registeredId": {
              "example": 90664869327,
              "type": "string",
              "description": "The registration number (alphanumeric) of the Party within the register. Unique within the register."
            },
            "description": {
              "type": "string",
              "description": "Description of the party including function and other names."
            }
          },
          "required": [
            "id",
            "name"
          ],
          "description": "The party to whom the conformity attestation was issued."
        },
        "authorityEndorsement": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/AuthorityEndorsement"
          },
          "description": "The authority endorsement authorising the attestation, where authority-derived assurance is claimed."
        },
        "licensedByScheme": {
          "type": "object",
          "properties": {
            "type": {
              "type": "array",
              "readOnly": true,
              "default": [
                "ConformityScheme"
              ],
              "items": {
                "type": "string"
              }
            },
            "id": {
              "example": "https://sample-scheme.org/lrap",
              "type": "string",
              "format": "uri",
              "description": "Identifier of the scheme that has licensed or otherwise approved the issuer to issue this attestation."
            },
            "name": {
              "type": "string",
              "description": "Name of the licensing scheme."
            }
          },
          "required": [
            "id"
          ],
          "description": "The scheme that has licensed or otherwise approved the issuer to issue the attestation, where scheme-derived assurance rests on such a licence."
        },
        "schemeDeclaration": {
          "type": "object",
          "properties": {
            "type": {
              "type": "array",
              "readOnly": true,
              "default": [
                "SchemeDeclaration"
              ],
              "items": {
                "type": "string"
              }
            },
            "id": {
              "type": "string",
              "format": "uri",
              "description": "Identifier of the scheme declaration, referenced where the scheme itself issues the attestation."
            }
          },
          "required": [
            "id"
          ],
          "description": "The scheme's own declaration, referenced where the scheme itself issues the attestation."
        },
        "coverage": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/AttestationCoverage"
          },
          "description": "OPTIONAL list of what this attestation is designed to cover - the scheme it is issued under, the standards or regulations it is designed to serve, and the jurisdictions it is intended to be relied on in."
        },
        "conformityCertificate": {
          "$ref": "#/$defs/Link",
          "description": "A reference to the human / printable version of this conformity attestation - typically represented as a PDF document. The document may have more details than are represented in the digital attestation."
        },
        "auditableEvidence": {
          "$ref": "#/$defs/Link",
          "description": "Auditable evidence supporting this assessment such as raw measurements, supporting documents. This is usually private data and would normally be encrypted."
        },
        "trustmark": {
          "$ref": "#/$defs/Image",
          "description": "A trust mark as a small binary image encoded as base64 with a description.  Maye be displayed on the conformity credential rendering."
        },
        "conformityAssessment": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ConformityAssessment"
          },
          "description": "A list of individual assessment made under this attestation. "
        }
      },
      "description": "A conformity attestation issued by a competent body that defines one or more assessments (eg carbon intensity) about a product (eg battery) against a specification (eg LCA method) defined in a standard or regulation.",
      "required": [
        "id",
        "name",
        "assessorLevel",
        "assessmentLevel",
        "evidenceSelection",
        "attestationType",
        "issuedToParty"
      ]
    },
    "AuthorityEndorsement": {
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "endorsementType": {
          "type": "string",
          "enum": [
            "authority-benchmark",
            "authority-mandate",
            "authority-globalmra",
            "authority-peer",
            "authority-extended-mra"
          ],
          "example": "authority-globalmra",
          "description": "A code for the type of authority-derived assurance that applies to the attestation."
        },
        "name": {
          "example": "Accreditation of certifiers.com under the Australian National Greenhouse and Energy Reporting scheme (NGER).",
          "type": "string",
          "description": "The name of the accreditation."
        },
        "trustmark": {
          "$ref": "#/$defs/Image",
          "description": "The trust mark image awarded by the AB to the CAB to indicate accreditation."
        },
        "grantingAuthority": {
          "type": "object",
          "properties": {
            "type": {
              "type": "array",
              "readOnly": true,
              "default": [
                "Party"
              ],
              "items": {
                "type": "string"
              },
              "allOf": [
                {
                  "contains": {
                    "const": "Party",
                    "minContains": 1
                  }
                }
              ]
            },
            "id": {
              "example": "https://sample-business-register.gov/123456789",
              "type": "string",
              "format": "uri",
              "description": "Globally unique identifier of this party. Typically represented as a URI identifierScheme/Identifier URI"
            },
            "name": {
              "example": "Sample Company Ltd",
              "type": "string",
              "description": "Legal registered name of this party."
            },
            "registeredId": {
              "example": 90664869327,
              "type": "string",
              "description": "The registration number (alphanumeric) of the Party within the register. Unique within the register."
            }
          },
          "required": [
            "id",
            "name"
          ],
          "description": "The competent authority that granted the recognition (for example the accreditation body, government, or peer assessment body)."
        },
        "authorityEvidence": {
          "$ref": "#/$defs/Link",
          "description": "Evidence of the authority recognition, for example an accreditation certificate."
        }
      },
      "description": "The authority-derived recognition under which a conformity attestation is issued, for example an accreditation, a government mandate, or a peer recognition.",
      "required": [
        "endorsementType",
        "authorityEvidence"
      ]
    },
    "Image": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "name": {
          "example": "certification trust mark",
          "type": "string",
          "description": "the display name for this image"
        },
        "description": {
          "type": "string",
          "description": "The detailed description / supporting information for this image."
        },
        "imageData": {
          "type": "string",
          "format": "byte",
          "description": "The image data encoded as a base64 string."
        },
        "mediaType": {
          "type": "string",
          "x-external-enumeration": "https://mimetype.io/",
          "description": "The media type of this image (eg image/png)\n\n    This is an enumerated value, but the list of valid values are too big, or change too often to include here. You can access the list of allowable values at this URL:  https://mimetype.io/\n    "
        }
      },
      "description": "A binary image encoded as base64 text and embedded into the data.  Use this for small images like certification trust marks or regulated labels.  Large images should be external links.",
      "required": [
        "name",
        "imageData",
        "mediaType"
      ]
    },
    "Link": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "linkURL": {
          "example": "https://files.example-certifier.com/1234567.json",
          "type": "string",
          "format": "uri",
          "description": "The URL of the target resource.  "
        },
        "linkName": {
          "type": "string",
          "description": "Display name for this link."
        },
        "digestMultibase": {
          "example": "abc123-example-digest-invalid",
          "type": "string",
          "description": "An optional multi-base encoded digest to ensure the content of the link has not changed. See https://www.w3.org/TR/vc-data-integrity/#resource-integrity for more information."
        },
        "mediaType": {
          "example": "application/ld+json",
          "type": "string",
          "description": "The media type of the target resource."
        },
        "linkType": {
          "example": "https://test.uncefact.org/vocabulary/link-type/dcc",
          "type": "string",
          "description": "A business classification of the target resource, as a URI drawn from a well-governed vocabulary. Distinct from mediaType, which carries the IANA media type of the target. SHOULD be drawn from a published vocabulary - UNTP's own link types, or an ecosystem vocabulary such as the [GS1 link types](https://ref.gs1.org/voc/?show=linktypes); failing that a type the issuer publishes itself at a dereferenceable URI. An [IANA link relation](https://www.iana.org/assignments/link-relations/link-relations.xhtml) is valid where the link expresses a relationship rather than a document class. UNTP does not mandate a particular vocabulary, but the URI MUST identify a definition a reader can look up.",
          "format": "uri"
        }
      },
      "description": "A structure to provide a URL link plus metadata associated with the link.",
      "required": [
        "linkURL",
        "linkName"
      ]
    },
    "Score": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "code": {
          "type": "string",
          "description": "The coded value for this score (eg \"AAA\")"
        },
        "rank": {
          "type": "integer",
          "description": "The ranking of this score within the scoring framework - using an integer where \"1\" is the highest rank."
        },
        "definition": {
          "type": "string",
          "description": "A description of the meaning of this score."
        }
      },
      "description": "A single score within a scoring framework. ",
      "required": [
        "code"
      ]
    },
    "AttestationCoverage": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "array",
          "readOnly": true,
          "default": [
            "AttestationCoverage"
          ],
          "items": {
            "type": "string"
          },
          "allOf": [
            {
              "contains": {
                "const": "AttestationCoverage",
                "minContains": 1
              }
            }
          ]
        },
        "coverageType": {
          "type": "string",
          "enum": [
            "scheme",
            "standard",
            "regulation",
            "jurisdictionRecognition",
            "jurisdictionAssessed"
          ],
          "example": "jurisdictionRecognition",
          "description": "OPTIONAL hint identifying what kind of thing this entry references, from the UN/CEFACT [attestation-coverage-type code list](https://test.uncefact.org/vocabulary/attestation-coverage-type/). The two jurisdiction values are separate: `jurisdictionRecognition` for a jurisdiction in which the attestation is intended to have legal effect, and `jurisdictionAssessed` for a jurisdiction in which the audited activities are conducted. Omit where no value fits; there is no 'other' value. The `id` remains the authoritative meaning."
        },
        "id": {
          "type": "string",
          "format": "uri",
          "example": "https://store.standards.org.au/product/as-nzs-3679-1-2016",
          "description": "Resolvable identifier of the covered scheme, standard, regulation or jurisdiction."
        },
        "name": {
          "type": "string",
          "example": "AS/NZS 3679.1:2016 Structural steel - Hot-rolled bars and sections",
          "description": "Name of the covered item, so that a reader can see what is covered without dereferencing the identifier."
        }
      },
      "required": [
        "id",
        "name"
      ],
      "description": "One thing a conformity attestation declares itself to cover. It states scope of intent, not an assessed outcome."
    },
    "ConformityAssessment": {
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "type": {
          "type": "array",
          "readOnly": true,
          "default": [
            "ConformityAssessment"
          ],
          "items": {
            "type": "string"
          },
          "allOf": [
            {
              "contains": {
                "const": "ConformityAssessment",
                "minContains": 1
              }
            }
          ]
        },
        "id": {
          "example": "https://sample-cab.com/assessment/e78dab5d-b6f6-4bc4-a458-7feb039f6cb3",
          "type": "string",
          "format": "uri",
          "description": "Globally unique identifier of this assessment. Typically represented as a URI AssessmentBody/Assessment URI or a UUID"
        },
        "name": {
          "example": "Sample Scheme Forced Labour Assessment",
          "type": "string",
          "description": "Name of this assessment - typically similar or the same as the referenced criterion name."
        },
        "description": {
          "type": "string",
          "description": "Description of this conformity assessment "
        },
        "assessmentCriteria": {
          "type": "array",
          "description": "The specification against which the assessment is made.",
          "minItems": 1,
          "items": {
            "type": "object",
            "properties": {
              "type": {
                "type": "array",
                "readOnly": true,
                "default": [
                  "Criterion"
                ],
                "items": {
                  "type": "string"
                },
                "allOf": [
                  {
                    "contains": {
                      "const": "Criterion",
                      "minContains": 1
                    }
                  }
                ]
              },
              "criteriaType": {
                "type": "string",
                "enum": [
                  "scheme-criterion",
                  "scheme-profile",
                  "published-standard",
                  "regulation",
                  "other-published-document"
                ],
                "example": "scheme-criterion",
                "description": "A code for the kind of normative source this reference points at. A criterion is not always drawn from a registered scheme, and scheme-profile indicates a reference to a whole conformity profile rather than to a single criterion."
              },
              "id": {
                "example": "https://vocabulary.sample-scheme.org/criterion/lb/v1.0",
                "type": "string",
                "format": "uri",
                "description": "The identifier of this criterion or set of criteria, typically represented by a URI managed by the owner or publisher of the criteria, such as a SchemeOwner/CriterionID URI."
              },
              "name": {
                "example": "Forced labour assessment criterion",
                "type": "string",
                "description": "Name of this criterion as defined by the publisher."
              },
              "conformityTopic": {
                "type": "array",
                "description": "The UNTP conformity topic that classifies what this criterion is about. Carried by the criterion rather than by the assessment or claim that references it, so that one assessment may reference criteria on different topics.",
                "minItems": 1,
                "items": {
                  "$ref": "#/$defs/ConformityTopic"
                }
              },
              "requiredPerformance": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/Performance"
                },
                "description": "The performance threshold this criterion requires. Optional, because a criterion drawn from a published scheme vocabulary already carries its threshold there; populate it where the scheme or standard owner has not published a fine-grained vocabulary."
              }
            },
            "required": [
              "id",
              "name",
              "criteriaType",
              "conformityTopic"
            ]
          }
        },
        "assessmentDate": {
          "example": "2024-03-15",
          "type": "string",
          "format": "date",
          "description": "OPTIONAL date on which this assessment was made. Omit where an assessment is made up of several aspects conducted at different times, and no single date captures the whole; `assessedPeriod` may still be used alongside this or on its own."
        },
        "assessedPeriod": {
          "$ref": "#/$defs/Period",
          "description": "OPTIONAL period that the assessed records covered, where the assessment was made against records spanning a period rather than a point in time. This states the retrospective coverage of the assessment and is separate from the validity dates of the credential that carries it."
        },
        "assessedPerformance": {
          "type": "array",
          "description": "The assessed performance against criteria.",
          "minItems": 1,
          "items": {
            "$ref": "#/$defs/Performance"
          }
        },
        "assessedProduct": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ProductVerification"
          },
          "description": "The product which is the subject of this assessment."
        },
        "assessedFacility": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/FacilityVerification"
          },
          "description": "The facility which is the subject of this assessment."
        },
        "assessedOrganisation": {
          "type": "object",
          "properties": {
            "type": {
              "type": "array",
              "readOnly": true,
              "default": [
                "Party"
              ],
              "items": {
                "type": "string"
              },
              "allOf": [
                {
                  "contains": {
                    "const": "Party",
                    "minContains": 1
                  }
                }
              ]
            },
            "id": {
              "example": "https://sample-business-register.gov/123456789",
              "type": "string",
              "format": "uri",
              "description": "Globally unique identifier of this party. Typically represented as a URI identifierScheme/Identifier URI"
            },
            "name": {
              "example": "Sample Company Ltd",
              "type": "string",
              "description": "Legal registered name of this party."
            }
          },
          "required": [
            "id",
            "name"
          ],
          "description": "An organisation that is the subject of this assessment."
        },
        "specifiedCondition": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of specific conditions that constrain this conformity assessment. For example a specific jurisdiction, material type, or test method."
        },
        "evidence": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Link"
          },
          "description": "Evidence to support this specific assessment."
        },
        "chainOfCustodyMethod": {
          "type": "string",
          "enum": [
            "identity-preservation",
            "segregation",
            "controlled-blending",
            "mass-balance",
            "controlled-mass-balance",
            "book-and-claim"
          ],
          "example": "mass-balance",
          "description": "OPTIONAL. The chain of custody model on which this claim rests - how the physical flow of material supports what is asserted. Omit where the claim does not depend on a chain of custody model at all, such as a measured physical property. Where a claim does rest on one, the model MUST be stated. See [Chain of Custody and Mass Balance](https://untp.unece.org/docs/design-patterns/ChainOfCustody)."
        }
      },
      "description": "A specific assessment about the product or facility against a specific specification.  Eg the carbon intensity of a given product or batch.",
      "required": [
        "id",
        "name",
        "assessmentCriteria",
        "assessedPerformance"
      ]
    },
    "Performance": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "metric": {
          "type": "object",
          "properties": {
            "type": {
              "type": "array",
              "readOnly": true,
              "default": [
                "PerformanceMetric"
              ],
              "items": {
                "type": "string"
              },
              "allOf": [
                {
                  "contains": {
                    "const": "PerformanceMetric",
                    "minContains": 1
                  }
                }
              ]
            },
            "id": {
              "example": "https://authority.gov/schemeABC/123456789",
              "type": "string",
              "format": "uri",
              "description": "Globally unique identifier of this reporting metric. "
            },
            "name": {
              "example": "emissions intensity",
              "type": "string",
              "description": "A human readable name for this metric (for example \"water usage per Kg of material\")"
            }
          },
          "required": [
            "id",
            "name"
          ],
          "description": "The metric (eg material emissions intensity CO2e/Kg or percentage of young workers) that is measured."
        },
        "measure": {
          "$ref": "#/$defs/Measure",
          "description": "The measured performance value"
        },
        "score": {
          "$ref": "#/$defs/Score",
          "description": "A performance score (eg \"AA\") drawn from a scoring framework defined by the scheme or criterion."
        },
        "determination": {
          "type": "string",
          "enum": [
            "pass",
            "fail",
            "conditional",
            "indeterminate"
          ],
          "example": "pass",
          "description": "The conformity outcome, from the UN/CEFACT [conformity-determination code list](https://test.uncefact.org/vocabulary/conformity-determination/)."
        },
        "qualitativeFinding": {
          "type": "string",
          "example": "No dangerous chemicals found.",
          "description": "The outcome stated in words, where it does not reduce to a measure, score, classification or determination."
        }
      },
      "description": "A claimed, assessed, or required performance level. The outcome may be stated as a numeric measure, a score from a scheme-defined scale, a determination drawn from the UN/CEFACT conformity-determination code list, or a finding in words. Any one of these is sufficient and they may be combined. When a numeric measure is provided, the metric classifying the measurement is required. When only a score is provided, the scoring framework is discoverable via the conformity scheme or criterion.",
      "dependentRequired": {
        "measure": [
          "metric"
        ]
      }
    },
    "Measure": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "example": 10,
          "type": "number",
          "description": "The numeric value of the measure"
        },
        "upperTolerance": {
          "type": "number",
          "description": "The upper tolerance associated with this measure expressed in the same units as the measure.  For example value=10, upperTolerance=0.1, unit=KGM would mean that this measure is 10kg + 0.1kg"
        },
        "lowerTolerance": {
          "type": "number",
          "description": "The lower tolerance associated with this measure expressed in the same units as the measure.  For example value=10, lowerTolerance=0.1, unit=KGM would mean that this measure is 10kg - 0.1kg"
        },
        "unit": {
          "type": "string",
          "x-external-enumeration": "https://vocabulary.uncefact.org/UnitMeasureCode#",
          "description": "Unit of measure drawn from the UNECE Rec20 measure code list.\n\n    This is an enumerated value, but the list of valid values are too big, or change too often to include here. You can access the list of allowable values at this URL:  https://vocabulary.uncefact.org/UnitMeasureCode#\n    "
        }
      },
      "description": "The measure class defines a numeric measured value (eg 10) and a coded unit of measure (eg KG).  There is an optional upper and lower tolerance which can be used to specify uncertainty in the measure.  ",
      "required": [
        "value",
        "unit"
      ]
    },
    "Period": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "startDate": {
          "type": "string",
          "format": "date",
          "description": "The period start date"
        },
        "endDate": {
          "type": "string",
          "format": "date",
          "description": "The period end date"
        },
        "periodInformation": {
          "type": "string",
          "description": "Additional information relevant to this reporting period"
        }
      },
      "description": "A period of time, typically a month, quarter or a year, which defines the context boundary for reported facts.",
      "required": [
        "startDate",
        "endDate"
      ]
    },
    "ProductVerification": {
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "product": {
          "type": "object",
          "properties": {
            "type": {
              "type": "array",
              "readOnly": true,
              "default": [
                "Product"
              ],
              "items": {
                "type": "string"
              },
              "allOf": [
                {
                  "contains": {
                    "const": "Product",
                    "minContains": 1
                  }
                }
              ]
            },
            "id": {
              "example": "did:web:manufacturer.com:product:123456789",
              "type": "string",
              "format": "uri",
              "description": "Globally unique identifier of this product. Typically represented as a URI identifierScheme/Identifier URI or, if self-issued, as a did."
            },
            "name": {
              "example": "600 Ah Lithium Battery",
              "type": "string",
              "description": "The product name as known to the market."
            },
            "modelNumber": {
              "type": "string",
              "description": "Where available, the model number (for manufactured products) or material identification (for bulk materials)"
            },
            "batchNumber": {
              "example": 6789,
              "type": "string",
              "description": "Identifier of the specific production batch of the product.  Unique within the product class."
            },
            "itemNumber": {
              "example": 12345678,
              "type": "string",
              "description": "A number or code representing a specific serialised item of the product. Unique within product class."
            }
          },
          "required": [
            "id",
            "name"
          ],
          "description": "The product, serial or batch that is the subject of this assessment"
        },
        "idVerifiedByCAB": {
          "type": "boolean",
          "description": "Indicates whether the conformity assessment body has verified the identity product that is the subject of the assessment."
        }
      },
      "description": "The product which is the subject of this conformity assessment",
      "required": [
        "product"
      ]
    },
    "FacilityVerification": {
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "facility": {
          "type": "object",
          "properties": {
            "type": {
              "type": "array",
              "readOnly": true,
              "default": [
                "Facility"
              ],
              "items": {
                "type": "string"
              },
              "allOf": [
                {
                  "contains": {
                    "const": "Facility",
                    "minContains": 1
                  }
                }
              ]
            },
            "id": {
              "example": "https://sample-location-register.com/987654321",
              "type": "string",
              "format": "uri",
              "description": "Globally unique identifier of this facility. Typically represented as a URI identifierScheme/Identifier URI"
            },
            "name": {
              "example": "Sample Factory A",
              "type": "string",
              "description": "Name of this facility as defined the location register."
            },
            "registeredId": {
              "example": 1234567,
              "type": "string",
              "description": "The registration number (alphanumeric) of the facility within the identifier scheme. Unique within the register."
            }
          },
          "required": [
            "id",
            "name"
          ],
          "description": "The facility which is the subject of this assessment"
        },
        "idVerifiedByCAB": {
          "type": "boolean",
          "description": "Indicates whether the conformity assessment body has verified the identity of the facility which is the subject of the assessment."
        }
      },
      "description": "The facility which is the subject of this conformity assessment",
      "required": [
        "facility"
      ]
    },
    "ConformityTopic": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "array",
          "readOnly": true,
          "default": [
            "ConformityTopic"
          ],
          "items": {
            "type": "string"
          },
          "allOf": [
            {
              "contains": {
                "const": "ConformityTopic",
                "minContains": 1
              }
            }
          ]
        },
        "id": {
          "type": "string",
          "format": "uri",
          "description": "The unique identifier for this conformity topic"
        },
        "name": {
          "example": "forced-labour",
          "type": "string",
          "description": "The human readable name for this conformity topic."
        },
        "definition": {
          "type": "string",
          "description": "The rich definition of this conformity topic."
        }
      },
      "description": "The UNTP standard classification scheme for conformity topic.  see https://test.uncefact.org/vocabulary/conformity-topics/",
      "required": [
        "id",
        "name"
      ]
    }
  }
}
