{
  "$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.7.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.7.0/context/",
          "type": "string"
        }
      ],
      "default": [
        "https://www.w3.org/ns/credentials/v2",
        "https://vocabulary.uncefact.org/untp/0.7.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/CredentialIssuer",
      "description": "The organisation that is the issuer of this VC. Note that the \"id\" property MUST be a W3C DID.  Other identifiers such as tax registration numbers can be listed in the \"otherIdentifiers\" 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": {
      "$ref": "#/$defs/BitstringStatusListEntry",
      "description": "A W3C VCDM2.0 compliant object containing credential status information."
    },
    "renderMethod": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/RenderTemplate2024"
      },
      "description": "Human rendering information for this credential. An array of render methods (eg RenderTemplate2024) that may be used to display the credential."
    },
    "credentialSubject": {
      "$ref": "#/$defs/ConformityAttestation",
      "description": "The attestation that is the subject of this digital conformity credential."
    }
  },
  "description": "A Digital Conformity Credential (DCC) credential.",
  "required": [
    "@context",
    "id",
    "issuer",
    "validFrom",
    "name",
    "credentialSubject"
  ],
  "$defs": {
    "CredentialIssuer": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "array",
          "readOnly": true,
          "default": [
            "CredentialIssuer"
          ],
          "items": {
            "type": "string"
          },
          "allOf": [
            {
              "contains": {
                "const": "CredentialIssuer",
                "minContains": 1
              }
            }
          ]
        },
        "id": {
          "example": "did:web:identifiers.example-company.com:12345",
          "type": "string",
          "format": "uri",
          "description": "The W3C DID of the issuer - should be a did:web or did:webvh"
        },
        "name": {
          "example": "Example Company Pty Ltd",
          "type": "string",
          "description": "The name of the issuer person or organisation"
        },
        "issuerAlsoKnownAs": {
          "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."
              }
            },
            "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 identifer of this status list entry."
        },
        "statusPurpose": {
          "type": "string",
          "enum": [
            "refresh",
            "revocation",
            "suspension",
            "message"
          ],
          "example": "refresh",
          "description": "Status purpose drawn from a standard list but extensible as per w3c bitstring status list specification."
        },
        "statusListIndex": {
          "minimum": 0,
          "example": 94567,
          "type": "integer",
          "description": "\tThe 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."
        }
      },
      "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"
      ]
    },
    "RenderTemplate2024": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "array",
          "readOnly": true,
          "default": [
            "RenderTemplate2024"
          ],
          "items": {
            "type": "string"
          },
          "allOf": [
            {
              "contains": {
                "const": "RenderTemplate2024",
                "minContains": 1
              }
            }
          ]
        },
        "name": {
          "type": "string",
          "description": "Human facing display name for selection"
        },
        "mediaQuery": {
          "type": "string",
          "description": "Media query as defined in https://www.w3.org/TR/mediaqueries-4/"
        },
        "template": {
          "type": "string",
          "description": "An inline template field for use cases where remote retrieval of a render method is suboptimal"
        },
        "url": {
          "type": "string",
          "format": "uri",
          "description": "URL for remotely hosted template"
        },
        "mediaType": {
          "type": "string",
          "description": "media type of the rendered output (eg text/html)"
        },
        "digestMultibase": {
          "type": "string",
          "description": "Used for resource integrity and/or validation of the inline `template`"
        }
      },
      "description": "A single template format focused render method where the content/media type decision becomes secondary (and is expressed separately).See https://github.com/w3c-ccg/vc-render-method/issues/9"
    },
    "ConformityAttestation": {
      "type": "object",
      "additionalProperties": false,
      "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": [
            "self",
            "commercial",
            "buyer",
            "membership",
            "unspecified",
            "3rdParty",
            "hybrid"
          ],
          "example": "self",
          "description": "Assurance code pertaining to assessor (relation to the object under assessment)"
        },
        "assessmentLevel": {
          "type": "string",
          "enum": [
            "authority-benchmark",
            "authority-mandate",
            "authority-globalmra",
            "authority-peer",
            "authority-extended-mra",
            "scheme-self",
            "scheme-cab",
            "no-endorsement"
          ],
          "example": "authority-benchmark",
          "description": "Assurance pertaining to assessment (any authority or support for the assessment process)"
        },
        "attestationType": {
          "type": "string",
          "enum": [
            "certification",
            "declaration",
            "inspection",
            "testing",
            "verification",
            "validation",
            "calibration"
          ],
          "example": "certification",
          "description": "The type of criterion (optional or mandatory)."
        },
        "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."
        },
        "authorisation": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Endorsement"
          },
          "description": "The authority under which a conformity claim is issued.  For example a national accreditation authority may authorise a test lab to issue test certificates about a product against a standard.  "
        },
        "referenceScheme": {
          "type": "object",
          "properties": {
            "type": {
              "type": "array",
              "readOnly": true,
              "default": [
                "ConformityScheme"
              ],
              "items": {
                "type": "string"
              },
              "allOf": [
                {
                  "contains": {
                    "const": "ConformityScheme",
                    "minContains": 1
                  }
                }
              ]
            },
            "id": {
              "example": "https://sample-scheme.org/lrap",
              "type": "string",
              "format": "uri",
              "description": "Globally unique identifier of this conformity scheme. Typically represented as a URI SchemeOwner/SchemeName URI"
            },
            "name": {
              "example": "Labour rights assessment program",
              "type": "string",
              "description": "Name of this scheme as defined by the scheme owner."
            }
          },
          "required": [
            "id",
            "name"
          ],
          "description": "The conformity scheme under which this attestation is made."
        },
        "referenceProfile": {
          "type": "object",
          "properties": {
            "type": {
              "type": "array",
              "readOnly": true,
              "default": [
                "ConformityProfile"
              ],
              "items": {
                "type": "string"
              },
              "allOf": [
                {
                  "contains": {
                    "const": "ConformityProfile",
                    "minContains": 1
                  }
                }
              ]
            },
            "id": {
              "example": "https://vocabulary.sample-scheme.org/profile/lrap/v1.0",
              "type": "string",
              "format": "uri",
              "description": "Globally unique identifier of this context specific conformity profile. Typically represented as a URI SchemeOwner/profileID URI"
            },
            "name": {
              "example": "Forced labour assessment criterion",
              "type": "string",
              "description": "Name of this conformity profile as defined by the scheme owner."
            }
          },
          "required": [
            "id",
            "name"
          ],
          "description": "The specific versioned conformity profile (comprising a set of versioned criteria) against which this conformity attestation is made."
        },
        "profileScore": {
          "$ref": "#/$defs/Score",
          "description": "The overall performance against a scheme level performance measurement framework for the referenced profile or scheme."
        },
        "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",
        "attestationType",
        "issuedToParty",
        "referenceScheme"
      ]
    },
    "Endorsement": {
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "type": {
          "type": "array",
          "readOnly": true,
          "default": [
            "Endorsement"
          ],
          "items": {
            "type": "string"
          },
          "allOf": [
            {
              "contains": {
                "const": "Endorsement",
                "minContains": 1
              }
            }
          ]
        },
        "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."
        },
        "issuingAuthority": {
          "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 issued the accreditation."
        },
        "endorsementEvidence": {
          "$ref": "#/$defs/Link",
          "description": "The evidence that supports the authority under which the attestation is issued - for an example an accreditation certificate."
        }
      },
      "description": "The authority under which a conformity claim is issued.  For example a national accreditation authority may authorise a test lab to issue test certificates about a product against a standard. ",
      "required": [
        "name",
        "issuingAuthority"
      ]
    },
    "Image": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "array",
          "readOnly": true,
          "default": [
            "Image"
          ],
          "items": {
            "type": "string"
          },
          "allOf": [
            {
              "contains": {
                "const": "Image",
                "minContains": 1
              }
            }
          ]
        },
        "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 impages should be external links.",
      "required": [
        "name",
        "imageData",
        "mediaType"
      ]
    },
    "Link": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "array",
          "readOnly": true,
          "default": [
            "Link"
          ],
          "items": {
            "type": "string"
          },
          "allOf": [
            {
              "contains": {
                "const": "Link",
                "minContains": 1
              }
            }
          ]
        },
        "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/linkTypes/dcc",
          "type": "string",
          "description": "The type of the target resource - drawn from a controlled vocabulary "
        }
      },
      "description": "A structure to provide a URL link plus metadata associated with the link.",
      "required": [
        "linkURL",
        "linkName"
      ]
    },
    "Score": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "array",
          "readOnly": true,
          "default": [
            "Score"
          ],
          "items": {
            "type": "string"
          },
          "allOf": [
            {
              "contains": {
                "const": "Score",
                "minContains": 1
              }
            }
          ]
        },
        "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"
      ]
    },
    "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",
          "items": {
            "type": "object",
            "properties": {
              "type": {
                "type": "array",
                "readOnly": true,
                "default": [
                  "Criterion"
                ],
                "items": {
                  "type": "string"
                },
                "allOf": [
                  {
                    "contains": {
                      "const": "Criterion",
                      "minContains": 1
                    }
                  }
                ]
              },
              "id": {
                "example": "https://vocabulary.sample-scheme.org/criterion/lb/v1.0",
                "type": "string",
                "format": "uri",
                "description": "Globally unique identifier of this conformity criterion. Typically represented as a URI SchemeOwner/CriterionID URI"
              },
              "name": {
                "example": "Forced labour assessment criterion",
                "type": "string",
                "description": "Name of this criterion as defined by the scheme owner."
              }
            },
            "required": [
              "id",
              "name"
            ]
          },
          "description": "The specification against which the assessment is made."
        },
        "assessmentDate": {
          "example": "2024-03-15",
          "type": "string",
          "format": "date",
          "description": "The date on which this assessment was made. "
        },
        "assessedPerformance": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Performance"
          },
          "description": "The assessed performance against criteria."
        },
        "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."
        },
        "referenceStandard": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "type": {
                "type": "array",
                "readOnly": true,
                "default": [
                  "Standard"
                ],
                "items": {
                  "type": "string"
                },
                "allOf": [
                  {
                    "contains": {
                      "const": "Standard",
                      "minContains": 1
                    }
                  }
                ]
              },
              "id": {
                "example": "https://sample-standards.org/A1234",
                "type": "string",
                "format": "uri",
                "description": "Globally unique identifier of this standard. Typically represented as a URI issuer/standard URI"
              },
              "name": {
                "example": "Labour rights standard",
                "type": "string",
                "description": "Name for this standard"
              }
            },
            "required": [
              "id",
              "name"
            ]
          },
          "description": "The reference to the standard that defines the specification / criteria"
        },
        "referenceRegulation": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "type": {
                "type": "array",
                "readOnly": true,
                "default": [
                  "Regulation"
                ],
                "items": {
                  "type": "string"
                },
                "allOf": [
                  {
                    "contains": {
                      "const": "Regulation",
                      "minContains": 1
                    }
                  }
                ]
              },
              "id": {
                "example": "https://regulations.country.gov/ABC-12345",
                "type": "string",
                "format": "uri",
                "description": "Globally unique identifier of this standard. Typically represented as a URI government/regulation URI"
              },
              "name": {
                "example": "Due Diligence Directove",
                "type": "string",
                "description": "Name of this regulation as defined by the regulator."
              }
            },
            "required": [
              "id",
              "name"
            ]
          },
          "description": "The reference to the regulation that defines the assessment criteria"
        },
        "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."
        },
        "conformityTopic": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ConformityTopic"
          },
          "description": "The UNTP conformity topic used to categorise this assessment. Should match the topic defined by the scheme criterion."
        },
        "conformance": {
          "type": "boolean",
          "description": "An indicator (true / false) whether the outcome of this assessment is conformant to the requirements defined by the standard or criterion."
        }
      },
      "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",
        "assessmentDate",
        "assessedPerformance",
        "conformityTopic"
      ]
    },
    "Performance": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "array",
          "readOnly": true,
          "default": [
            "Performance"
          ],
          "items": {
            "type": "string"
          },
          "allOf": [
            {
              "contains": {
                "const": "Performance",
                "minContains": 1
              }
            }
          ]
        },
        "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."
        }
      },
      "description": "A claimed, assessed, or required performance level defined either by a scoring system or a numeric measure. 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": {
        "type": {
          "type": "array",
          "readOnly": true,
          "default": [
            "Measure"
          ],
          "items": {
            "type": "string"
          },
          "allOf": [
            {
              "contains": {
                "const": "Measure",
                "minContains": 1
              }
            }
          ]
        },
        "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"
      ]
    },
    "ProductVerification": {
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "type": {
          "type": "array",
          "readOnly": true,
          "default": [
            "ProductVerification"
          ],
          "items": {
            "type": "string"
          },
          "allOf": [
            {
              "contains": {
                "const": "ProductVerification",
                "minContains": 1
              }
            }
          ]
        },
        "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": {
        "type": {
          "type": "array",
          "readOnly": true,
          "default": [
            "FacilityVerification"
          ],
          "items": {
            "type": "string"
          },
          "allOf": [
            {
              "contains": {
                "const": "FacilityVerification",
                "minContains": 1
              }
            }
          ]
        },
        "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 http://vocabulary.uncefact.org/ConformityTopic",
      "required": [
        "id",
        "name"
      ]
    }
  }
}
