@tracepass/dpp-schemas 1.17.0 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -291,8 +291,8 @@ each member has a `type` (`string` | `number` | `boolean`), and optionally `requ
291
291
  composition, for example, is a list of `{substanceName, casNumber, massPercent}`, with
292
292
  `massPercent` as a share of the battery's total mass. Audit check [22] requires
293
293
  `aiHints.expectedFormat` to name every declared member, and to use no member that is
294
- not declared, so the extraction hint and the declared shape cannot drift apart. Fields
295
- without it are untyped lists.
294
+ not declared, so the extraction hint and the declared shape cannot drift apart. Every object list in
295
+ every category declares one.
296
296
 
297
297
  ## No build step
298
298
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tracepass/dpp-schemas",
3
- "version": "1.17.0",
3
+ "version": "1.18.0",
4
4
  "description": "Machine-readable field specifications for EU Digital Product Passports (ESPR) — 13 product categories, 991 fields, each traced to the article of EU law that mandates it. Pure JSON, no dependencies.",
5
5
  "keywords": [
6
6
  "digital-product-passport",
@@ -5200,6 +5200,10 @@
5200
5200
  "hazardClassification": {
5201
5201
  "type": "string"
5202
5202
  },
5203
+ "precautionaryStatements": {
5204
+ "type": "string",
5205
+ "description": "CLP P-statements from the SDS, e.g. P201; P280"
5206
+ },
5203
5207
  "locationInBattery": {
5204
5208
  "type": "string"
5205
5209
  }
@@ -5281,7 +5285,7 @@
5281
5285
  "REACH substances",
5282
5286
  "substances of concern"
5283
5287
  ],
5284
- "expectedFormat": "Array of objects: [{substanceName: 'Lead', casNumber: '7439-92-1', concentrationPercent: 0.15, hazardClassification: 'Repr. 1A', locationInBattery: 'Solder joints'}]",
5288
+ "expectedFormat": "Array of objects: [{substanceName: 'Lead', casNumber: '7439-92-1', concentrationPercent: 0.15, hazardClassification: 'Repr. 1A', precautionaryStatements: 'P201; P280', locationInBattery: 'Solder joints'}]. precautionaryStatements are the CLP P-statements from the SDS.",
5285
5289
  "extractionPriority": 7
5286
5290
  }
5287
5291
  },
@@ -4169,6 +4169,23 @@
4169
4169
  "sv": "Ämnen som inger betänkligheter enligt REACH/SCIP med CAS-nummer"
4170
4170
  },
4171
4171
  "dataType": "array",
4172
+ "entryProperties": {
4173
+ "substanceName": {
4174
+ "type": "string",
4175
+ "required": true
4176
+ },
4177
+ "casNumber": {
4178
+ "type": "string",
4179
+ "format": "cas-number"
4180
+ },
4181
+ "concentrationPercent": {
4182
+ "type": "number",
4183
+ "description": "% by mass of the article or mixture"
4184
+ },
4185
+ "locationInProduct": {
4186
+ "type": "string"
4187
+ }
4188
+ },
4172
4189
  "unit": null,
4173
4190
  "translatable": false,
4174
4191
  "defaultValue": null,
@@ -4221,7 +4238,7 @@
4221
4238
  "hazardous substances",
4222
4239
  "candidate list substances"
4223
4240
  ],
4224
- "expectedFormat": "Array of objects with substanceName (string), casNumber (string), concentration (%), location (string)",
4241
+ "expectedFormat": "Array of objects: [{substanceName: 'Lead', casNumber: '7439-92-1', concentrationPercent: 0.15, locationInProduct: 'Flashing'}]. Each item: substanceName (string, required); casNumber (string); concentrationPercent (number, % by mass of the article or mixture); locationInProduct (string).",
4225
4242
  "extractionPriority": 8
4226
4243
  }
4227
4244
  },
@@ -4632,6 +4632,26 @@
4632
4632
  "sv": "Array av ämnen som inger mycket stora betänkligheter, närvaro >0,1 % g/g. REACH art. 33 gäller varor, inte blandningar; för rengöringsmedel och färger är den relevanta skyldigheten säkerhetsdatabladet (art. 31(1)(a), 31(3)(b)). Passet är inte skyldigt att innehålla detta enligt REACH art. 33."
4633
4633
  },
4634
4634
  "dataType": "array",
4635
+ "entryProperties": {
4636
+ "substanceName": {
4637
+ "type": "string",
4638
+ "required": true
4639
+ },
4640
+ "casNumber": {
4641
+ "type": "string",
4642
+ "format": "cas-number"
4643
+ },
4644
+ "ecNumber": {
4645
+ "type": "string"
4646
+ },
4647
+ "concentrationPercent": {
4648
+ "type": "number",
4649
+ "description": "% by mass of the article or mixture"
4650
+ },
4651
+ "locationInProduct": {
4652
+ "type": "string"
4653
+ }
4654
+ },
4635
4655
  "unit": null,
4636
4656
  "translatable": false,
4637
4657
  "defaultValue": null,
@@ -4681,7 +4701,7 @@
4681
4701
  "SVHC list",
4682
4702
  "candidate list substances"
4683
4703
  ],
4684
- "expectedFormat": "Array of objects: [{substanceName: 'Formaldehyde', casNumber: '50-00-0', ecNumber: '200-001-8', concentrationPercent: 0.15, locationInProduct: 'Preservative'}]. The svhcSubstanceName / svhcCasNumber / svhcEcNumber / svhcConcentrationRange / svhcLocationInProduct fields describe a SINGLE substance; use this array when more than one is present.",
4704
+ "expectedFormat": "Array of objects: [{substanceName: 'Formaldehyde', casNumber: '50-00-0', ecNumber: '200-001-8', concentrationPercent: 0.15, locationInProduct: 'Preservative'}]. Each item: substanceName (string, required); casNumber (string); ecNumber (string); concentrationPercent (number, % by mass of the article or mixture); locationInProduct (string). The svhcSubstanceName / svhcCasNumber / svhcEcNumber / svhcConcentrationRange / svhcLocationInProduct fields describe a SINGLE substance; use this array when more than one is present.",
4685
4705
  "extractionPriority": 9
4686
4706
  }
4687
4707
  },
@@ -15587,6 +15587,29 @@
15587
15587
  "sv": "Problematiska ämnen enligt REACH/SCIP som förekommer i halter över 0,1 % w/w"
15588
15588
  },
15589
15589
  "dataType": "array",
15590
+ "entryProperties": {
15591
+ "substanceName": {
15592
+ "type": "string",
15593
+ "required": true
15594
+ },
15595
+ "casNumber": {
15596
+ "type": "string",
15597
+ "format": "cas-number"
15598
+ },
15599
+ "ecNumber": {
15600
+ "type": "string"
15601
+ },
15602
+ "concentrationPercent": {
15603
+ "type": "number",
15604
+ "description": "% by mass of the article or mixture"
15605
+ },
15606
+ "locationInProduct": {
15607
+ "type": "string"
15608
+ },
15609
+ "safeUseInstructions": {
15610
+ "type": "string"
15611
+ }
15612
+ },
15590
15613
  "unit": null,
15591
15614
  "translatable": false,
15592
15615
  "defaultValue": null,
@@ -15637,7 +15660,7 @@
15637
15660
  "SCIP substances",
15638
15661
  "candidate list substances"
15639
15662
  ],
15640
- "expectedFormat": "Array of objects: {name, casNumber, ecNumber, concentration, location, safeUse}",
15663
+ "expectedFormat": "Array of objects: [{substanceName: 'Lead', casNumber: '7439-92-1', ecNumber: '231-100-4', concentrationPercent: 0.12, locationInProduct: 'Solder', safeUseInstructions: 'Do not dismantle'}]. Each item: substanceName (string, required); casNumber (string); ecNumber (string); concentrationPercent (number, % by mass of the article or mixture); locationInProduct (string); safeUseInstructions (string).",
15641
15664
  "extractionPriority": 8
15642
15665
  }
15643
15666
  },
@@ -18808,6 +18831,25 @@
18808
18831
  "sv": "Fördelning av materialen i produkten med procentandelar och återvinningsbarhet"
18809
18832
  },
18810
18833
  "dataType": "array",
18834
+ "entryProperties": {
18835
+ "material": {
18836
+ "type": "string",
18837
+ "required": true
18838
+ },
18839
+ "massPercent": {
18840
+ "type": "number",
18841
+ "description": "% of the product's total mass"
18842
+ },
18843
+ "massKg": {
18844
+ "type": "number"
18845
+ },
18846
+ "recyclable": {
18847
+ "type": "boolean"
18848
+ },
18849
+ "recyclingMethod": {
18850
+ "type": "string"
18851
+ }
18852
+ },
18811
18853
  "unit": null,
18812
18854
  "translatable": false,
18813
18855
  "defaultValue": null,
@@ -18861,7 +18903,7 @@
18861
18903
  "material breakdown",
18862
18904
  "composition"
18863
18905
  ],
18864
- "expectedFormat": "Array of objects: {name, percentage, weight, isRecyclable, recyclingMethod}",
18906
+ "expectedFormat": "Array of objects: [{material: 'Aluminium', massPercent: 35, massKg: 0.42, recyclable: true, recyclingMethod: 'Mechanical'}]. Each item: material (string, required); massPercent (number, % of the product's total mass); massKg (number); recyclable (boolean); recyclingMethod (string).",
18865
18907
  "extractionPriority": 8
18866
18908
  }
18867
18909
  },
@@ -1945,6 +1945,16 @@
1945
1945
  "sv": "Konserveringsämnen med CAS-nummer, obligatorisk deklaration för kosmetika och rengöringsmedel"
1946
1946
  },
1947
1947
  "dataType": "array",
1948
+ "entryProperties": {
1949
+ "substanceName": {
1950
+ "type": "string",
1951
+ "required": true
1952
+ },
1953
+ "casNumber": {
1954
+ "type": "string",
1955
+ "format": "cas-number"
1956
+ }
1957
+ },
1948
1958
  "unit": null,
1949
1959
  "translatable": false,
1950
1960
  "defaultValue": null,
@@ -2004,7 +2014,7 @@
2004
2014
  "biocide",
2005
2015
  "conservation agent"
2006
2016
  ],
2007
- "expectedFormat": "Array of objects with substanceName and casNumber",
2017
+ "expectedFormat": "Array of objects: [{substanceName: 'Phenoxyethanol', casNumber: '122-99-6'}]. Each item: substanceName (string, required); casNumber (string).",
2008
2018
  "extractionPriority": 3
2009
2019
  }
2010
2020
  },
@@ -2063,6 +2073,23 @@
2063
2073
  "sv": "SVHC-ämnen närvarande över 0,1 % w/w med namn, CAS-nummer, koncentrationsintervall och instruktioner för säker användning"
2064
2074
  },
2065
2075
  "dataType": "array",
2076
+ "entryProperties": {
2077
+ "substanceName": {
2078
+ "type": "string",
2079
+ "required": true
2080
+ },
2081
+ "casNumber": {
2082
+ "type": "string",
2083
+ "format": "cas-number"
2084
+ },
2085
+ "concentrationPercent": {
2086
+ "type": "number",
2087
+ "description": "% by mass of the article or mixture"
2088
+ },
2089
+ "safeUseInstructions": {
2090
+ "type": "string"
2091
+ }
2092
+ },
2066
2093
  "unit": null,
2067
2094
  "translatable": false,
2068
2095
  "defaultValue": null,
@@ -2114,7 +2141,7 @@
2114
2141
  "hazardous substances",
2115
2142
  "REACH substances"
2116
2143
  ],
2117
- "expectedFormat": "Array of objects: {substanceName, casNumber, concentrationPercent, safeUseInstructions}",
2144
+ "expectedFormat": "Array of objects: [{substanceName: 'Butylparaben', casNumber: '94-26-8', concentrationPercent: 0.12, safeUseInstructions: 'Keep away from children'}]. Each item: substanceName (string, required); casNumber (string); concentrationPercent (number, % by mass of the article or mixture); safeUseInstructions (string).",
2118
2145
  "extractionPriority": 4
2119
2146
  }
2120
2147
  },
@@ -2890,6 +2917,15 @@
2890
2917
  "sv": "H-kodade faroangivelser som beskriver farans natur (t.ex. H315 Irriterar huden)"
2891
2918
  },
2892
2919
  "dataType": "array",
2920
+ "entryProperties": {
2921
+ "code": {
2922
+ "type": "string",
2923
+ "required": true
2924
+ },
2925
+ "text": {
2926
+ "type": "string"
2927
+ }
2928
+ },
2893
2929
  "unit": null,
2894
2930
  "translatable": true,
2895
2931
  "defaultValue": null,
@@ -2939,7 +2975,7 @@
2939
2975
  "H-codes",
2940
2976
  "risk phrases"
2941
2977
  ],
2942
- "expectedFormat": "Array of objects: {code: 'H315', text: 'Causes skin irritation'}",
2978
+ "expectedFormat": "Array of objects: [{code: 'H315', text: 'Causes skin irritation'}]. Each item: code (string, required); text (string).",
2943
2979
  "extractionPriority": 5
2944
2980
  }
2945
2981
  },
@@ -2998,6 +3034,15 @@
2998
3034
  "sv": "P-kodade skyddsangivelser som beskriver rekommenderade säkerhetsåtgärder"
2999
3035
  },
3000
3036
  "dataType": "array",
3037
+ "entryProperties": {
3038
+ "code": {
3039
+ "type": "string",
3040
+ "required": true
3041
+ },
3042
+ "text": {
3043
+ "type": "string"
3044
+ }
3045
+ },
3001
3046
  "unit": null,
3002
3047
  "translatable": true,
3003
3048
  "defaultValue": null,
@@ -3047,7 +3092,7 @@
3047
3092
  "P-codes",
3048
3093
  "safety phrases"
3049
3094
  ],
3050
- "expectedFormat": "Array of objects: {code: 'P264', text: 'Wash hands thoroughly after handling'}",
3095
+ "expectedFormat": "Array of objects: [{code: 'P264', text: 'Wash hands thoroughly after handling'}]. Each item: code (string, required); text (string).",
3051
3096
  "extractionPriority": 4
3052
3097
  }
3053
3098
  },
@@ -2233,6 +2233,26 @@
2233
2233
  "sv": "Strukturerad lista över alla material per komponent med viktprocent"
2234
2234
  },
2235
2235
  "dataType": "array",
2236
+ "entryProperties": {
2237
+ "component": {
2238
+ "type": "string"
2239
+ },
2240
+ "material": {
2241
+ "type": "string",
2242
+ "required": true
2243
+ },
2244
+ "massKg": {
2245
+ "type": "number"
2246
+ },
2247
+ "massPercent": {
2248
+ "type": "number",
2249
+ "description": "% of the product's total mass"
2250
+ },
2251
+ "countryOfOrigin": {
2252
+ "type": "string",
2253
+ "format": "iso3166-alpha2"
2254
+ }
2255
+ },
2236
2256
  "unit": null,
2237
2257
  "translatable": false,
2238
2258
  "defaultValue": null,
@@ -2286,7 +2306,7 @@
2286
2306
  "components list",
2287
2307
  "material breakdown"
2288
2308
  ],
2289
- "expectedFormat": "Array of objects: {component, material, weight_kg, weight_percentage, origin_country}",
2309
+ "expectedFormat": "Array of objects: [{component: 'Seat frame', material: 'Beech wood', massKg: 6.2, massPercent: 41, countryOfOrigin: 'PL'}]. Each item: component (string); material (string, required); massKg (number); massPercent (number, % of the product's total mass); countryOfOrigin (string).",
2290
2310
  "extractionPriority": 9
2291
2311
  }
2292
2312
  },
@@ -2894,6 +2914,19 @@
2894
2914
  "sv": "Använt träslag (vanligt namn och vetenskapligt namn)"
2895
2915
  },
2896
2916
  "dataType": "array",
2917
+ "entryProperties": {
2918
+ "commonName": {
2919
+ "type": "string",
2920
+ "required": true
2921
+ },
2922
+ "scientificName": {
2923
+ "type": "string"
2924
+ },
2925
+ "sharePercent": {
2926
+ "type": "number",
2927
+ "description": "% of the product's wood content"
2928
+ }
2929
+ },
2897
2930
  "unit": null,
2898
2931
  "translatable": false,
2899
2932
  "defaultValue": null,
@@ -2943,7 +2976,7 @@
2943
2976
  "wood type",
2944
2977
  "tree species"
2945
2978
  ],
2946
- "expectedFormat": "Array of objects: {common_name, scientific_name, percentage}",
2979
+ "expectedFormat": "Array of objects: [{commonName: 'European beech', scientificName: 'Fagus sylvatica', sharePercent: 80}]. Each item: commonName (string, required); scientificName (string); sharePercent (number, % of the product's wood content).",
2947
2980
  "extractionPriority": 8
2948
2981
  }
2949
2982
  },
@@ -3542,6 +3575,26 @@
3542
3575
  "sv": "Ämnen som inger mycket stora betänkligheter på REACH-kandidatförteckningen över 0,1 % w/w"
3543
3576
  },
3544
3577
  "dataType": "array",
3578
+ "entryProperties": {
3579
+ "substanceName": {
3580
+ "type": "string",
3581
+ "required": true
3582
+ },
3583
+ "casNumber": {
3584
+ "type": "string",
3585
+ "format": "cas-number"
3586
+ },
3587
+ "concentrationPercent": {
3588
+ "type": "number",
3589
+ "description": "% by mass of the article or mixture"
3590
+ },
3591
+ "locationInProduct": {
3592
+ "type": "string"
3593
+ },
3594
+ "hazardClassification": {
3595
+ "type": "string"
3596
+ }
3597
+ },
3545
3598
  "unit": null,
3546
3599
  "translatable": false,
3547
3600
  "defaultValue": null,
@@ -3592,7 +3645,7 @@
3592
3645
  "REACH candidate list",
3593
3646
  "hazardous substances"
3594
3647
  ],
3595
- "expectedFormat": "Array of objects: [{substanceName: 'Formaldehyde', casNumber: '50-00-0', concentrationPercent: 0.15, locationInProduct: 'Adhesive'}]",
3648
+ "expectedFormat": "Array of objects: [{substanceName: 'Formaldehyde', casNumber: '50-00-0', concentrationPercent: 0.15, locationInProduct: 'Adhesive', hazardClassification: 'Carc. 1B'}]. Each item: substanceName (string, required); casNumber (string); concentrationPercent (number, % by mass of the article or mixture); locationInProduct (string); hazardClassification (string).",
3596
3649
  "extractionPriority": 9
3597
3650
  }
3598
3651
  },
@@ -4271,6 +4324,23 @@
4271
4324
  "sv": "Lista över använda flamskyddskemikalier, om tillämpligt. Halogenerade flamskyddsmedel granskas av ECHA."
4272
4325
  },
4273
4326
  "dataType": "array",
4327
+ "entryProperties": {
4328
+ "substanceName": {
4329
+ "type": "string",
4330
+ "required": true
4331
+ },
4332
+ "casNumber": {
4333
+ "type": "string",
4334
+ "format": "cas-number"
4335
+ },
4336
+ "type": {
4337
+ "type": "string"
4338
+ },
4339
+ "concentrationPercent": {
4340
+ "type": "number",
4341
+ "description": "% by mass of the article"
4342
+ }
4343
+ },
4274
4344
  "unit": null,
4275
4345
  "translatable": false,
4276
4346
  "defaultValue": null,
@@ -4320,7 +4390,7 @@
4320
4390
  "FR chemicals",
4321
4391
  "flame retardant list"
4322
4392
  ],
4323
- "expectedFormat": "Array of objects: {substance_name, cas_number, type, concentration_percentage}",
4393
+ "expectedFormat": "Array of objects: [{substanceName: 'Aluminium hydroxide', casNumber: '21645-51-2', type: 'Inorganic', concentrationPercent: 5}]. Each item: substanceName (string, required); casNumber (string); type (string); concentrationPercent (number, % by mass of the article).",
4324
4394
  "extractionPriority": 7
4325
4395
  }
4326
4396
  },
@@ -6992,6 +7062,18 @@
6992
7062
  "sv": "Lista över tillgängliga reservdelar med beställningsinformation"
6993
7063
  },
6994
7064
  "dataType": "array",
7065
+ "entryProperties": {
7066
+ "partName": {
7067
+ "type": "string",
7068
+ "required": true
7069
+ },
7070
+ "partNumber": {
7071
+ "type": "string"
7072
+ },
7073
+ "orderingUrl": {
7074
+ "type": "string"
7075
+ }
7076
+ },
6995
7077
  "unit": null,
6996
7078
  "translatable": false,
6997
7079
  "defaultValue": null,
@@ -7044,7 +7126,7 @@
7044
7126
  "spare parts",
7045
7127
  "parts catalog"
7046
7128
  ],
7047
- "expectedFormat": "Array of objects: {part_name, part_number, ordering_url}",
7129
+ "expectedFormat": "Array of objects: [{partName: 'Seat cushion', partNumber: 'SC-102', orderingUrl: 'https://example.com/parts/SC-102'}]. Each item: partName (string, required); partNumber (string); orderingUrl (string).",
7048
7130
  "extractionPriority": 6
7049
7131
  }
7050
7132
  },
@@ -7214,6 +7296,18 @@
7214
7296
  "sv": "Återvinningsbarhet per materialtyp"
7215
7297
  },
7216
7298
  "dataType": "array",
7299
+ "entryProperties": {
7300
+ "material": {
7301
+ "type": "string",
7302
+ "required": true
7303
+ },
7304
+ "recyclable": {
7305
+ "type": "boolean"
7306
+ },
7307
+ "recyclingMethod": {
7308
+ "type": "string"
7309
+ }
7310
+ },
7217
7311
  "unit": null,
7218
7312
  "translatable": false,
7219
7313
  "defaultValue": null,
@@ -7262,7 +7356,7 @@
7262
7356
  "recyclability per material",
7263
7357
  "material recycling breakdown"
7264
7358
  ],
7265
- "expectedFormat": "Array of objects: {material, recyclable, method}",
7359
+ "expectedFormat": "Array of objects: [{material: 'Steel', recyclable: true, recyclingMethod: 'Mechanical'}]. Each item: material (string, required); recyclable (boolean); recyclingMethod (string).",
7266
7360
  "extractionPriority": 5
7267
7361
  }
7268
7362
  },
@@ -7858,6 +7952,15 @@
7858
7952
  "sv": "Övriga innehavda miljö-/kvalitetscertifieringar"
7859
7953
  },
7860
7954
  "dataType": "array",
7955
+ "entryProperties": {
7956
+ "name": {
7957
+ "type": "string",
7958
+ "required": true
7959
+ },
7960
+ "licenseNumber": {
7961
+ "type": "string"
7962
+ }
7963
+ },
7861
7964
  "unit": null,
7862
7965
  "translatable": false,
7863
7966
  "defaultValue": null,
@@ -7905,7 +8008,7 @@
7905
8008
  "eco labels",
7906
8009
  "third-party certifications"
7907
8010
  ],
7908
- "expectedFormat": "Array of objects: {name, license_number}",
8011
+ "expectedFormat": "Array of objects: [{name: 'Nordic Swan', licenseNumber: '3071-0001'}]. Each item: name (string, required); licenseNumber (string).",
7909
8012
  "extractionPriority": 5
7910
8013
  }
7911
8014
  },
@@ -8725,6 +8828,22 @@
8725
8828
  "sv": "Viktiga aktörer i leveranskedjan som är involverade i produktionen (i flera nivåer)"
8726
8829
  },
8727
8830
  "dataType": "array",
8831
+ "entryProperties": {
8832
+ "tier": {
8833
+ "type": "string"
8834
+ },
8835
+ "role": {
8836
+ "type": "string"
8837
+ },
8838
+ "companyName": {
8839
+ "type": "string",
8840
+ "required": true
8841
+ },
8842
+ "country": {
8843
+ "type": "string",
8844
+ "format": "iso3166-alpha2"
8845
+ }
8846
+ },
8728
8847
  "unit": null,
8729
8848
  "translatable": false,
8730
8849
  "defaultValue": null,
@@ -8775,7 +8894,7 @@
8775
8894
  "production chain",
8776
8895
  "tier 1 suppliers"
8777
8896
  ],
8778
- "expectedFormat": "Array of objects: {tier, role, company_name, country}",
8897
+ "expectedFormat": "Array of objects: [{tier: '1', role: 'Upholstery', companyName: 'Example Textiles', country: 'PT'}]. Each item: tier (string); role (string); companyName (string, required); country (string).",
8779
8898
  "extractionPriority": 5
8780
8899
  }
8781
8900
  },
@@ -7092,6 +7092,15 @@
7092
7092
  "sv": "Array av ytterligare anpassade certifikat som inte täcks av standardfält"
7093
7093
  },
7094
7094
  "dataType": "array",
7095
+ "entryProperties": {
7096
+ "name": {
7097
+ "type": "string",
7098
+ "required": true
7099
+ },
7100
+ "url": {
7101
+ "type": "string"
7102
+ }
7103
+ },
7095
7104
  "unit": null,
7096
7105
  "translatable": false,
7097
7106
  "defaultValue": null,
@@ -7141,7 +7150,7 @@
7141
7150
  "additional certs",
7142
7151
  "extra certifications"
7143
7152
  ],
7144
- "expectedFormat": "Array of objects with name and URL/file reference",
7153
+ "expectedFormat": "Array of objects: [{name: 'Assay certificate', url: 'https://example.com/cert.pdf'}]. Each item: name (string, required); url (string).",
7145
7154
  "extractionPriority": 3
7146
7155
  }
7147
7156
  },
@@ -4363,6 +4363,26 @@
4363
4363
  "sv": "Array av ämnen som inger mycket stora betänkligheter, närvaro >0,1 % g/g. REACH art. 33 gäller varor, inte blandningar; för rengöringsmedel och färger är den relevanta skyldigheten säkerhetsdatabladet (art. 31(1)(a), 31(3)(b)). Passet är inte skyldigt att innehålla detta enligt REACH art. 33."
4364
4364
  },
4365
4365
  "dataType": "array",
4366
+ "entryProperties": {
4367
+ "substanceName": {
4368
+ "type": "string",
4369
+ "required": true
4370
+ },
4371
+ "casNumber": {
4372
+ "type": "string",
4373
+ "format": "cas-number"
4374
+ },
4375
+ "ecNumber": {
4376
+ "type": "string"
4377
+ },
4378
+ "concentrationPercent": {
4379
+ "type": "number",
4380
+ "description": "% by mass of the article or mixture"
4381
+ },
4382
+ "locationInProduct": {
4383
+ "type": "string"
4384
+ }
4385
+ },
4366
4386
  "unit": null,
4367
4387
  "translatable": false,
4368
4388
  "defaultValue": null,
@@ -4412,7 +4432,7 @@
4412
4432
  "SVHC list",
4413
4433
  "candidate list substances"
4414
4434
  ],
4415
- "expectedFormat": "Array of objects: [{substanceName: 'Formaldehyde', casNumber: '50-00-0', ecNumber: '200-001-8', concentrationPercent: 0.15, locationInProduct: 'Preservative'}]. The svhcSubstanceName / svhcCasNumber / svhcEcNumber / svhcConcentrationRange / svhcLocationInProduct fields describe a SINGLE substance; use this array when more than one is present.",
4435
+ "expectedFormat": "Array of objects: [{substanceName: 'Formaldehyde', casNumber: '50-00-0', ecNumber: '200-001-8', concentrationPercent: 0.15, locationInProduct: 'Preservative'}]. Each item: substanceName (string, required); casNumber (string); ecNumber (string); concentrationPercent (number, % by mass of the article or mixture); locationInProduct (string). The svhcSubstanceName / svhcCasNumber / svhcEcNumber / svhcConcentrationRange / svhcLocationInProduct fields describe a SINGLE substance; use this array when more than one is present.",
4416
4436
  "extractionPriority": 9
4417
4437
  }
4418
4438
  },
@@ -8258,6 +8258,29 @@
8258
8258
  "nl": "Lijst van SVHC-stoffen aanwezig boven 0,1 gew.%, met CAS-nummers en concentraties."
8259
8259
  },
8260
8260
  "dataType": "array",
8261
+ "entryProperties": {
8262
+ "substanceName": {
8263
+ "type": "string",
8264
+ "required": true
8265
+ },
8266
+ "casNumber": {
8267
+ "type": "string",
8268
+ "format": "cas-number"
8269
+ },
8270
+ "ecNumber": {
8271
+ "type": "string"
8272
+ },
8273
+ "concentrationPercent": {
8274
+ "type": "number",
8275
+ "description": "% by mass of the article or mixture"
8276
+ },
8277
+ "locationInProduct": {
8278
+ "type": "string"
8279
+ },
8280
+ "hazardClassification": {
8281
+ "type": "string"
8282
+ }
8283
+ },
8261
8284
  "unit": null,
8262
8285
  "translatable": false,
8263
8286
  "defaultValue": null,
@@ -8309,7 +8332,7 @@
8309
8332
  "SCIP substances",
8310
8333
  "hazardous substances"
8311
8334
  ],
8312
- "expectedFormat": "Array of objects: [{substanceName: 'Lead', casNumber: '7439-92-1', ecNumber: '231-100-4', concentrationPercent: 0.15, locationInProduct: 'Coating'}]",
8335
+ "expectedFormat": "Array of objects: [{substanceName: 'Lead', casNumber: '7439-92-1', ecNumber: '231-100-4', concentrationPercent: 0.15, locationInProduct: 'Coating', hazardClassification: 'Repr. 1A'}]. Each item: substanceName (string, required); casNumber (string); ecNumber (string); concentrationPercent (number, % by mass of the article or mixture); locationInProduct (string); hazardClassification (string).",
8313
8336
  "extractionPriority": 7
8314
8337
  }
8315
8338
  },
@@ -3763,6 +3763,16 @@
3763
3763
  "sv": "Lista över primära material som används i leksaken (t.ex. ABS-plast, trä, bomullstyg, metall)"
3764
3764
  },
3765
3765
  "dataType": "array",
3766
+ "entryProperties": {
3767
+ "material": {
3768
+ "type": "string",
3769
+ "required": true
3770
+ },
3771
+ "massPercent": {
3772
+ "type": "number",
3773
+ "description": "% of the toy's total mass"
3774
+ }
3775
+ },
3766
3776
  "unit": null,
3767
3777
  "translatable": true,
3768
3778
  "defaultValue": null,
@@ -3812,7 +3822,7 @@
3812
3822
  "material list",
3813
3823
  "components"
3814
3824
  ],
3815
- "expectedFormat": "Array of objects: [{material: 'ABS plastic', weightPercent: 60}, {material: 'Beech wood', weightPercent: 30}]",
3825
+ "expectedFormat": "Array of objects: [{material: 'ABS plastic', massPercent: 60}]. Each item: material (string, required); massPercent (number, % of the toy's total mass).",
3816
3826
  "extractionPriority": 4
3817
3827
  }
3818
3828
  },
@@ -3990,6 +4000,23 @@
3990
4000
  "sv": "Detaljerad lista över ämnen som inger betänkligheter i leksaken, inklusive CAS-nummer, koncentrationer och placeringar (SCIP-nivå detalj)"
3991
4001
  },
3992
4002
  "dataType": "array",
4003
+ "entryProperties": {
4004
+ "substanceName": {
4005
+ "type": "string",
4006
+ "required": true
4007
+ },
4008
+ "casNumber": {
4009
+ "type": "string",
4010
+ "format": "cas-number"
4011
+ },
4012
+ "concentrationPercent": {
4013
+ "type": "number",
4014
+ "description": "% by mass of the article or mixture"
4015
+ },
4016
+ "locationInProduct": {
4017
+ "type": "string"
4018
+ }
4019
+ },
3993
4020
  "unit": null,
3994
4021
  "translatable": false,
3995
4022
  "defaultValue": null,
@@ -4041,7 +4068,7 @@
4041
4068
  "SDS substances",
4042
4069
  "SVHC list"
4043
4070
  ],
4044
- "expectedFormat": "Array of objects: [{name: 'Di(2-ethylhexyl) phthalate', casNumber: '117-81-7', concentration: 0.05, location: 'PVC coating'}]",
4071
+ "expectedFormat": "Array of objects: [{substanceName: 'Di(2-ethylhexyl) phthalate', casNumber: '117-81-7', concentrationPercent: 0.05, locationInProduct: 'PVC coating'}]. Each item: substanceName (string, required); casNumber (string); concentrationPercent (number, % by mass of the article or mixture); locationInProduct (string).",
4045
4072
  "extractionPriority": 3
4046
4073
  }
4047
4074
  },
@@ -6217,6 +6217,20 @@
6217
6217
  "sv": "Strukturerad lista över däckmaterial i viktprocent"
6218
6218
  },
6219
6219
  "dataType": "array",
6220
+ "entryProperties": {
6221
+ "material": {
6222
+ "type": "string",
6223
+ "required": true
6224
+ },
6225
+ "massPercent": {
6226
+ "type": "number",
6227
+ "description": "% of the tyre's total mass"
6228
+ },
6229
+ "countryOfOrigin": {
6230
+ "type": "string",
6231
+ "format": "iso3166-alpha2"
6232
+ }
6233
+ },
6220
6234
  "unit": null,
6221
6235
  "translatable": false,
6222
6236
  "defaultValue": null,
@@ -6271,7 +6285,7 @@
6271
6285
  "ingredients",
6272
6286
  "material breakdown"
6273
6287
  ],
6274
- "expectedFormat": "Array of objects with material, weight_percentage, origin_country",
6288
+ "expectedFormat": "Array of objects: [{material: 'Natural rubber', massPercent: 22, countryOfOrigin: 'TH'}]. Each item: material (string, required); massPercent (number, % of the tyre's total mass); countryOfOrigin (string).",
6275
6289
  "extractionPriority": 8
6276
6290
  }
6277
6291
  },
@@ -7100,6 +7114,26 @@
7100
7114
  "sv": "Ämnen som inger mycket stora betänkligheter över tröskelvärdet 0,1 vikt-%"
7101
7115
  },
7102
7116
  "dataType": "array",
7117
+ "entryProperties": {
7118
+ "substanceName": {
7119
+ "type": "string",
7120
+ "required": true
7121
+ },
7122
+ "casNumber": {
7123
+ "type": "string",
7124
+ "format": "cas-number"
7125
+ },
7126
+ "concentrationPercent": {
7127
+ "type": "number",
7128
+ "description": "% by mass of the article or mixture"
7129
+ },
7130
+ "locationInProduct": {
7131
+ "type": "string"
7132
+ },
7133
+ "hazardClassification": {
7134
+ "type": "string"
7135
+ }
7136
+ },
7103
7137
  "unit": null,
7104
7138
  "translatable": false,
7105
7139
  "defaultValue": null,
@@ -7150,7 +7184,7 @@
7150
7184
  "REACH candidate list",
7151
7185
  "hazardous substances"
7152
7186
  ],
7153
- "expectedFormat": "Array of objects: [{substanceName: 'DEHP', casNumber: '117-81-7', concentrationPercent: 0.15, locationInProduct: 'Sidewall compound'}]",
7187
+ "expectedFormat": "Array of objects: [{substanceName: 'DEHP', casNumber: '117-81-7', concentrationPercent: 0.15, locationInProduct: 'Sidewall compound', hazardClassification: 'Repr. 1B'}]. Each item: substanceName (string, required); casNumber (string); concentrationPercent (number, % by mass of the article or mixture); locationInProduct (string); hazardClassification (string).",
7154
7188
  "extractionPriority": 8
7155
7189
  }
7156
7190
  },
@@ -9173,6 +9207,19 @@
9173
9207
  "sv": "Återvinningsvägar vid livslängdens slut och procentandelar"
9174
9208
  },
9175
9209
  "dataType": "array",
9210
+ "entryProperties": {
9211
+ "pathway": {
9212
+ "type": "string",
9213
+ "required": true
9214
+ },
9215
+ "sharePercent": {
9216
+ "type": "number",
9217
+ "description": "% of the tyre's mass"
9218
+ },
9219
+ "outputUses": {
9220
+ "type": "string"
9221
+ }
9222
+ },
9176
9223
  "unit": null,
9177
9224
  "translatable": false,
9178
9225
  "defaultValue": null,
@@ -9226,7 +9273,7 @@
9226
9273
  "recycling routes",
9227
9274
  "end of life pathways"
9228
9275
  ],
9229
- "expectedFormat": "Array of objects with pathway, percentage, output_uses",
9276
+ "expectedFormat": "Array of objects: [{pathway: 'Granulation', sharePercent: 60, outputUses: 'Sports surfaces'}]. Each item: pathway (string, required); sharePercent (number, % of the tyre's mass); outputUses (string).",
9230
9277
  "extractionPriority": 7
9231
9278
  }
9232
9279
  },
@@ -10152,6 +10199,15 @@
10152
10199
  "sv": "Ytterligare kvalitets-/miljöcertifieringar"
10153
10200
  },
10154
10201
  "dataType": "array",
10202
+ "entryProperties": {
10203
+ "name": {
10204
+ "type": "string",
10205
+ "required": true
10206
+ },
10207
+ "certificateNumber": {
10208
+ "type": "string"
10209
+ }
10210
+ },
10155
10211
  "unit": null,
10156
10212
  "translatable": false,
10157
10213
  "defaultValue": null,
@@ -10199,7 +10255,7 @@
10199
10255
  "quality certificates",
10200
10256
  "environmental certificates"
10201
10257
  ],
10202
- "expectedFormat": "Array of objects with name and certificate_number",
10258
+ "expectedFormat": "Array of objects: [{name: 'SmartWay', certificateNumber: 'SW-2026-114'}]. Each item: name (string, required); certificateNumber (string).",
10203
10259
  "extractionPriority": 4
10204
10260
  }
10205
10261
  },