{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://w3id.org/dpp-comparison/schema/eu-dpp.schema.json",
  "title": "EU DPP requirement catalogue as JSON Schema (authors' formalisation)",
  "description": "Formalises the 40 EU DPP data requirements of the accompanying paper, one property per JSON path of the catalogue. Analytical formalisation by the authors derived from Regulation (EU) 2024/1781 (ESPR); not an adopted EU schema. Required properties are the 22 requirements the authors assess as mandatory; field-level structures will be fixed by product-group delegated acts and the common data models of the DPP registry's semantic repository.",
  "type": "object",
  "properties": {
    "passportIdentifier": {
      "type": "object",
      "properties": {
        "uid": {
          "type": "string",
          "title": "Passport Unique ID",
          "description": "EU.PassportID (Art. 10, 9(2)(d)). Unique identifier for the digital product passport instance.",
          "x-requirementId": "EU.PassportID"
        }
      },
      "required": [
        "uid"
      ]
    },
    "productIdentifier": {
      "type": "object",
      "properties": {
        "gtin": {
          "type": "string",
          "title": "GTIN",
          "description": "EU.GTIN (Annex III(c)). Global Trade Item Number for product identification.",
          "x-requirementId": "EU.GTIN"
        },
        "serialNumber": {
          "type": "string",
          "title": "Serial Number",
          "description": "EU.SerialNo (Art. 27(5)). Serial number uniquely identifying a specific product unit.",
          "x-requirementId": "EU.SerialNo"
        },
        "productName": {
          "type": "string",
          "title": "Product Name",
          "description": "EU.ProdName (Annex III(b)). Official commercial name of the product.",
          "x-requirementId": "EU.ProdName"
        },
        "productModel": {
          "type": "string",
          "title": "Product Model",
          "description": "EU.ProdModel (Art. 27(5)). Model identifier for the product line or variant.",
          "x-requirementId": "EU.ProdModel"
        },
        "commodityCodes": {
          "type": "array",
          "title": "Commodity Codes",
          "description": "EU.CommodCode (Annex III(d)). Customs commodity codes (e.g., Combined Nomenclature) for the product.",
          "x-requirementId": "EU.CommodCode"
        }
      },
      "required": [
        "gtin",
        "productName",
        "productModel"
      ]
    },
    "manufacturer": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "title": "Manufacturer Name",
          "description": "EU.MfrName (Annex III(g), 27(6)). Registered trade name of the manufacturer.",
          "x-requirementId": "EU.MfrName"
        },
        "address": {
          "type": "object",
          "title": "Manufacturer Address",
          "description": "EU.MfrAddr (Art. 27(6)). Registered postal address of the manufacturer.",
          "x-requirementId": "EU.MfrAddr"
        }
      },
      "required": [
        "name",
        "address"
      ]
    },
    "placeOfManufacture": {
      "type": "object",
      "title": "Place of Manufacture",
      "description": "EU.MfrPlace (Annex III(i)). Location (facility, country) where the product was manufactured.",
      "x-requirementId": "EU.MfrPlace"
    },
    "manufacturingDate": {
      "type": "string",
      "format": "date",
      "title": "Manufacturing Date",
      "description": "EU.MfrDate (Delegated acts). Date on which the product was manufactured.",
      "x-requirementId": "EU.MfrDate"
    },
    "importer": {
      "type": "object",
      "title": "Importer Information",
      "description": "EU.ImportInfo (Annex III(j), 29(3)). Information about the importer or authorised representative in the EU.",
      "x-requirementId": "EU.ImportInfo"
    },
    "carbonFootprint": {
      "type": "object",
      "properties": {
        "total": {
          "type": "object",
          "properties": {
            "value": {
              "type": "number",
              "title": "Carbon Footprint Total",
              "description": "EU.CarbonFP (Art. 7(2)(b)(i)). Total carbon footprint of the product expressed in CO2 equivalents.",
              "x-requirementId": "EU.CarbonFP"
            }
          },
          "required": [
            "value"
          ]
        },
        "calculationMethod": {
          "type": "string",
          "title": "CF Calc. Method",
          "description": "EU.CFMethod (Art. 7(2)(b)(i)). Method or standard used to calculate the carbon footprint.",
          "x-requirementId": "EU.CFMethod"
        }
      },
      "required": [
        "total",
        "calculationMethod"
      ]
    },
    "environmentalFootprint": {
      "type": "object",
      "title": "Environmental Footprint",
      "description": "EU.EnvFP (Art. 7(2)(b)(i)). Broader environmental footprint data beyond carbon (e.g., water, land use).",
      "x-requirementId": "EU.EnvFP"
    },
    "materialComposition": {
      "type": "object",
      "properties": {
        "materials": {
          "type": "array",
          "title": "Material Composition",
          "description": "EU.MatComp (Art. 7(5)). List of materials contained in the product, including substances of concern.",
          "x-requirementId": "EU.MatComp"
        }
      },
      "required": [
        "materials"
      ]
    },
    "recycledContent": {
      "type": "object",
      "properties": {
        "percentage": {
          "type": "number",
          "title": "Recycled Content %",
          "description": "EU.RecycledPct (Annex I(h)). Percentage of recycled material content in the product.",
          "x-requirementId": "EU.RecycledPct"
        }
      },
      "required": [
        "percentage"
      ]
    },
    "renewableMaterial": {
      "type": "object",
      "properties": {
        "percentage": {
          "type": "number",
          "title": "Renewable Material %",
          "description": "EU.RenewPct (Annex I(i)). Percentage of renewable material content in the product.",
          "x-requirementId": "EU.RenewPct"
        }
      }
    },
    "hazardousSubstances": {
      "type": "array",
      "title": "Hazardous Substances",
      "description": "EU.HazSubst (Art. 7(5)). List of hazardous substances present in the product above threshold concentrations.",
      "x-requirementId": "EU.HazSubst"
    },
    "energyEfficiency": {
      "type": "object",
      "properties": {
        "energyClass": {
          "type": "string",
          "title": "Energy Efficiency Class",
          "description": "EU.EnergyClass (Annex I(g)). Energy efficiency class label (e.g., A to G) of the product.",
          "x-requirementId": "EU.EnergyClass"
        }
      }
    },
    "criticalRawMaterials": {
      "type": "array",
      "title": "Critical Raw Materials",
      "description": "EU.CritRawMat (Annex I(h)). List of critical raw materials contained in the product.",
      "x-requirementId": "EU.CritRawMat"
    },
    "productAttributes": {
      "type": "object",
      "properties": {
        "weightVolume": {
          "type": "object",
          "title": "Product Weight & Volume",
          "description": "EU.WeightVol (Annex I(j)). Physical weight and volume of the product.",
          "x-requirementId": "EU.WeightVol"
        }
      }
    },
    "durability": {
      "type": "object",
      "properties": {
        "expectedLifetime": {
          "type": "integer",
          "title": "Expected Lifetime",
          "description": "EU.Lifetime (Art. 7(2)(b)(i)). Expected product lifetime in defined units (e.g., hours, cycles).",
          "x-requirementId": "EU.Lifetime"
        },
        "repairabilityIndex": {
          "type": "number",
          "title": "Repairability Index",
          "description": "EU.RepairIdx (Art. 7(2)(b)(i)). Repairability score indicating ease of repair for the product.",
          "x-requirementId": "EU.RepairIdx"
        },
        "guaranteedAvailability": {
          "type": "integer",
          "title": "Spare Parts Availability",
          "description": "EU.SpareParts (Annex I(b)). Guaranteed period of spare parts availability (in years).",
          "x-requirementId": "EU.SpareParts"
        }
      },
      "required": [
        "expectedLifetime",
        "guaranteedAvailability"
      ]
    },
    "circularity": {
      "type": "object",
      "properties": {
        "refurbishmentInfo": {
          "type": "object",
          "title": "Refurbishment Info",
          "description": "EU.RefurbInfo (Annex I(c)). Information on product refurbishment and remanufacturing options.",
          "x-requirementId": "EU.RefurbInfo"
        }
      }
    },
    "recyclability": {
      "type": "object",
      "properties": {
        "recyclabilityRate": {
          "type": "number",
          "title": "Recyclability Rate",
          "description": "EU.RecyclRate (Annex I(d)). Percentage of the product that can be recycled.",
          "x-requirementId": "EU.RecyclRate"
        },
        "disassemblyInstructions": {
          "type": "string",
          "format": "uri",
          "title": "Disassembly Instructions",
          "description": "EU.DisassInstr (Art. 7(2)(b)(iii)). Link to disassembly instructions for recycling and end-of-life processing.",
          "x-requirementId": "EU.DisassInstr"
        }
      },
      "required": [
        "recyclabilityRate",
        "disassemblyInstructions"
      ]
    },
    "materialFootprint": {
      "type": "object",
      "title": "Material Footprint",
      "description": "EU.MatFP (Annex I(o)). Total raw material consumption footprint of the product.",
      "x-requirementId": "EU.MatFP"
    },
    "microplasticRelease": {
      "type": "object",
      "title": "Microplastic Release",
      "description": "EU.Microplast (Annex I(p)). Information on microplastic release during product use or washing.",
      "x-requirementId": "EU.Microplast"
    },
    "emissions": {
      "type": "object",
      "title": "Emissions (Air/Water/Soil)",
      "description": "EU.Emissions (Annex I(q)). Emissions to air, water, and soil during the product life cycle.",
      "x-requirementId": "EU.Emissions"
    },
    "wasteGeneration": {
      "type": "object",
      "title": "Waste Generation",
      "description": "EU.WasteGen (Annex I(r)). Information about waste generated during production and end-of-life.",
      "x-requirementId": "EU.WasteGen"
    },
    "functionalPerformance": {
      "type": "object",
      "title": "Functional Performance",
      "description": "EU.FuncPerf (Annex I(s)). Functional performance parameters of the product.",
      "x-requirementId": "EU.FuncPerf"
    },
    "lightweightDesign": {
      "type": "object",
      "title": "Lightweight Design",
      "description": "EU.Lightweight (Annex I(t)). Information on lightweight design measures applied to the product.",
      "x-requirementId": "EU.Lightweight"
    },
    "complianceInfo": {
      "type": "object",
      "properties": {
        "ceMarking": {
          "type": "object",
          "title": "CE Marking",
          "description": "EU.CEMark (Art. 27(2), 46). CE conformity marking information for the EU market.",
          "x-requirementId": "EU.CEMark"
        },
        "declarationOfConformity": {
          "type": "object",
          "title": "Decl. of Conformity",
          "description": "EU.DeclConf (Annex III(e)). EU Declaration of Conformity document or link.",
          "x-requirementId": "EU.DeclConf"
        },
        "certifications": {
          "type": "array",
          "title": "Certifications",
          "description": "EU.Certs (Annex III(e)). List of product certifications and compliance attestations.",
          "x-requirementId": "EU.Certs"
        }
      },
      "required": [
        "ceMarking",
        "declarationOfConformity"
      ]
    },
    "documentation": {
      "type": "object",
      "properties": {
        "userManuals": {
          "type": "array",
          "title": "User Manuals & Instr.",
          "description": "EU.UserManual (Annex III(f), 27(7)). User manuals, installation guides, and safety instructions.",
          "x-requirementId": "EU.UserManual"
        }
      },
      "required": [
        "userManuals"
      ]
    },
    "supplyChainInfo": {
      "type": "object",
      "properties": {
        "dueDiligence": {
          "type": "object",
          "title": "Due Diligence",
          "description": "EU.DueDilig (Art. 7(2)(b)(iv)). Supply chain due diligence information per applicable regulations.",
          "x-requirementId": "EU.DueDilig"
        },
        "actors": {
          "type": "array",
          "title": "Supply Chain Actors",
          "description": "EU.SCActors (Annex III(h),(k)). Information about economic operators in the supply chain.",
          "x-requirementId": "EU.SCActors"
        }
      }
    },
    "dppServiceProvider": {
      "type": "object",
      "title": "DPP Service Provider",
      "description": "EU.DPPProvider (Annex III(l)). Identity and contact of the DPP hosting service provider.",
      "x-requirementId": "EU.DPPProvider"
    }
  },
  "required": [
    "passportIdentifier",
    "productIdentifier",
    "manufacturer",
    "placeOfManufacture",
    "manufacturingDate",
    "importer",
    "carbonFootprint",
    "materialComposition",
    "recycledContent",
    "hazardousSubstances",
    "durability",
    "recyclability",
    "complianceInfo",
    "documentation",
    "dppServiceProvider"
  ]
}
