@bsv/dpp-profiles 0.3.0-beta.1

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.
Files changed (96) hide show
  1. package/LICENSE +58 -0
  2. package/README.md +64 -0
  3. package/dist/applicability.d.ts +96 -0
  4. package/dist/applicability.d.ts.map +1 -0
  5. package/dist/applicability.js +181 -0
  6. package/dist/applicability.js.map +1 -0
  7. package/dist/combinations.d.ts +30 -0
  8. package/dist/combinations.d.ts.map +1 -0
  9. package/dist/combinations.js +103 -0
  10. package/dist/combinations.js.map +1 -0
  11. package/dist/evidence-shapes.d.ts +198 -0
  12. package/dist/evidence-shapes.d.ts.map +1 -0
  13. package/dist/evidence-shapes.js +123 -0
  14. package/dist/evidence-shapes.js.map +1 -0
  15. package/dist/gs1-epc-binary.d.ts +81 -0
  16. package/dist/gs1-epc-binary.d.ts.map +1 -0
  17. package/dist/gs1-epc-binary.js +252 -0
  18. package/dist/gs1-epc-binary.js.map +1 -0
  19. package/dist/gs1-resolution.d.ts +392 -0
  20. package/dist/gs1-resolution.d.ts.map +1 -0
  21. package/dist/gs1-resolution.js +696 -0
  22. package/dist/gs1-resolution.js.map +1 -0
  23. package/dist/identifiers.d.ts +57 -0
  24. package/dist/identifiers.d.ts.map +1 -0
  25. package/dist/identifiers.js +117 -0
  26. package/dist/identifiers.js.map +1 -0
  27. package/dist/index.d.ts +235 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +124 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/manifest-v2.d.ts +87 -0
  32. package/dist/manifest-v2.d.ts.map +1 -0
  33. package/dist/manifest-v2.js +31 -0
  34. package/dist/manifest-v2.js.map +1 -0
  35. package/dist/mapping.d.ts +84 -0
  36. package/dist/mapping.d.ts.map +1 -0
  37. package/dist/mapping.js +88 -0
  38. package/dist/mapping.js.map +1 -0
  39. package/dist/projections.d.ts +233 -0
  40. package/dist/projections.d.ts.map +1 -0
  41. package/dist/projections.js +466 -0
  42. package/dist/projections.js.map +1 -0
  43. package/frozen.json +42 -0
  44. package/generated/consumer/battery-v2.json +2248 -0
  45. package/generated/consumer/battery-v3.json +4354 -0
  46. package/generated/consumer/general-v1.json +9 -0
  47. package/generated/consumer/general-v2.json +714 -0
  48. package/generated/consumer/textile-v1.json +101 -0
  49. package/generated/consumer/textile-v2.json +1033 -0
  50. package/generated/consumer/textile-v3.json +2011 -0
  51. package/generated/index.json +86 -0
  52. package/generated/mapping/battery@2.md +116 -0
  53. package/generated/mapping/battery@3.md +130 -0
  54. package/generated/mapping/general@2.md +50 -0
  55. package/generated/mapping/textile@2.md +61 -0
  56. package/generated/mapping/textile@3.md +73 -0
  57. package/generated/payload-schema/battery@2.public.schema.json +609 -0
  58. package/generated/payload-schema/battery@2.restricted.schema.json +377 -0
  59. package/generated/payload-schema/battery@3.public.schema.json +1364 -0
  60. package/generated/payload-schema/battery@3.restricted.schema.json +1097 -0
  61. package/generated/payload-schema/general@1.public.schema.json +37 -0
  62. package/generated/payload-schema/general@1.restricted.schema.json +9 -0
  63. package/generated/payload-schema/general@2.public.schema.json +352 -0
  64. package/generated/payload-schema/general@2.restricted.schema.json +52 -0
  65. package/generated/payload-schema/textile@1.public.schema.json +82 -0
  66. package/generated/payload-schema/textile@1.restricted.schema.json +22 -0
  67. package/generated/payload-schema/textile@2.public.schema.json +464 -0
  68. package/generated/payload-schema/textile@2.restricted.schema.json +78 -0
  69. package/generated/payload-schema/textile@3.public.schema.json +1299 -0
  70. package/generated/payload-schema/textile@3.restricted.schema.json +78 -0
  71. package/manifests/battery@2.json +4047 -0
  72. package/manifests/battery@3.json +6164 -0
  73. package/manifests/exchange/untp-0.7.0-jose@1.json +191 -0
  74. package/manifests/exchange/vc-di-ecdsa-rdfc-2019@1.json +74 -0
  75. package/manifests/exchange/vsc-draft-compat@0.1.0.json +64 -0
  76. package/manifests/general@1.json +148 -0
  77. package/manifests/general@2.json +1266 -0
  78. package/manifests/interoperability/epcis-json@1.json +69 -0
  79. package/manifests/interoperability/epcis-vsc@1.json +64 -0
  80. package/manifests/interoperability/gs1-digital-link@1.json +71 -0
  81. package/manifests/operator/federated-operators@1.json +54 -0
  82. package/manifests/operator/single-operator@1.json +52 -0
  83. package/manifests/textile@1.json +383 -0
  84. package/manifests/textile@2.json +1682 -0
  85. package/manifests/textile@3.json +2763 -0
  86. package/package.json +59 -0
  87. package/schemas/exchange-profile.schema.json +134 -0
  88. package/schemas/gs1/NOTICE.md +11 -0
  89. package/schemas/gs1/resolver-description-file-schema-1.2.0.json +124 -0
  90. package/schemas/gs1/resolver-linkset-context-1.2.1.jsonld +39 -0
  91. package/schemas/gs1/resolver-linkset-schema-1.2.1.json +96 -0
  92. package/schemas/interoperability-profile.schema.json +347 -0
  93. package/schemas/operator-profile.schema.json +108 -0
  94. package/schemas/product-identity.schema.json +45 -0
  95. package/schemas/profile-manifest-v2.schema.json +1087 -0
  96. package/schemas/profile-manifest.schema.json +291 -0
@@ -0,0 +1,2763 @@
1
+ {
2
+ "manifestVersion": "2",
3
+ "kind": "industry",
4
+ "baseline": "native-baseline@2",
5
+ "roles": [
6
+ "passport-writer",
7
+ "attestation-issuer",
8
+ "registry",
9
+ "passport-reader"
10
+ ],
11
+ "schemaDialect": "https://json-schema.org/draft/2020-12/schema",
12
+ "accessPolicyRef": "spec/record-model.md#7-the-owner-tier-binding",
13
+ "accessTiers": [
14
+ {
15
+ "id": "public",
16
+ "description": "Anyone with the identifier.",
17
+ "storage": "on-chain public payload"
18
+ },
19
+ {
20
+ "id": "owner",
21
+ "description": "The current holder, travelling with possession rather than with an authorisation.",
22
+ "storage": "off-chain encrypted"
23
+ },
24
+ {
25
+ "id": "legitimate",
26
+ "description": "Persons with a legitimate interest, the Batteries Regulation Article 77(2) group generalised.",
27
+ "storage": "off-chain encrypted"
28
+ },
29
+ {
30
+ "id": "authority",
31
+ "description": "Notified bodies, market surveillance and other authorities.",
32
+ "storage": "off-chain encrypted"
33
+ }
34
+ ],
35
+ "extends": null,
36
+ "id": "textile",
37
+ "version": 3,
38
+ "profile": "textile@3",
39
+ "status": "draft",
40
+ "title": "Textile passport",
41
+ "description": "The successor to textile@2 under manifest version 2, published as a draft that a deployment selects by explicit version. Every field carries a requirement status separate from the profile's own obligation: enacted for the binding labelling, consumer and waste law that names it, anticipated for every ESPR parameter until the textile delegated act is adopted, needs-review where only a recital could be cited, and none for the profile's own additions. Composition and evidence can be declared per component, assessments carry the method they were made by, a certificate is evidence with a verification result rather than a name, documents are references with an access policy, and prose fields have language-tagged companions. No universal repairability score, microfibre method or certification scheme is mandated. Every byte of textile@2 and of its generated files is unchanged; the migration outcome of every field is in succession.",
42
+ "regulatoryLine": "Mapped to the ESPR passport requirements (Reg. (EU) 2024/1781 Art. 9 and Annex III) and binding EU textile labelling law (Reg. (EU) 1007/2011), ready to absorb the textile delegated act when adopted.",
43
+ "applicability": {
44
+ "categories": [
45
+ {
46
+ "value": "apparel",
47
+ "label": "Clothing"
48
+ },
49
+ {
50
+ "value": "footwear",
51
+ "label": "Footwear"
52
+ },
53
+ {
54
+ "value": "home",
55
+ "label": "Home textile"
56
+ },
57
+ {
58
+ "value": "accessory",
59
+ "label": "Accessory"
60
+ }
61
+ ],
62
+ "categoryKey": "category",
63
+ "jurisdictions": [
64
+ "EU"
65
+ ],
66
+ "statements": [
67
+ {
68
+ "text": "Regulation (EU) 1007/2011 on textile fibre names and labelling is in force and is the source of the fibre composition and animal-origin declarations.",
69
+ "status": "enacted",
70
+ "source": "eu-1007-2011"
71
+ },
72
+ {
73
+ "text": "The ESPR delegated act for textiles has not been adopted; fields whose permitted form waits on it say so and state no list or pattern.",
74
+ "status": "anticipated",
75
+ "source": "eu-espr"
76
+ },
77
+ {
78
+ "text": "The Commission's textile and apparel product passport page, retrieved 6 September 2026, gives the textile delegated act an indicative adoption in the fourth quarter of 2027; every ESPR parameter field is anticipated until it is adopted, and its permitted form is not guessed.",
79
+ "status": "anticipated",
80
+ "source": "ec-textile-apparel-page"
81
+ },
82
+ {
83
+ "text": "This profile's alignment with the draft data requirements is under review.",
84
+ "status": "needs-review"
85
+ }
86
+ ]
87
+ },
88
+ "schemaUri": "generated/payload-schema/textile@3.public.schema.json",
89
+ "schemaDigest": "f5ef5ecff10277608d896d9ad13f17188408652f58c2130fb2b98340a9f6e09e",
90
+ "restrictedSchemaUri": "generated/payload-schema/textile@3.restricted.schema.json",
91
+ "restrictedSchemaDigest": "4352d7685bf93e62d9a773b5815086368ab97abe5f5d8887c1bc017ab5f1e164",
92
+ "contextRefs": [],
93
+ "stamps": [
94
+ {
95
+ "key": "notice",
96
+ "description": "The sample marker a demonstration record carries first; never product data.",
97
+ "valueType": "text"
98
+ },
99
+ {
100
+ "key": "profile",
101
+ "description": "The profile identifier the payload declares.",
102
+ "valueType": "id",
103
+ "const": "textile"
104
+ },
105
+ {
106
+ "key": "profile_version",
107
+ "description": "The profile version the payload declares; a reader decodes under it and never under a newer one.",
108
+ "valueType": "integer",
109
+ "const": 3
110
+ },
111
+ {
112
+ "key": "object_did",
113
+ "description": "An optional physical-object DID carried in the public payload; carrying it does not implement physical binding.",
114
+ "valueType": "id"
115
+ },
116
+ {
117
+ "key": "dataCarrier",
118
+ "description": "The data-carrier identifier (chip UID) the lookup service indexes beside the passport identifier.",
119
+ "valueType": "id"
120
+ }
121
+ ],
122
+ "fields": [
123
+ {
124
+ "key": "name",
125
+ "pointer": "/name",
126
+ "label": "Product name",
127
+ "valueType": "text",
128
+ "cardinality": "one",
129
+ "granularity": "model",
130
+ "provenance": {
131
+ "capture": "form",
132
+ "prose": true,
133
+ "onLabel": true
134
+ },
135
+ "accessTier": "public",
136
+ "obligation": "required",
137
+ "legalBasis": "ESPR Annex III(a); the passport has to say what the product is",
138
+ "applicability": {
139
+ "rule": "always"
140
+ },
141
+ "requirement": {
142
+ "status": "enacted",
143
+ "source": "eu-espr",
144
+ "clause": "Annex III(a)",
145
+ "note": "the framework is in force; the delegated act will fix the exact form"
146
+ },
147
+ "supersedes": "name",
148
+ "group": "identification",
149
+ "note": "The name the brand sells it under, written by a person for a person."
150
+ },
151
+ {
152
+ "key": "category",
153
+ "pointer": "/category",
154
+ "label": "Kind of product",
155
+ "valueType": "enum",
156
+ "codeList": {
157
+ "closed": false,
158
+ "options": [
159
+ {
160
+ "value": "apparel",
161
+ "label": "Clothing"
162
+ },
163
+ {
164
+ "value": "footwear",
165
+ "label": "Footwear"
166
+ },
167
+ {
168
+ "value": "home",
169
+ "label": "Home textile"
170
+ },
171
+ {
172
+ "value": "accessory",
173
+ "label": "Accessory"
174
+ }
175
+ ]
176
+ },
177
+ "cardinality": "one",
178
+ "granularity": "model",
179
+ "provenance": {
180
+ "capture": "form"
181
+ },
182
+ "accessTier": "public",
183
+ "obligation": "required",
184
+ "legalBasis": "ESPR Art. 4; the parameters that apply depend on what the product is",
185
+ "applicability": {
186
+ "rule": "always"
187
+ },
188
+ "requirement": {
189
+ "status": "enacted",
190
+ "source": "eu-espr",
191
+ "clause": "Article 4",
192
+ "note": "the framework is in force; the delegated act will fix the exact form"
193
+ },
194
+ "group": "identification",
195
+ "note": "Open: ESPR scope for textiles is set by the delegated act, so a closed list would be our guess wearing the regulation’s clothes."
196
+ },
197
+ {
198
+ "key": "modelIdentifier",
199
+ "pointer": "/modelIdentifier",
200
+ "label": "Model or style reference",
201
+ "valueType": "id",
202
+ "constraints": {
203
+ "maxLength": 64
204
+ },
205
+ "cardinality": "one",
206
+ "granularity": "model",
207
+ "provenance": {
208
+ "capture": "form"
209
+ },
210
+ "accessTier": "public",
211
+ "obligation": "required",
212
+ "legalBasis": "ESPR Annex III(b): the unique product identifier is model-level",
213
+ "applicability": {
214
+ "rule": "always"
215
+ },
216
+ "requirement": {
217
+ "status": "enacted",
218
+ "source": "eu-espr",
219
+ "clause": "Annex III(b)",
220
+ "note": "the framework is in force; the delegated act will fix the exact form"
221
+ },
222
+ "group": "identification"
223
+ },
224
+ {
225
+ "key": "batch",
226
+ "pointer": "/batch",
227
+ "label": "Batch",
228
+ "valueType": "id",
229
+ "constraints": {
230
+ "maxLength": 64
231
+ },
232
+ "cardinality": "one",
233
+ "granularity": "batch",
234
+ "provenance": {
235
+ "capture": "form"
236
+ },
237
+ "accessTier": "public",
238
+ "obligation": "required",
239
+ "legalBasis": "ESPR Annex III(b); Reg. 1007/2011 traceability of a labelled lot",
240
+ "applicability": {
241
+ "rule": "always"
242
+ },
243
+ "requirement": {
244
+ "status": "enacted",
245
+ "source": "eu-espr",
246
+ "clause": "Annex III(b); Regulation (EU) 1007/2011",
247
+ "note": "the framework is in force; the delegated act will fix the granularity"
248
+ },
249
+ "supersedes": "batch",
250
+ "group": "identification"
251
+ },
252
+ {
253
+ "key": "gtin",
254
+ "pointer": "/gtin",
255
+ "label": "Article number (GTIN)",
256
+ "valueType": "id",
257
+ "constraints": {
258
+ "pattern": "^\\d{8}$|^\\d{12,14}$",
259
+ "patternHint": "8, 12, 13 or 14 digits"
260
+ },
261
+ "cardinality": "one",
262
+ "granularity": "model",
263
+ "provenance": {
264
+ "capture": "form"
265
+ },
266
+ "accessTier": "public",
267
+ "obligation": "recommended",
268
+ "legalBasis": "ESPR Annex III(c): commodity and trade item codes where they exist",
269
+ "applicability": {
270
+ "rule": "always"
271
+ },
272
+ "requirement": {
273
+ "status": "anticipated",
274
+ "source": "eu-espr",
275
+ "clause": "Annex III(c)",
276
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
277
+ },
278
+ "group": "identification"
279
+ },
280
+ {
281
+ "key": "manufacturer",
282
+ "pointer": "/manufacturer",
283
+ "label": "Brand name",
284
+ "valueType": "text",
285
+ "cardinality": "one",
286
+ "granularity": "model",
287
+ "provenance": {
288
+ "capture": "brand",
289
+ "prose": true,
290
+ "onLabel": true
291
+ },
292
+ "accessTier": "public",
293
+ "obligation": "required",
294
+ "legalBasis": "ESPR Annex III(e); Reg. 1007/2011 Art. 15 identifies the responsible operator",
295
+ "applicability": {
296
+ "rule": "always"
297
+ },
298
+ "requirement": {
299
+ "status": "enacted",
300
+ "source": "eu-1007-2011",
301
+ "clause": "Article 15; ESPR Annex III(e)"
302
+ },
303
+ "supersedes": "manufacturer",
304
+ "group": "identification",
305
+ "note": "A company name; nothing to constrain it to but itself."
306
+ },
307
+ {
308
+ "key": "manufacturerContact",
309
+ "pointer": "/manufacturerContact",
310
+ "label": "Brand contact",
311
+ "valueType": "text",
312
+ "cardinality": "one",
313
+ "granularity": "model",
314
+ "provenance": {
315
+ "capture": "brand",
316
+ "prose": true
317
+ },
318
+ "accessTier": "public",
319
+ "obligation": "required",
320
+ "legalBasis": "ESPR Annex III(e): the operator has to be reachable, not merely named",
321
+ "applicability": {
322
+ "rule": "always"
323
+ },
324
+ "requirement": {
325
+ "status": "enacted",
326
+ "source": "eu-espr",
327
+ "clause": "Annex III(e)",
328
+ "note": "the framework is in force; the delegated act will fix the exact form"
329
+ },
330
+ "supersedes": "manufacturerContact",
331
+ "group": "identification",
332
+ "note": "An email, a postal address or a page. Constraining it to one shape would exclude the others."
333
+ },
334
+ {
335
+ "key": "operatorId",
336
+ "pointer": "/operatorId",
337
+ "label": "EU operator identifier",
338
+ "valueType": "id",
339
+ "cardinality": "one",
340
+ "granularity": "model",
341
+ "provenance": {
342
+ "capture": "deferred"
343
+ },
344
+ "accessTier": "public",
345
+ "obligation": "recommended",
346
+ "legalBasis": "ESPR Annex III(e)",
347
+ "applicability": {
348
+ "rule": "always"
349
+ },
350
+ "requirement": {
351
+ "status": "anticipated",
352
+ "source": "eu-espr",
353
+ "clause": "Annex III(e)",
354
+ "note": "waits on the implementing act on unique operator identifiers"
355
+ },
356
+ "awaitingAct": "the ESPR implementing act on unique operator identifiers",
357
+ "group": "identification",
358
+ "note": "Declared and not captured: the identifier scheme does not exist yet, so an empty box would invite a made-up value."
359
+ },
360
+ {
361
+ "key": "manufacturingPlace",
362
+ "pointer": "/manufacturingPlace",
363
+ "label": "Where it was made",
364
+ "valueType": "record",
365
+ "cardinality": "one",
366
+ "granularity": "model",
367
+ "provenance": {
368
+ "capture": "form"
369
+ },
370
+ "accessTier": "public",
371
+ "obligation": "required",
372
+ "legalBasis": "Reg. 1007/2011 Art. 16 read with the Union Customs Code origin rules",
373
+ "applicability": {
374
+ "rule": "always"
375
+ },
376
+ "requirement": {
377
+ "status": "enacted",
378
+ "source": "eu-1007-2011",
379
+ "clause": "Article 16, read with the Union Customs Code"
380
+ },
381
+ "supersedes": "origin",
382
+ "group": "identification",
383
+ "parts": [
384
+ {
385
+ "key": "city",
386
+ "label": "Town or city",
387
+ "valueType": "text",
388
+ "required": true
389
+ },
390
+ {
391
+ "key": "country",
392
+ "label": "Country",
393
+ "valueType": "country",
394
+ "constraints": {
395
+ "pattern": "^[A-Z]{2}$",
396
+ "patternHint": "a two-letter country code"
397
+ },
398
+ "required": true
399
+ }
400
+ ]
401
+ },
402
+ {
403
+ "key": "made",
404
+ "pointer": "/made",
405
+ "label": "Made",
406
+ "valueType": "monthYear",
407
+ "cardinality": "one",
408
+ "granularity": "batch",
409
+ "provenance": {
410
+ "capture": "form"
411
+ },
412
+ "accessTier": "public",
413
+ "obligation": "recommended",
414
+ "legalBasis": "ESPR Annex I(a): a durability claim is meaningless without a start date",
415
+ "applicability": {
416
+ "rule": "always"
417
+ },
418
+ "requirement": {
419
+ "status": "anticipated",
420
+ "source": "eu-espr",
421
+ "clause": "Annex I(a)",
422
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
423
+ },
424
+ "group": "identification",
425
+ "precision": "month"
426
+ },
427
+ {
428
+ "key": "colour",
429
+ "pointer": "/colour",
430
+ "label": "Colour",
431
+ "valueType": "text",
432
+ "constraints": {
433
+ "maxLength": 60
434
+ },
435
+ "cardinality": "one",
436
+ "granularity": "model",
437
+ "provenance": {
438
+ "capture": "form",
439
+ "prose": true
440
+ },
441
+ "accessTier": "public",
442
+ "obligation": "recommended",
443
+ "legalBasis": "Nothing requires this. It identifies the item to the person holding it.",
444
+ "applicability": {
445
+ "rule": "always"
446
+ },
447
+ "requirement": {
448
+ "status": "none",
449
+ "source": "profile addition",
450
+ "note": "nothing requires this"
451
+ },
452
+ "group": "identification",
453
+ "note": "Brands name colours, and the name is part of the product."
454
+ },
455
+ {
456
+ "key": "size",
457
+ "pointer": "/size",
458
+ "label": "Size",
459
+ "valueType": "text",
460
+ "constraints": {
461
+ "maxLength": 32
462
+ },
463
+ "cardinality": "one",
464
+ "granularity": "item",
465
+ "provenance": {
466
+ "capture": "form",
467
+ "prose": true
468
+ },
469
+ "accessTier": "public",
470
+ "obligation": "recommended",
471
+ "legalBasis": "Nothing requires this. It is what makes a passport match the garment in hand.",
472
+ "applicability": {
473
+ "rule": "always"
474
+ },
475
+ "requirement": {
476
+ "status": "none",
477
+ "source": "profile addition",
478
+ "note": "nothing requires this"
479
+ },
480
+ "group": "identification",
481
+ "note": "Size systems differ by market and by brand; a closed list would be wrong somewhere."
482
+ },
483
+ {
484
+ "key": "weight",
485
+ "pointer": "/weight",
486
+ "label": "Weight",
487
+ "valueType": "decimal",
488
+ "unit": "g",
489
+ "constraints": {
490
+ "minimum": 1,
491
+ "maximum": 50000,
492
+ "step": 1
493
+ },
494
+ "cardinality": "one",
495
+ "granularity": "model",
496
+ "provenance": {
497
+ "capture": "form"
498
+ },
499
+ "accessTier": "public",
500
+ "obligation": "recommended",
501
+ "legalBasis": "ESPR Annex I(l): resource use, and the basis of every per-mass figure below",
502
+ "applicability": {
503
+ "rule": "always"
504
+ },
505
+ "requirement": {
506
+ "status": "anticipated",
507
+ "source": "eu-espr",
508
+ "clause": "Annex I(l)",
509
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
510
+ },
511
+ "group": "identification"
512
+ },
513
+ {
514
+ "key": "fibres",
515
+ "pointer": "/fibres",
516
+ "label": "Fibre composition",
517
+ "valueType": "record",
518
+ "cardinality": "many",
519
+ "granularity": "model",
520
+ "provenance": {
521
+ "capture": "form",
522
+ "onLabel": true
523
+ },
524
+ "accessTier": "public",
525
+ "obligation": "required",
526
+ "legalBasis": "Reg. (EU) 1007/2011 Art. 5, 9 and 14: binding today, by weight, in descending order",
527
+ "applicability": {
528
+ "rule": "always"
529
+ },
530
+ "requirement": {
531
+ "status": "enacted",
532
+ "source": "eu-1007-2011",
533
+ "clause": "Articles 5, 9 and 14"
534
+ },
535
+ "supersedes": "fibres",
536
+ "group": "composition",
537
+ "parts": [
538
+ {
539
+ "key": "fibre",
540
+ "label": "Fibre",
541
+ "valueType": "enum",
542
+ "codeList": {
543
+ "closed": false,
544
+ "options": [
545
+ {
546
+ "value": "wool",
547
+ "label": "Wool"
548
+ },
549
+ {
550
+ "value": "cotton",
551
+ "label": "Cotton"
552
+ },
553
+ {
554
+ "value": "linen",
555
+ "label": "Linen (flax)"
556
+ },
557
+ {
558
+ "value": "silk",
559
+ "label": "Silk"
560
+ },
561
+ {
562
+ "value": "hemp",
563
+ "label": "Hemp"
564
+ },
565
+ {
566
+ "value": "cashmere",
567
+ "label": "Cashmere"
568
+ },
569
+ {
570
+ "value": "mohair",
571
+ "label": "Mohair"
572
+ },
573
+ {
574
+ "value": "alpaca",
575
+ "label": "Alpaca"
576
+ },
577
+ {
578
+ "value": "viscose",
579
+ "label": "Viscose"
580
+ },
581
+ {
582
+ "value": "lyocell",
583
+ "label": "Lyocell"
584
+ },
585
+ {
586
+ "value": "modal",
587
+ "label": "Modal"
588
+ },
589
+ {
590
+ "value": "cupro",
591
+ "label": "Cupro"
592
+ },
593
+ {
594
+ "value": "acetate",
595
+ "label": "Acetate"
596
+ },
597
+ {
598
+ "value": "polyester",
599
+ "label": "Polyester"
600
+ },
601
+ {
602
+ "value": "polyamide",
603
+ "label": "Polyamide (nylon)"
604
+ },
605
+ {
606
+ "value": "elastane",
607
+ "label": "Elastane"
608
+ },
609
+ {
610
+ "value": "acrylic",
611
+ "label": "Acrylic"
612
+ },
613
+ {
614
+ "value": "polypropylene",
615
+ "label": "Polypropylene"
616
+ }
617
+ ]
618
+ },
619
+ "required": true
620
+ },
621
+ {
622
+ "key": "percent",
623
+ "label": "Share by weight",
624
+ "valueType": "percent",
625
+ "unit": "%",
626
+ "constraints": {
627
+ "minimum": 0,
628
+ "maximum": 100
629
+ },
630
+ "required": true
631
+ },
632
+ {
633
+ "key": "source",
634
+ "label": "Source",
635
+ "valueType": "enum",
636
+ "codeList": {
637
+ "closed": true,
638
+ "options": [
639
+ {
640
+ "value": "preConsumer",
641
+ "label": "Pre-consumer recycled"
642
+ },
643
+ {
644
+ "value": "postConsumer",
645
+ "label": "Post-consumer recycled"
646
+ },
647
+ {
648
+ "value": "virgin",
649
+ "label": "Virgin"
650
+ }
651
+ ]
652
+ }
653
+ }
654
+ ]
655
+ },
656
+ {
657
+ "key": "nonTextileParts",
658
+ "pointer": "/nonTextileParts",
659
+ "label": "Non-textile parts of animal origin",
660
+ "valueType": "text",
661
+ "constraints": {
662
+ "maxLength": 200
663
+ },
664
+ "cardinality": "one",
665
+ "granularity": "model",
666
+ "provenance": {
667
+ "capture": "form",
668
+ "prose": true,
669
+ "onLabel": true
670
+ },
671
+ "accessTier": "public",
672
+ "obligation": "required",
673
+ "legalBasis": "Reg. (EU) 1007/2011 Art. 12: mandatory where such parts are present",
674
+ "applicability": {
675
+ "rule": "needs-review",
676
+ "condition": "the product contains non-textile parts of animal origin"
677
+ },
678
+ "requirement": {
679
+ "status": "enacted",
680
+ "source": "eu-1007-2011",
681
+ "clause": "Article 12",
682
+ "note": "mandatory where non-textile parts of animal origin are present; the applicability stays needs-review"
683
+ },
684
+ "group": "composition",
685
+ "note": "The regulation asks for a phrase, not a code: \"contains non-textile parts of animal origin\"."
686
+ },
687
+ {
688
+ "key": "recycledContent",
689
+ "pointer": "/recycledContent",
690
+ "label": "Recycled content",
691
+ "valueType": "percent",
692
+ "unit": "%",
693
+ "constraints": {
694
+ "minimum": 0,
695
+ "maximum": 100
696
+ },
697
+ "cardinality": "one",
698
+ "granularity": "model",
699
+ "provenance": {
700
+ "capture": "form"
701
+ },
702
+ "accessTier": "public",
703
+ "obligation": "recommended",
704
+ "legalBasis": "ESPR Annex I(g): recycled content is a named parameter; the threshold waits on the act",
705
+ "applicability": {
706
+ "rule": "always"
707
+ },
708
+ "requirement": {
709
+ "status": "anticipated",
710
+ "source": "eu-espr",
711
+ "clause": "Annex I(g)",
712
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
713
+ },
714
+ "supersedes": "recycled",
715
+ "group": "composition"
716
+ },
717
+ {
718
+ "key": "biobasedContent",
719
+ "pointer": "/biobasedContent",
720
+ "label": "Bio-based content",
721
+ "valueType": "percent",
722
+ "unit": "%",
723
+ "constraints": {
724
+ "minimum": 0,
725
+ "maximum": 100
726
+ },
727
+ "cardinality": "one",
728
+ "granularity": "model",
729
+ "provenance": {
730
+ "capture": "form"
731
+ },
732
+ "accessTier": "public",
733
+ "obligation": "optional",
734
+ "legalBasis": "Nothing requires this. Declared where a brand can substantiate it.",
735
+ "applicability": {
736
+ "rule": "always"
737
+ },
738
+ "requirement": {
739
+ "status": "none",
740
+ "source": "profile addition",
741
+ "note": "nothing requires this"
742
+ },
743
+ "group": "composition"
744
+ },
745
+ {
746
+ "key": "trims",
747
+ "pointer": "/trims",
748
+ "label": "Trims and hardware",
749
+ "valueType": "record",
750
+ "cardinality": "many",
751
+ "granularity": "model",
752
+ "provenance": {
753
+ "capture": "form"
754
+ },
755
+ "accessTier": "public",
756
+ "obligation": "recommended",
757
+ "legalBasis": "ESPR Annex I(d) and (n): what separates for repair, and what separates for recycling",
758
+ "applicability": {
759
+ "rule": "always"
760
+ },
761
+ "requirement": {
762
+ "status": "anticipated",
763
+ "source": "eu-espr",
764
+ "clause": "Annex I(d); Annex I(n)",
765
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
766
+ },
767
+ "group": "composition",
768
+ "parts": [
769
+ {
770
+ "key": "part",
771
+ "label": "Part",
772
+ "valueType": "text",
773
+ "required": true
774
+ },
775
+ {
776
+ "key": "material",
777
+ "label": "Material",
778
+ "valueType": "text",
779
+ "required": true
780
+ },
781
+ {
782
+ "key": "origin",
783
+ "label": "Country",
784
+ "valueType": "country",
785
+ "constraints": {
786
+ "pattern": "^[A-Z]{2}$",
787
+ "patternHint": "a two-letter country code"
788
+ }
789
+ }
790
+ ]
791
+ },
792
+ {
793
+ "key": "substancesOfConcern",
794
+ "pointer": "/substancesOfConcern",
795
+ "label": "Substances of concern",
796
+ "valueType": "record",
797
+ "cardinality": "many",
798
+ "granularity": "model",
799
+ "provenance": {
800
+ "capture": "form"
801
+ },
802
+ "accessTier": "public",
803
+ "obligation": "required",
804
+ "legalBasis": "ESPR Art. 7(5): substances of concern must be traceable through the passport",
805
+ "applicability": {
806
+ "rule": "needs-review",
807
+ "condition": "a substance of concern is present above the threshold the act will set"
808
+ },
809
+ "requirement": {
810
+ "status": "anticipated",
811
+ "source": "eu-espr",
812
+ "clause": "Article 7(5)",
813
+ "note": "the threshold the delegated act will set is not adopted; the applicability stays needs-review"
814
+ },
815
+ "supersedes": "substances",
816
+ "group": "substances",
817
+ "parts": [
818
+ {
819
+ "key": "substance",
820
+ "label": "Substance",
821
+ "valueType": "text",
822
+ "required": true
823
+ },
824
+ {
825
+ "key": "casNumber",
826
+ "label": "CAS number",
827
+ "valueType": "text",
828
+ "constraints": {
829
+ "pattern": "^\\d{2,7}-\\d{2}-\\d$",
830
+ "patternHint": "a CAS registry number, e.g. 7440-48-4"
831
+ }
832
+ },
833
+ {
834
+ "key": "concentration",
835
+ "label": "Concentration",
836
+ "valueType": "percent",
837
+ "unit": "%",
838
+ "constraints": {
839
+ "minimum": 0,
840
+ "maximum": 100
841
+ }
842
+ },
843
+ {
844
+ "key": "location",
845
+ "label": "Where in the product",
846
+ "valueType": "text"
847
+ }
848
+ ]
849
+ },
850
+ {
851
+ "key": "substanceStatement",
852
+ "pointer": "/substanceStatement",
853
+ "label": "What that means for you",
854
+ "valueType": "text",
855
+ "constraints": {
856
+ "maxLength": 400
857
+ },
858
+ "cardinality": "one",
859
+ "granularity": "model",
860
+ "provenance": {
861
+ "capture": "form",
862
+ "prose": true
863
+ },
864
+ "accessTier": "public",
865
+ "obligation": "recommended",
866
+ "legalBasis": "ESPR Art. 9(2)(b): passport information shall be complete and comprehensible",
867
+ "applicability": {
868
+ "rule": "always"
869
+ },
870
+ "requirement": {
871
+ "status": "anticipated",
872
+ "source": "eu-espr",
873
+ "clause": "Article 9(2)(b)",
874
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
875
+ },
876
+ "group": "substances",
877
+ "note": "A list of CAS numbers tells a consumer nothing. This is the sentence that does."
878
+ },
879
+ {
880
+ "key": "chemicalCompliance",
881
+ "pointer": "/chemicalCompliance",
882
+ "label": "Chemical compliance evidence",
883
+ "valueType": "document",
884
+ "cardinality": "one",
885
+ "granularity": "model",
886
+ "provenance": {
887
+ "capture": "form"
888
+ },
889
+ "accessTier": "legitimate",
890
+ "obligation": "recommended",
891
+ "legalBasis": "REACH Art. 33 read with ESPR Annex III(d): compliance documentation",
892
+ "applicability": {
893
+ "rule": "always"
894
+ },
895
+ "requirement": {
896
+ "status": "enacted",
897
+ "source": "reach-1907-2006",
898
+ "clause": "Article 33",
899
+ "note": "REACH Article 33 is in force; the ESPR Annex III(d) reading waits on the delegated act"
900
+ },
901
+ "group": "substances"
902
+ },
903
+ {
904
+ "key": "microplasticRelease",
905
+ "pointer": "/microplasticRelease",
906
+ "label": "Microplastic release",
907
+ "valueType": "text",
908
+ "cardinality": "one",
909
+ "granularity": "model",
910
+ "provenance": {
911
+ "capture": "form",
912
+ "prose": true
913
+ },
914
+ "accessTier": "public",
915
+ "obligation": "optional",
916
+ "legalBasis": "ESPR Annex I(k); the method is not yet fixed",
917
+ "applicability": {
918
+ "rule": "always"
919
+ },
920
+ "requirement": {
921
+ "status": "anticipated",
922
+ "source": "eu-espr",
923
+ "clause": "Annex I(k)",
924
+ "note": "the harmonised test method for microfibre release is not fixed"
925
+ },
926
+ "awaitingAct": "the harmonised test method for microfibre release",
927
+ "group": "substances",
928
+ "note": "No measurement method is harmonised, so a number here would be incomparable with anyone else’s."
929
+ },
930
+ {
931
+ "key": "care",
932
+ "pointer": "/care",
933
+ "label": "Care",
934
+ "valueType": "multi",
935
+ "codeList": {
936
+ "closed": true,
937
+ "options": [
938
+ {
939
+ "value": "wash30",
940
+ "label": "Machine wash at 30 °C"
941
+ },
942
+ {
943
+ "value": "wash40",
944
+ "label": "Machine wash at 40 °C"
945
+ },
946
+ {
947
+ "value": "wash60",
948
+ "label": "Machine wash at 60 °C"
949
+ },
950
+ {
951
+ "value": "handWash",
952
+ "label": "Hand wash only"
953
+ },
954
+ {
955
+ "value": "noWash",
956
+ "label": "Do not wash"
957
+ },
958
+ {
959
+ "value": "noBleach",
960
+ "label": "Do not bleach"
961
+ },
962
+ {
963
+ "value": "tumbleLow",
964
+ "label": "Tumble dry low"
965
+ },
966
+ {
967
+ "value": "noTumble",
968
+ "label": "Do not tumble dry"
969
+ },
970
+ {
971
+ "value": "ironLow",
972
+ "label": "Iron low"
973
+ },
974
+ {
975
+ "value": "ironMedium",
976
+ "label": "Iron medium"
977
+ },
978
+ {
979
+ "value": "noIron",
980
+ "label": "Do not iron"
981
+ },
982
+ {
983
+ "value": "dryClean",
984
+ "label": "Professional dry clean"
985
+ },
986
+ {
987
+ "value": "noDryClean",
988
+ "label": "Do not dry clean"
989
+ }
990
+ ]
991
+ },
992
+ "cardinality": "one",
993
+ "granularity": "model",
994
+ "provenance": {
995
+ "capture": "form",
996
+ "onLabel": true
997
+ },
998
+ "accessTier": "public",
999
+ "obligation": "required",
1000
+ "legalBasis": "ISO 3758 care symbols; Dir. (EU) 2024/825 Art. 2 on durability information",
1001
+ "applicability": {
1002
+ "rule": "always"
1003
+ },
1004
+ "requirement": {
1005
+ "status": "enacted",
1006
+ "source": "eu-2024-825",
1007
+ "clause": "Article 2; ISO 3758 care symbols"
1008
+ },
1009
+ "supersedes": "care",
1010
+ "group": "durability"
1011
+ },
1012
+ {
1013
+ "key": "careNote",
1014
+ "pointer": "/careNote",
1015
+ "label": "How to make it last",
1016
+ "valueType": "text",
1017
+ "constraints": {
1018
+ "maxLength": 400
1019
+ },
1020
+ "cardinality": "one",
1021
+ "granularity": "model",
1022
+ "provenance": {
1023
+ "capture": "form",
1024
+ "prose": true
1025
+ },
1026
+ "accessTier": "public",
1027
+ "obligation": "recommended",
1028
+ "legalBasis": "ESPR Annex I(a): extending lifetime is the parameter; this is how",
1029
+ "applicability": {
1030
+ "rule": "always"
1031
+ },
1032
+ "requirement": {
1033
+ "status": "anticipated",
1034
+ "source": "eu-espr",
1035
+ "clause": "Annex I(a)",
1036
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
1037
+ },
1038
+ "group": "durability",
1039
+ "note": "The advice a maker would give in person, which no symbol carries."
1040
+ },
1041
+ {
1042
+ "key": "expectedLifetime",
1043
+ "pointer": "/expectedLifetime",
1044
+ "label": "Expected lifetime",
1045
+ "valueType": "integer",
1046
+ "unit": "years",
1047
+ "constraints": {
1048
+ "minimum": 1,
1049
+ "maximum": 100,
1050
+ "step": 1
1051
+ },
1052
+ "cardinality": "one",
1053
+ "granularity": "model",
1054
+ "provenance": {
1055
+ "capture": "form"
1056
+ },
1057
+ "accessTier": "public",
1058
+ "obligation": "recommended",
1059
+ "legalBasis": "ESPR Annex I(a) and Dir. (EU) 2024/825: a durability claim must be substantiated",
1060
+ "applicability": {
1061
+ "rule": "always"
1062
+ },
1063
+ "requirement": {
1064
+ "status": "enacted",
1065
+ "source": "eu-2024-825",
1066
+ "clause": "Article 2",
1067
+ "note": "a durability claim under the directive states its basis; the ESPR parameter reading waits on the delegated act"
1068
+ },
1069
+ "group": "durability"
1070
+ },
1071
+ {
1072
+ "key": "washCycles",
1073
+ "pointer": "/washCycles",
1074
+ "label": "Tested to",
1075
+ "valueType": "integer",
1076
+ "unit": "wash cycles",
1077
+ "constraints": {
1078
+ "minimum": 1,
1079
+ "maximum": 1000,
1080
+ "step": 1
1081
+ },
1082
+ "cardinality": "one",
1083
+ "granularity": "model",
1084
+ "provenance": {
1085
+ "capture": "form"
1086
+ },
1087
+ "accessTier": "public",
1088
+ "obligation": "recommended",
1089
+ "legalBasis": "ESPR Annex I(b) reliability, tested per ISO 6330 domestic washing procedures",
1090
+ "applicability": {
1091
+ "rule": "always"
1092
+ },
1093
+ "requirement": {
1094
+ "status": "anticipated",
1095
+ "source": "eu-espr",
1096
+ "clause": "Annex I(b)",
1097
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
1098
+ },
1099
+ "group": "durability"
1100
+ },
1101
+ {
1102
+ "key": "colourFastness",
1103
+ "pointer": "/colourFastness",
1104
+ "label": "Colour fastness",
1105
+ "valueType": "decimal",
1106
+ "unit": "grade",
1107
+ "constraints": {
1108
+ "minimum": 1,
1109
+ "maximum": 5,
1110
+ "step": 0.5
1111
+ },
1112
+ "cardinality": "one",
1113
+ "granularity": "model",
1114
+ "provenance": {
1115
+ "capture": "form"
1116
+ },
1117
+ "accessTier": "public",
1118
+ "obligation": "recommended",
1119
+ "legalBasis": "ESPR Annex I(b), graded 1-5 per the ISO 105 series",
1120
+ "applicability": {
1121
+ "rule": "always"
1122
+ },
1123
+ "requirement": {
1124
+ "status": "anticipated",
1125
+ "source": "eu-espr",
1126
+ "clause": "Annex I(b)",
1127
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
1128
+ },
1129
+ "group": "durability"
1130
+ },
1131
+ {
1132
+ "key": "dimensionalStability",
1133
+ "pointer": "/dimensionalStability",
1134
+ "label": "Dimensional change after washing",
1135
+ "valueType": "decimal",
1136
+ "unit": "%",
1137
+ "constraints": {
1138
+ "minimum": -20,
1139
+ "maximum": 20,
1140
+ "step": 0.5
1141
+ },
1142
+ "cardinality": "one",
1143
+ "granularity": "model",
1144
+ "provenance": {
1145
+ "capture": "form"
1146
+ },
1147
+ "accessTier": "public",
1148
+ "obligation": "recommended",
1149
+ "legalBasis": "ESPR Annex I(b), measured per ISO 5077",
1150
+ "applicability": {
1151
+ "rule": "always"
1152
+ },
1153
+ "requirement": {
1154
+ "status": "anticipated",
1155
+ "source": "eu-espr",
1156
+ "clause": "Annex I(b)",
1157
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
1158
+ },
1159
+ "group": "durability"
1160
+ },
1161
+ {
1162
+ "key": "pillingResistance",
1163
+ "pointer": "/pillingResistance",
1164
+ "label": "Pilling resistance",
1165
+ "valueType": "decimal",
1166
+ "unit": "grade",
1167
+ "constraints": {
1168
+ "minimum": 1,
1169
+ "maximum": 5,
1170
+ "step": 0.5
1171
+ },
1172
+ "cardinality": "one",
1173
+ "granularity": "model",
1174
+ "provenance": {
1175
+ "capture": "form"
1176
+ },
1177
+ "accessTier": "public",
1178
+ "obligation": "recommended",
1179
+ "legalBasis": "ESPR Annex I(b), graded 1-5 per ISO 12945",
1180
+ "applicability": {
1181
+ "rule": "always"
1182
+ },
1183
+ "requirement": {
1184
+ "status": "anticipated",
1185
+ "source": "eu-espr",
1186
+ "clause": "Annex I(b)",
1187
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
1188
+ },
1189
+ "group": "durability"
1190
+ },
1191
+ {
1192
+ "key": "guarantee",
1193
+ "pointer": "/guarantee",
1194
+ "label": "Guarantee",
1195
+ "valueType": "integer",
1196
+ "unit": "months",
1197
+ "constraints": {
1198
+ "minimum": 0,
1199
+ "maximum": 600,
1200
+ "step": 1
1201
+ },
1202
+ "cardinality": "one",
1203
+ "granularity": "model",
1204
+ "provenance": {
1205
+ "capture": "form"
1206
+ },
1207
+ "accessTier": "public",
1208
+ "obligation": "recommended",
1209
+ "legalBasis": "Dir. (EU) 2024/825: a commercial guarantee of durability must state its term",
1210
+ "applicability": {
1211
+ "rule": "always"
1212
+ },
1213
+ "requirement": {
1214
+ "status": "enacted",
1215
+ "source": "eu-2024-825",
1216
+ "clause": "Article 2"
1217
+ },
1218
+ "supersedes": "warranty",
1219
+ "group": "durability"
1220
+ },
1221
+ {
1222
+ "key": "repairability",
1223
+ "pointer": "/repairability",
1224
+ "label": "Repairability",
1225
+ "valueType": "text",
1226
+ "constraints": {
1227
+ "maxLength": 300
1228
+ },
1229
+ "cardinality": "one",
1230
+ "granularity": "model",
1231
+ "provenance": {
1232
+ "capture": "form",
1233
+ "prose": true
1234
+ },
1235
+ "accessTier": "public",
1236
+ "obligation": "recommended",
1237
+ "legalBasis": "ESPR Annex I(c) and Art. 7(2)(b)(iii)",
1238
+ "applicability": {
1239
+ "rule": "always"
1240
+ },
1241
+ "requirement": {
1242
+ "status": "anticipated",
1243
+ "source": "eu-espr",
1244
+ "clause": "Annex I(c); Article 7(2)(b)(iii)",
1245
+ "note": "waits on the delegated act on repairability scoring for textiles; no score is mandated"
1246
+ },
1247
+ "awaitingAct": "the ESPR delegated act on repairability scoring for textiles",
1248
+ "group": "repair",
1249
+ "note": "The scoring class is not fixed, so a letter or a number here would be invented."
1250
+ },
1251
+ {
1252
+ "key": "spareParts",
1253
+ "pointer": "/spareParts",
1254
+ "label": "Spare parts",
1255
+ "valueType": "text",
1256
+ "constraints": {
1257
+ "maxLength": 300
1258
+ },
1259
+ "cardinality": "one",
1260
+ "granularity": "model",
1261
+ "provenance": {
1262
+ "capture": "form",
1263
+ "prose": true
1264
+ },
1265
+ "accessTier": "public",
1266
+ "obligation": "recommended",
1267
+ "legalBasis": "ESPR Annex I(d): availability of spare parts is a named parameter",
1268
+ "applicability": {
1269
+ "rule": "always"
1270
+ },
1271
+ "requirement": {
1272
+ "status": "anticipated",
1273
+ "source": "eu-espr",
1274
+ "clause": "Annex I(d)",
1275
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
1276
+ },
1277
+ "group": "repair",
1278
+ "note": "Which parts, and for how long. A yes/no would hide the part that matters."
1279
+ },
1280
+ {
1281
+ "key": "repairInstructions",
1282
+ "pointer": "/repairInstructions",
1283
+ "label": "Repair instructions",
1284
+ "valueType": "document",
1285
+ "cardinality": "one",
1286
+ "granularity": "model",
1287
+ "provenance": {
1288
+ "capture": "form"
1289
+ },
1290
+ "accessTier": "public",
1291
+ "obligation": "recommended",
1292
+ "legalBasis": "ESPR Annex I(e): access to repair information",
1293
+ "applicability": {
1294
+ "rule": "always"
1295
+ },
1296
+ "requirement": {
1297
+ "status": "anticipated",
1298
+ "source": "eu-espr",
1299
+ "clause": "Annex I(e)",
1300
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
1301
+ },
1302
+ "group": "repair"
1303
+ },
1304
+ {
1305
+ "key": "repairServices",
1306
+ "pointer": "/repairServices",
1307
+ "label": "Where to get it repaired",
1308
+ "valueType": "url",
1309
+ "cardinality": "one",
1310
+ "granularity": "model",
1311
+ "provenance": {
1312
+ "capture": "form"
1313
+ },
1314
+ "accessTier": "public",
1315
+ "obligation": "recommended",
1316
+ "legalBasis": "Dir. (EU) 2024/825 recital 22: repair should be the visible option",
1317
+ "applicability": {
1318
+ "rule": "always"
1319
+ },
1320
+ "requirement": {
1321
+ "status": "needs-review",
1322
+ "source": "eu-2024-825",
1323
+ "clause": "recital 22",
1324
+ "note": "the basis is a recital, not an article; no article confirmed"
1325
+ },
1326
+ "group": "repair"
1327
+ },
1328
+ {
1329
+ "key": "carbonFootprint",
1330
+ "pointer": "/carbonFootprint",
1331
+ "label": "Carbon footprint",
1332
+ "valueType": "decimal",
1333
+ "unit": "kg CO₂e",
1334
+ "constraints": {
1335
+ "minimum": 0,
1336
+ "maximum": 10000,
1337
+ "step": 0.01
1338
+ },
1339
+ "cardinality": "one",
1340
+ "granularity": "model",
1341
+ "provenance": {
1342
+ "capture": "form"
1343
+ },
1344
+ "accessTier": "public",
1345
+ "obligation": "recommended",
1346
+ "legalBasis": "ESPR Annex I(m), computed per the Apparel and Footwear PEFCR",
1347
+ "applicability": {
1348
+ "rule": "always"
1349
+ },
1350
+ "requirement": {
1351
+ "status": "anticipated",
1352
+ "source": "eu-espr",
1353
+ "clause": "Annex I(m)",
1354
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
1355
+ },
1356
+ "group": "footprint"
1357
+ },
1358
+ {
1359
+ "key": "carbonFootprintStudy",
1360
+ "pointer": "/carbonFootprintStudy",
1361
+ "label": "The study behind the figure",
1362
+ "valueType": "document",
1363
+ "cardinality": "one",
1364
+ "granularity": "model",
1365
+ "provenance": {
1366
+ "capture": "form"
1367
+ },
1368
+ "accessTier": "public",
1369
+ "obligation": "recommended",
1370
+ "legalBasis": "ESPR Art. 9(2)(b): a figure a reader cannot check is not information",
1371
+ "applicability": {
1372
+ "rule": "always"
1373
+ },
1374
+ "requirement": {
1375
+ "status": "anticipated",
1376
+ "source": "eu-espr",
1377
+ "clause": "Article 9(2)(b)",
1378
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
1379
+ },
1380
+ "group": "footprint"
1381
+ },
1382
+ {
1383
+ "key": "footprintClass",
1384
+ "pointer": "/footprintClass",
1385
+ "label": "Environmental footprint class",
1386
+ "valueType": "text",
1387
+ "constraints": {
1388
+ "maxLength": 80
1389
+ },
1390
+ "cardinality": "one",
1391
+ "granularity": "model",
1392
+ "provenance": {
1393
+ "capture": "deferred",
1394
+ "prose": true
1395
+ },
1396
+ "accessTier": "public",
1397
+ "obligation": "recommended",
1398
+ "legalBasis": "ESPR Art. 7(4)",
1399
+ "applicability": {
1400
+ "rule": "always"
1401
+ },
1402
+ "requirement": {
1403
+ "status": "anticipated",
1404
+ "source": "eu-espr",
1405
+ "clause": "Article 7(4)",
1406
+ "note": "waits on the delegated act setting performance classes for textiles"
1407
+ },
1408
+ "awaitingAct": "the ESPR delegated act setting performance classes for textiles",
1409
+ "group": "footprint",
1410
+ "note": "The class format is not set. Naming one would publish our guess as a grade."
1411
+ },
1412
+ {
1413
+ "key": "waterUse",
1414
+ "pointer": "/waterUse",
1415
+ "label": "Water use",
1416
+ "valueType": "decimal",
1417
+ "unit": "m³",
1418
+ "constraints": {
1419
+ "minimum": 0,
1420
+ "maximum": 100000,
1421
+ "step": 0.1
1422
+ },
1423
+ "cardinality": "one",
1424
+ "granularity": "model",
1425
+ "provenance": {
1426
+ "capture": "form"
1427
+ },
1428
+ "accessTier": "public",
1429
+ "obligation": "optional",
1430
+ "legalBasis": "ESPR Annex I(l): resource use. Declared where a brand has measured it.",
1431
+ "applicability": {
1432
+ "rule": "always"
1433
+ },
1434
+ "requirement": {
1435
+ "status": "anticipated",
1436
+ "source": "eu-espr",
1437
+ "clause": "Annex I(l)",
1438
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
1439
+ },
1440
+ "group": "footprint"
1441
+ },
1442
+ {
1443
+ "key": "collection",
1444
+ "pointer": "/collection",
1445
+ "label": "Where to return it",
1446
+ "valueType": "text",
1447
+ "constraints": {
1448
+ "maxLength": 400
1449
+ },
1450
+ "cardinality": "one",
1451
+ "granularity": "model",
1452
+ "provenance": {
1453
+ "capture": "form",
1454
+ "prose": true
1455
+ },
1456
+ "accessTier": "public",
1457
+ "obligation": "required",
1458
+ "legalBasis": "Waste Framework Directive: separate collection of textiles since 1 January 2025",
1459
+ "applicability": {
1460
+ "rule": "always"
1461
+ },
1462
+ "requirement": {
1463
+ "status": "enacted",
1464
+ "source": "eu-2008-98",
1465
+ "clause": "Article 11(1) as amended: separate collection of textiles"
1466
+ },
1467
+ "supersedes": "endOfLife",
1468
+ "group": "endOfLife",
1469
+ "note": "A place and a method, in the words the person returning it will use."
1470
+ },
1471
+ {
1472
+ "key": "recyclability",
1473
+ "pointer": "/recyclability",
1474
+ "label": "How it can be recycled",
1475
+ "valueType": "text",
1476
+ "constraints": {
1477
+ "maxLength": 400
1478
+ },
1479
+ "cardinality": "one",
1480
+ "granularity": "model",
1481
+ "provenance": {
1482
+ "capture": "form",
1483
+ "prose": true
1484
+ },
1485
+ "accessTier": "public",
1486
+ "obligation": "recommended",
1487
+ "legalBasis": "ESPR Annex I(n): expected generation of waste materials",
1488
+ "applicability": {
1489
+ "rule": "always"
1490
+ },
1491
+ "requirement": {
1492
+ "status": "anticipated",
1493
+ "source": "eu-espr",
1494
+ "clause": "Annex I(n)",
1495
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
1496
+ },
1497
+ "group": "endOfLife",
1498
+ "note": "What a recycler can actually do with it, which no percentage conveys."
1499
+ },
1500
+ {
1501
+ "key": "separability",
1502
+ "pointer": "/separability",
1503
+ "label": "What comes apart",
1504
+ "valueType": "text",
1505
+ "constraints": {
1506
+ "maxLength": 300
1507
+ },
1508
+ "cardinality": "one",
1509
+ "granularity": "model",
1510
+ "provenance": {
1511
+ "capture": "form",
1512
+ "prose": true
1513
+ },
1514
+ "accessTier": "legitimate",
1515
+ "obligation": "recommended",
1516
+ "legalBasis": "ESPR Annex I(h) and (i): ease of disassembly, for reuse and recycling",
1517
+ "applicability": {
1518
+ "rule": "always"
1519
+ },
1520
+ "requirement": {
1521
+ "status": "anticipated",
1522
+ "source": "eu-espr",
1523
+ "clause": "Annex I(h); Annex I(i)",
1524
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
1525
+ },
1526
+ "group": "endOfLife",
1527
+ "note": "Which components separate, and how. The sentence a dismantler needs."
1528
+ },
1529
+ {
1530
+ "key": "eprRegistration",
1531
+ "pointer": "/eprRegistration",
1532
+ "label": "Producer responsibility registration",
1533
+ "valueType": "id",
1534
+ "constraints": {
1535
+ "maxLength": 64
1536
+ },
1537
+ "cardinality": "one",
1538
+ "granularity": "model",
1539
+ "provenance": {
1540
+ "capture": "brand"
1541
+ },
1542
+ "accessTier": "authority",
1543
+ "obligation": "recommended",
1544
+ "legalBasis": "Waste Framework Directive textile EPR: the producer register number",
1545
+ "applicability": {
1546
+ "rule": "always"
1547
+ },
1548
+ "requirement": {
1549
+ "status": "anticipated",
1550
+ "source": "eu-2008-98",
1551
+ "clause": "textile extended producer responsibility as amended",
1552
+ "note": "the amending directive is in force and the producer registration obligations apply from the dates it sets; no application date is recorded here"
1553
+ },
1554
+ "group": "endOfLife"
1555
+ },
1556
+ {
1557
+ "key": "supplyChain",
1558
+ "pointer": "/supplyChain",
1559
+ "label": "Supply chain",
1560
+ "valueType": "record",
1561
+ "cardinality": "many",
1562
+ "granularity": "model",
1563
+ "provenance": {
1564
+ "capture": "form"
1565
+ },
1566
+ "accessTier": "public",
1567
+ "obligation": "recommended",
1568
+ "legalBasis": "ESPR Annex III(f): unique facility identifiers, at the stages that have them",
1569
+ "applicability": {
1570
+ "rule": "always"
1571
+ },
1572
+ "requirement": {
1573
+ "status": "anticipated",
1574
+ "source": "eu-espr",
1575
+ "clause": "Annex III(f)",
1576
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
1577
+ },
1578
+ "group": "supply",
1579
+ "parts": [
1580
+ {
1581
+ "key": "stage",
1582
+ "label": "Stage",
1583
+ "valueType": "enum",
1584
+ "codeList": {
1585
+ "closed": true,
1586
+ "options": [
1587
+ {
1588
+ "value": "fibre",
1589
+ "label": "Fibre production"
1590
+ },
1591
+ {
1592
+ "value": "spinning",
1593
+ "label": "Spinning"
1594
+ },
1595
+ {
1596
+ "value": "weaving",
1597
+ "label": "Weaving or knitting"
1598
+ },
1599
+ {
1600
+ "value": "dyeing",
1601
+ "label": "Dyeing and finishing"
1602
+ },
1603
+ {
1604
+ "value": "assembly",
1605
+ "label": "Cutting and assembly"
1606
+ }
1607
+ ]
1608
+ },
1609
+ "required": true
1610
+ },
1611
+ {
1612
+ "key": "country",
1613
+ "label": "Country",
1614
+ "valueType": "country",
1615
+ "constraints": {
1616
+ "pattern": "^[A-Z]{2}$",
1617
+ "patternHint": "a two-letter country code"
1618
+ },
1619
+ "required": true
1620
+ },
1621
+ {
1622
+ "key": "facility",
1623
+ "label": "Facility",
1624
+ "valueType": "text"
1625
+ }
1626
+ ]
1627
+ },
1628
+ {
1629
+ "key": "certifications",
1630
+ "pointer": "/certifications",
1631
+ "label": "Independent certification",
1632
+ "valueType": "multi",
1633
+ "codeList": {
1634
+ "closed": false,
1635
+ "options": [
1636
+ {
1637
+ "value": "gots",
1638
+ "label": "GOTS"
1639
+ },
1640
+ {
1641
+ "value": "oekoTex100",
1642
+ "label": "OEKO-TEX Standard 100"
1643
+ },
1644
+ {
1645
+ "value": "grs",
1646
+ "label": "Global Recycled Standard"
1647
+ },
1648
+ {
1649
+ "value": "rws",
1650
+ "label": "Responsible Wool Standard"
1651
+ },
1652
+ {
1653
+ "value": "euEcolabel",
1654
+ "label": "EU Ecolabel"
1655
+ },
1656
+ {
1657
+ "value": "cradleToCradle",
1658
+ "label": "Cradle to Cradle"
1659
+ },
1660
+ {
1661
+ "value": "bluesign",
1662
+ "label": "bluesign"
1663
+ }
1664
+ ]
1665
+ },
1666
+ "cardinality": "one",
1667
+ "granularity": "model",
1668
+ "provenance": {
1669
+ "capture": "form"
1670
+ },
1671
+ "accessTier": "public",
1672
+ "obligation": "recommended",
1673
+ "legalBasis": "Dir. (EU) 2024/825 Art. 2: a sustainability label needs a certification behind it",
1674
+ "applicability": {
1675
+ "rule": "always"
1676
+ },
1677
+ "requirement": {
1678
+ "status": "enacted",
1679
+ "source": "eu-2024-825",
1680
+ "clause": "Article 2"
1681
+ },
1682
+ "group": "supply",
1683
+ "note": "Open: a closed list of schemes would read as an endorsement of exactly those."
1684
+ },
1685
+ {
1686
+ "key": "dueDiligence",
1687
+ "pointer": "/dueDiligence",
1688
+ "label": "Due diligence report",
1689
+ "valueType": "document",
1690
+ "cardinality": "one",
1691
+ "granularity": "model",
1692
+ "provenance": {
1693
+ "capture": "form"
1694
+ },
1695
+ "accessTier": "legitimate",
1696
+ "obligation": "recommended",
1697
+ "legalBasis": "Dir. (EU) 2024/1760 corporate sustainability due diligence, where in scope",
1698
+ "applicability": {
1699
+ "rule": "always"
1700
+ },
1701
+ "requirement": {
1702
+ "status": "anticipated",
1703
+ "source": "eu-2024-1760",
1704
+ "clause": "Directive (EU) 2024/1760",
1705
+ "note": "in force with deferred application dates; not recorded here as settled"
1706
+ },
1707
+ "group": "supply"
1708
+ },
1709
+ {
1710
+ "key": "provenance",
1711
+ "pointer": "/provenance",
1712
+ "label": "Provenance",
1713
+ "valueType": "text",
1714
+ "constraints": {
1715
+ "maxLength": 600
1716
+ },
1717
+ "cardinality": "one",
1718
+ "granularity": "item",
1719
+ "provenance": {
1720
+ "capture": "form",
1721
+ "prose": true
1722
+ },
1723
+ "accessTier": "owner",
1724
+ "obligation": "optional",
1725
+ "legalBasis": "Nothing requires this. It is the owner tier the selective-disclosure demo turns on.",
1726
+ "applicability": {
1727
+ "rule": "always"
1728
+ },
1729
+ "requirement": {
1730
+ "status": "none",
1731
+ "source": "profile addition",
1732
+ "note": "nothing requires this; the owner tier"
1733
+ },
1734
+ "supersedes": "provenance",
1735
+ "group": "owner",
1736
+ "note": "The story of this particular item, which is prose by definition."
1737
+ },
1738
+ {
1739
+ "key": "purchase",
1740
+ "pointer": "/purchase",
1741
+ "label": "Purchased",
1742
+ "valueType": "text",
1743
+ "constraints": {
1744
+ "maxLength": 200
1745
+ },
1746
+ "cardinality": "one",
1747
+ "granularity": "item",
1748
+ "provenance": {
1749
+ "capture": "event",
1750
+ "dynamic": true,
1751
+ "prose": true
1752
+ },
1753
+ "accessTier": "owner",
1754
+ "obligation": "optional",
1755
+ "legalBasis": "Nothing requires this. It is what makes the record theirs.",
1756
+ "applicability": {
1757
+ "rule": "always"
1758
+ },
1759
+ "requirement": {
1760
+ "status": "none",
1761
+ "source": "profile addition",
1762
+ "note": "nothing requires this; the owner tier"
1763
+ },
1764
+ "group": "owner",
1765
+ "note": "Where and when, as the owner would write it."
1766
+ },
1767
+ {
1768
+ "key": "personalisation",
1769
+ "pointer": "/personalisation",
1770
+ "label": "Alterations and fit",
1771
+ "valueType": "text",
1772
+ "constraints": {
1773
+ "maxLength": 300
1774
+ },
1775
+ "cardinality": "one",
1776
+ "granularity": "item",
1777
+ "provenance": {
1778
+ "capture": "event",
1779
+ "dynamic": true,
1780
+ "prose": true
1781
+ },
1782
+ "accessTier": "owner",
1783
+ "obligation": "optional",
1784
+ "legalBasis": "Nothing requires this. An altered garment is a different garment to its owner.",
1785
+ "applicability": {
1786
+ "rule": "always"
1787
+ },
1788
+ "requirement": {
1789
+ "status": "none",
1790
+ "source": "profile addition",
1791
+ "note": "nothing requires this; the owner tier"
1792
+ },
1793
+ "supersedes": "personalisation",
1794
+ "group": "owner",
1795
+ "note": "Sleeve lengths and hems, in the tailor’s words."
1796
+ },
1797
+ {
1798
+ "key": "warrantyRegistration",
1799
+ "pointer": "/warrantyRegistration",
1800
+ "label": "Guarantee registration",
1801
+ "valueType": "id",
1802
+ "constraints": {
1803
+ "maxLength": 64
1804
+ },
1805
+ "cardinality": "one",
1806
+ "granularity": "item",
1807
+ "provenance": {
1808
+ "capture": "form"
1809
+ },
1810
+ "accessTier": "owner",
1811
+ "obligation": "optional",
1812
+ "legalBasis": "Nothing requires this. It saves the owner keeping a receipt.",
1813
+ "applicability": {
1814
+ "rule": "always"
1815
+ },
1816
+ "requirement": {
1817
+ "status": "none",
1818
+ "source": "profile addition",
1819
+ "note": "nothing requires this; the owner tier"
1820
+ },
1821
+ "group": "owner"
1822
+ },
1823
+ {
1824
+ "key": "components",
1825
+ "pointer": "/components",
1826
+ "label": "Components",
1827
+ "valueType": "record",
1828
+ "cardinality": "many",
1829
+ "granularity": "model",
1830
+ "provenance": {
1831
+ "capture": "form"
1832
+ },
1833
+ "accessTier": "public",
1834
+ "obligation": "recommended",
1835
+ "legalBasis": "ESPR Annex III and Annex I: composition and evidence at the level of the component the delegated act may name",
1836
+ "applicability": {
1837
+ "rule": "always"
1838
+ },
1839
+ "requirement": {
1840
+ "status": "anticipated",
1841
+ "source": "eu-espr",
1842
+ "clause": "Annex III; Annex I",
1843
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
1844
+ },
1845
+ "group": "composition",
1846
+ "parts": [
1847
+ {
1848
+ "key": "component",
1849
+ "label": "Component",
1850
+ "valueType": "text",
1851
+ "required": true
1852
+ },
1853
+ {
1854
+ "key": "role",
1855
+ "label": "Role",
1856
+ "valueType": "enum",
1857
+ "codeList": {
1858
+ "closed": false,
1859
+ "options": [
1860
+ {
1861
+ "value": "shell",
1862
+ "label": "Shell"
1863
+ },
1864
+ {
1865
+ "value": "lining",
1866
+ "label": "Lining"
1867
+ },
1868
+ {
1869
+ "value": "insulation",
1870
+ "label": "Insulation or padding"
1871
+ },
1872
+ {
1873
+ "value": "trim",
1874
+ "label": "Trim"
1875
+ },
1876
+ {
1877
+ "value": "fastening",
1878
+ "label": "Fastening"
1879
+ },
1880
+ {
1881
+ "value": "label",
1882
+ "label": "Label"
1883
+ },
1884
+ {
1885
+ "value": "other",
1886
+ "label": "Other"
1887
+ }
1888
+ ]
1889
+ }
1890
+ },
1891
+ {
1892
+ "key": "massShare",
1893
+ "label": "Share of product mass",
1894
+ "valueType": "percent",
1895
+ "unit": "%",
1896
+ "constraints": {
1897
+ "minimum": 0,
1898
+ "maximum": 100
1899
+ }
1900
+ }
1901
+ ],
1902
+ "scope": "component",
1903
+ "componentScoped": true,
1904
+ "note": "One entry per component of the product, named once here and referenced by componentFibres, substancesOfConcern.location and certificationEvidence.subject.componentRef."
1905
+ },
1906
+ {
1907
+ "key": "componentFibres",
1908
+ "pointer": "/componentFibres",
1909
+ "label": "Fibre composition per component",
1910
+ "valueType": "record",
1911
+ "cardinality": "many",
1912
+ "granularity": "model",
1913
+ "provenance": {
1914
+ "capture": "form"
1915
+ },
1916
+ "accessTier": "public",
1917
+ "obligation": "recommended",
1918
+ "legalBasis": "Regulation (EU) 1007/2011 Articles 5, 9 and 14 read per component; ESPR Annex I",
1919
+ "applicability": {
1920
+ "rule": "always"
1921
+ },
1922
+ "requirement": {
1923
+ "status": "anticipated",
1924
+ "source": "eu-espr",
1925
+ "clause": "Annex I",
1926
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027; the whole-product composition under fibres stays the binding labelling declaration"
1927
+ },
1928
+ "group": "composition",
1929
+ "parts": [
1930
+ {
1931
+ "key": "component",
1932
+ "label": "Component",
1933
+ "valueType": "text",
1934
+ "required": true
1935
+ },
1936
+ {
1937
+ "key": "fibre",
1938
+ "label": "Fibre",
1939
+ "valueType": "enum",
1940
+ "codeList": {
1941
+ "closed": false,
1942
+ "options": [
1943
+ {
1944
+ "value": "wool",
1945
+ "label": "Wool"
1946
+ },
1947
+ {
1948
+ "value": "cotton",
1949
+ "label": "Cotton"
1950
+ },
1951
+ {
1952
+ "value": "linen",
1953
+ "label": "Linen (flax)"
1954
+ },
1955
+ {
1956
+ "value": "silk",
1957
+ "label": "Silk"
1958
+ },
1959
+ {
1960
+ "value": "hemp",
1961
+ "label": "Hemp"
1962
+ },
1963
+ {
1964
+ "value": "cashmere",
1965
+ "label": "Cashmere"
1966
+ },
1967
+ {
1968
+ "value": "mohair",
1969
+ "label": "Mohair"
1970
+ },
1971
+ {
1972
+ "value": "alpaca",
1973
+ "label": "Alpaca"
1974
+ },
1975
+ {
1976
+ "value": "viscose",
1977
+ "label": "Viscose"
1978
+ },
1979
+ {
1980
+ "value": "lyocell",
1981
+ "label": "Lyocell"
1982
+ },
1983
+ {
1984
+ "value": "modal",
1985
+ "label": "Modal"
1986
+ },
1987
+ {
1988
+ "value": "cupro",
1989
+ "label": "Cupro"
1990
+ },
1991
+ {
1992
+ "value": "acetate",
1993
+ "label": "Acetate"
1994
+ },
1995
+ {
1996
+ "value": "polyester",
1997
+ "label": "Polyester"
1998
+ },
1999
+ {
2000
+ "value": "polyamide",
2001
+ "label": "Polyamide (nylon)"
2002
+ },
2003
+ {
2004
+ "value": "elastane",
2005
+ "label": "Elastane"
2006
+ },
2007
+ {
2008
+ "value": "acrylic",
2009
+ "label": "Acrylic"
2010
+ },
2011
+ {
2012
+ "value": "polypropylene",
2013
+ "label": "Polypropylene"
2014
+ }
2015
+ ]
2016
+ },
2017
+ "required": true
2018
+ },
2019
+ {
2020
+ "key": "percent",
2021
+ "label": "Share by weight of the component",
2022
+ "valueType": "percent",
2023
+ "unit": "%",
2024
+ "constraints": {
2025
+ "minimum": 0,
2026
+ "maximum": 100
2027
+ },
2028
+ "required": true
2029
+ },
2030
+ {
2031
+ "key": "source",
2032
+ "label": "Source",
2033
+ "valueType": "enum",
2034
+ "codeList": {
2035
+ "closed": true,
2036
+ "options": [
2037
+ {
2038
+ "value": "preConsumer",
2039
+ "label": "Pre-consumer recycled"
2040
+ },
2041
+ {
2042
+ "value": "postConsumer",
2043
+ "label": "Post-consumer recycled"
2044
+ },
2045
+ {
2046
+ "value": "virgin",
2047
+ "label": "Virgin"
2048
+ }
2049
+ ]
2050
+ }
2051
+ }
2052
+ ],
2053
+ "scope": "component",
2054
+ "componentScoped": true
2055
+ },
2056
+ {
2057
+ "key": "recycledContentAssessment",
2058
+ "pointer": "/recycledContentAssessment",
2059
+ "label": "Recycled content, assessed",
2060
+ "valueType": "measurement",
2061
+ "unit": "%",
2062
+ "cardinality": "one",
2063
+ "granularity": "model",
2064
+ "provenance": {
2065
+ "capture": "form"
2066
+ },
2067
+ "accessTier": "public",
2068
+ "obligation": "optional",
2069
+ "legalBasis": "ESPR Annex I(g): recycled content with its method, basis and boundary",
2070
+ "applicability": {
2071
+ "rule": "always"
2072
+ },
2073
+ "requirement": {
2074
+ "status": "anticipated",
2075
+ "source": "eu-espr",
2076
+ "clause": "Annex I(g)",
2077
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
2078
+ },
2079
+ "group": "composition",
2080
+ "note": "The measurement shape keeps a physical recycled share apart from a mass-balance claim through its basis and method; recycledContent stays the declared scalar."
2081
+ },
2082
+ {
2083
+ "key": "certificationEvidence",
2084
+ "pointer": "/certificationEvidence",
2085
+ "label": "Certification evidence",
2086
+ "valueType": "certification",
2087
+ "cardinality": "many",
2088
+ "granularity": "model",
2089
+ "provenance": {
2090
+ "capture": "form"
2091
+ },
2092
+ "accessTier": "public",
2093
+ "obligation": "optional",
2094
+ "legalBasis": "Dir. (EU) 2024/825 Art. 2: the certification behind a sustainability label, as evidence",
2095
+ "applicability": {
2096
+ "rule": "always"
2097
+ },
2098
+ "requirement": {
2099
+ "status": "enacted",
2100
+ "source": "eu-2024-825",
2101
+ "clause": "Article 2",
2102
+ "note": "the evidence behind a scheme named under certifications; a scheme homepage or an issuer signature alone proves nothing, only verification.status says what was established"
2103
+ },
2104
+ "group": "supply"
2105
+ },
2106
+ {
2107
+ "key": "relatedDocuments",
2108
+ "pointer": "/relatedDocuments",
2109
+ "label": "Related documents",
2110
+ "valueType": "relatedDocument",
2111
+ "cardinality": "many",
2112
+ "granularity": "model",
2113
+ "provenance": {
2114
+ "capture": "form"
2115
+ },
2116
+ "accessTier": "public",
2117
+ "obligation": "optional",
2118
+ "legalBasis": "none: documents a value points at, with their access policy and, where retained, their digest",
2119
+ "applicability": {
2120
+ "rule": "always"
2121
+ },
2122
+ "requirement": {
2123
+ "status": "none",
2124
+ "source": "profile addition",
2125
+ "note": "a document reference is a pointer, not a commitment to content, unless the bytes were retained"
2126
+ },
2127
+ "group": "identification"
2128
+ },
2129
+ {
2130
+ "key": "microfibreReleaseAssessment",
2131
+ "pointer": "/microfibreReleaseAssessment",
2132
+ "label": "Microfibre release, assessed",
2133
+ "valueType": "measurement",
2134
+ "cardinality": "one",
2135
+ "granularity": "model",
2136
+ "provenance": {
2137
+ "capture": "form"
2138
+ },
2139
+ "accessTier": "public",
2140
+ "obligation": "optional",
2141
+ "legalBasis": "ESPR Annex I(k): microplastic and microfibre release, by a named method",
2142
+ "applicability": {
2143
+ "rule": "always"
2144
+ },
2145
+ "requirement": {
2146
+ "status": "anticipated",
2147
+ "source": "eu-espr",
2148
+ "clause": "Annex I(k)",
2149
+ "note": "no harmonised method is fixed; the measurement names the method it was made by and claims no more"
2150
+ },
2151
+ "group": "substances"
2152
+ },
2153
+ {
2154
+ "key": "repairabilityAssessment",
2155
+ "pointer": "/repairabilityAssessment",
2156
+ "label": "Repairability, assessed",
2157
+ "valueType": "measurement",
2158
+ "cardinality": "one",
2159
+ "granularity": "model",
2160
+ "provenance": {
2161
+ "capture": "form"
2162
+ },
2163
+ "accessTier": "public",
2164
+ "obligation": "optional",
2165
+ "legalBasis": "ESPR Annex I(c) and Art. 7(2)(b)(iii): a repairability assessment under a named method",
2166
+ "applicability": {
2167
+ "rule": "always"
2168
+ },
2169
+ "requirement": {
2170
+ "status": "anticipated",
2171
+ "source": "eu-espr",
2172
+ "clause": "Annex I(c); Article 7(2)(b)(iii)",
2173
+ "note": "waits on the delegated act on repairability scoring; the assessment names its method and no universal score is mandated"
2174
+ },
2175
+ "group": "repair"
2176
+ },
2177
+ {
2178
+ "key": "warrantyTerms",
2179
+ "pointer": "/warrantyTerms",
2180
+ "label": "Commercial guarantee terms",
2181
+ "valueType": "warrantyTerms",
2182
+ "cardinality": "one",
2183
+ "granularity": "model",
2184
+ "provenance": {
2185
+ "capture": "form"
2186
+ },
2187
+ "accessTier": "public",
2188
+ "obligation": "optional",
2189
+ "legalBasis": "Dir. (EU) 2024/825: a commercial guarantee of durability states its term and what it counts from",
2190
+ "applicability": {
2191
+ "rule": "always"
2192
+ },
2193
+ "requirement": {
2194
+ "status": "enacted",
2195
+ "source": "eu-2024-825",
2196
+ "clause": "Article 2",
2197
+ "note": "guarantee carries the term in months; the terms carry the calendar rule an item expiry is derived under, and never an expiry by themselves"
2198
+ },
2199
+ "group": "durability"
2200
+ },
2201
+ {
2202
+ "key": "careNoteLocalised",
2203
+ "pointer": "/careNoteLocalised",
2204
+ "label": "Care note, by language",
2205
+ "valueType": "localisedText",
2206
+ "cardinality": "one",
2207
+ "granularity": "model",
2208
+ "provenance": {
2209
+ "capture": "form"
2210
+ },
2211
+ "accessTier": "public",
2212
+ "obligation": "optional",
2213
+ "legalBasis": "ESPR Annex I(a): care information as the maker supplied it in each language",
2214
+ "applicability": {
2215
+ "rule": "always"
2216
+ },
2217
+ "requirement": {
2218
+ "status": "anticipated",
2219
+ "source": "eu-espr",
2220
+ "clause": "Annex I(a)",
2221
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
2222
+ },
2223
+ "group": "durability",
2224
+ "note": "careNote stays the default-language text; a reader selects the exact language, then the base language, then the default, and never rewrites a value."
2225
+ },
2226
+ {
2227
+ "key": "substanceStatementLocalised",
2228
+ "pointer": "/substanceStatementLocalised",
2229
+ "label": "Substance statement, by language",
2230
+ "valueType": "localisedText",
2231
+ "cardinality": "one",
2232
+ "granularity": "model",
2233
+ "provenance": {
2234
+ "capture": "form"
2235
+ },
2236
+ "accessTier": "public",
2237
+ "obligation": "optional",
2238
+ "legalBasis": "ESPR Art. 9(2)(b): the substance statement in each language it was supplied in",
2239
+ "applicability": {
2240
+ "rule": "always"
2241
+ },
2242
+ "requirement": {
2243
+ "status": "anticipated",
2244
+ "source": "eu-espr",
2245
+ "clause": "Article 9(2)(b)",
2246
+ "note": "the ESPR delegated act for textiles is not adopted; the Commission's textile and apparel page gives it an indicative adoption in the fourth quarter of 2027"
2247
+ },
2248
+ "group": "substances"
2249
+ },
2250
+ {
2251
+ "key": "inapplicableFields",
2252
+ "pointer": "/inapplicableFields",
2253
+ "label": "Declared inapplicable fields",
2254
+ "valueType": "record",
2255
+ "cardinality": "many",
2256
+ "granularity": "model",
2257
+ "provenance": {
2258
+ "capture": "form"
2259
+ },
2260
+ "accessTier": "public",
2261
+ "obligation": "optional",
2262
+ "legalBasis": "none: the profile's own declaration by which a record says that a conditional field does not apply to it, with the reason",
2263
+ "applicability": {
2264
+ "rule": "always"
2265
+ },
2266
+ "requirement": {
2267
+ "status": "none",
2268
+ "source": "profile addition",
2269
+ "note": "a declaration is how a missing conditional value stops being unresolved; it never makes a required enacted field optional"
2270
+ },
2271
+ "group": "declarations",
2272
+ "parts": [
2273
+ {
2274
+ "key": "field",
2275
+ "label": "Field key",
2276
+ "valueType": "text",
2277
+ "required": true
2278
+ },
2279
+ {
2280
+ "key": "reason",
2281
+ "label": "Reason",
2282
+ "valueType": "text",
2283
+ "required": true
2284
+ },
2285
+ {
2286
+ "key": "declaredBy",
2287
+ "label": "Declared by",
2288
+ "valueType": "text"
2289
+ }
2290
+ ],
2291
+ "note": "A declaration is an assertion by the declaring party under the record's authorisation; it is shown beside the field it concerns and is never read as the field's value."
2292
+ }
2293
+ ],
2294
+ "eventMappings": [
2295
+ {
2296
+ "nativeOperation": "ACTIVATE",
2297
+ "eventType": "Origin",
2298
+ "externalEvent": "manufacture or commissioning",
2299
+ "requires": "manufacturing or commissioning evidence naming the facility, time and responsible party; the native ACTIVATE alone records only that a passport was opened",
2300
+ "withoutEvidence": "insufficient-data"
2301
+ },
2302
+ {
2303
+ "nativeOperation": "SOLD",
2304
+ "eventType": "Transfer",
2305
+ "externalEvent": "physical move or change of custody",
2306
+ "requires": "actual source and destination movement or custody evidence; a change of token control is not a shipment",
2307
+ "withoutEvidence": "insufficient-data"
2308
+ },
2309
+ {
2310
+ "nativeOperation": "RESOLD",
2311
+ "eventType": "Transfer",
2312
+ "externalEvent": "physical move or change of custody",
2313
+ "requires": "actual source and destination movement or custody evidence",
2314
+ "withoutEvidence": "insufficient-data"
2315
+ },
2316
+ {
2317
+ "nativeOperation": "TRANSFER",
2318
+ "eventType": "Transfer",
2319
+ "externalEvent": "change of custody",
2320
+ "requires": "custody evidence beyond the token transfer; the transfer of token control alone establishes neither physical movement nor legal title",
2321
+ "withoutEvidence": "insufficient-data"
2322
+ },
2323
+ {
2324
+ "nativeOperation": "REPAIRED",
2325
+ "eventType": "Transformation",
2326
+ "externalEvent": "modification (repair)",
2327
+ "requires": "repair evidence naming what was done, by whom and when",
2328
+ "withoutEvidence": "insufficient-data"
2329
+ },
2330
+ {
2331
+ "nativeOperation": "EDIT",
2332
+ "eventType": "Transformation",
2333
+ "externalEvent": "metadata revision",
2334
+ "requires": "nothing physical: an EDIT is a native metadata operation and maps to a record revision, not a physical transformation",
2335
+ "withoutEvidence": "transformed"
2336
+ },
2337
+ {
2338
+ "nativeOperation": "RECYCLED",
2339
+ "eventType": "Disposition",
2340
+ "externalEvent": "disposition, or a process creating new products or materials",
2341
+ "requires": "recycling evidence distinguishing disposition of this item from a process whose outputs carry new identities",
2342
+ "withoutEvidence": "insufficient-data"
2343
+ }
2344
+ ],
2345
+ "sourceRefs": [
2346
+ {
2347
+ "id": "eu-espr",
2348
+ "name": "Regulation (EU) 2024/1781 (ESPR): Art. 4 and Annex I for the product parameters, Art. 9 and Annex III for passport contents, Art. 7(5) for substances of concern",
2349
+ "use": "The framework regulation the profile is aligned with."
2350
+ },
2351
+ {
2352
+ "id": "ec-textile-apparel-page",
2353
+ "name": "European Commission, textile and apparel digital product passport page, retrieved 6 September 2026 (SHA-256 c40001fdab9a33f65353e11678e64e736f3209a9dbb04625cef24d12135683b0)",
2354
+ "reference": "https://single-market-economy.ec.europa.eu/single-market/digital-product-passport/textile-apparel_en",
2355
+ "use": "The status and indicative timing of the textile delegated act; informative, not an instrument."
2356
+ },
2357
+ {
2358
+ "id": "reach-1907-2006",
2359
+ "name": "Regulation (EC) 1907/2006 (REACH), Article 33: information on substances of very high concern in articles",
2360
+ "use": "The binding basis of chemicalCompliance."
2361
+ },
2362
+ {
2363
+ "id": "eu-2024-1760",
2364
+ "name": "Directive (EU) 2024/1760 on corporate sustainability due diligence",
2365
+ "use": "The basis of dueDiligence; in force with deferred application dates."
2366
+ },
2367
+ {
2368
+ "id": "eu-1007-2011",
2369
+ "name": "Regulation (EU) 1007/2011 on textile fibre names and labelling: binding today, and the source of the fibre composition and animal-origin declarations",
2370
+ "use": "Binding labelling law."
2371
+ },
2372
+ {
2373
+ "id": "eu-2024-825",
2374
+ "name": "Directive (EU) 2024/825 on empowering consumers: durability and reparability claims",
2375
+ "use": "Durability and reparability claims."
2376
+ },
2377
+ {
2378
+ "id": "eu-2008-98",
2379
+ "name": "Directive 2008/98/EC as amended: textile extended producer responsibility and separate collection",
2380
+ "use": "End of life."
2381
+ },
2382
+ {
2383
+ "id": "iso-test-methods",
2384
+ "name": "ISO 3758, ISO 5077, ISO 6330, ISO 12945 and the ISO 105 series, for the test methods the performance values are measured by",
2385
+ "licensedText": true,
2386
+ "use": "Cited by number; no table reproduced."
2387
+ },
2388
+ {
2389
+ "id": "iso3166",
2390
+ "name": "ISO 3166-1 alpha-2",
2391
+ "reference": "ISO 3166-1",
2392
+ "use": "Every value typed country. Officially assigned codes only; user-assigned and exceptionally-reserved codes are excluded so a passport cannot name a place no register resolves.",
2393
+ "fields": [
2394
+ "manufacturingPlace.country",
2395
+ "supplyChain.country",
2396
+ "trims.origin"
2397
+ ]
2398
+ }
2399
+ ],
2400
+ "groups": [
2401
+ {
2402
+ "id": "identification",
2403
+ "title": "Identification"
2404
+ },
2405
+ {
2406
+ "id": "composition",
2407
+ "title": "What it is made of"
2408
+ },
2409
+ {
2410
+ "id": "substances",
2411
+ "title": "Substances of concern"
2412
+ },
2413
+ {
2414
+ "id": "durability",
2415
+ "title": "Durability and care"
2416
+ },
2417
+ {
2418
+ "id": "repair",
2419
+ "title": "Repair and reuse"
2420
+ },
2421
+ {
2422
+ "id": "footprint",
2423
+ "title": "Environmental footprint"
2424
+ },
2425
+ {
2426
+ "id": "endOfLife",
2427
+ "title": "End of life"
2428
+ },
2429
+ {
2430
+ "id": "supply",
2431
+ "title": "Supply chain"
2432
+ },
2433
+ {
2434
+ "id": "owner",
2435
+ "title": "Private to you"
2436
+ },
2437
+ {
2438
+ "id": "declarations",
2439
+ "title": "Declarations"
2440
+ }
2441
+ ],
2442
+ "identity": {
2443
+ "passportIdentifier": "A GS1 Digital Link URI carrying the GTIN under application identifier 01 and the serial under 21 (spec/record-model.md section 3); the enduring identifier never changes across the chain.",
2444
+ "granularities": [
2445
+ "batch",
2446
+ "item",
2447
+ "model"
2448
+ ],
2449
+ "modelIdentifier": "name",
2450
+ "batchIdentifier": "batch",
2451
+ "parentRelations": [
2452
+ {
2453
+ "child": "batch",
2454
+ "parent": "model"
2455
+ }
2456
+ ]
2457
+ },
2458
+ "succession": {
2459
+ "of": "textile@2",
2460
+ "migration": [
2461
+ {
2462
+ "from": "name",
2463
+ "outcome": "unchanged",
2464
+ "note": "carried unchanged; requirement status enacted"
2465
+ },
2466
+ {
2467
+ "from": "category",
2468
+ "outcome": "unchanged",
2469
+ "note": "carried unchanged; requirement status enacted"
2470
+ },
2471
+ {
2472
+ "from": "modelIdentifier",
2473
+ "outcome": "unchanged",
2474
+ "note": "carried unchanged; requirement status enacted"
2475
+ },
2476
+ {
2477
+ "from": "batch",
2478
+ "outcome": "unchanged",
2479
+ "note": "carried unchanged; requirement status enacted"
2480
+ },
2481
+ {
2482
+ "from": "gtin",
2483
+ "outcome": "unchanged",
2484
+ "note": "carried unchanged; requirement status anticipated"
2485
+ },
2486
+ {
2487
+ "from": "manufacturer",
2488
+ "outcome": "unchanged",
2489
+ "note": "carried unchanged; requirement status enacted"
2490
+ },
2491
+ {
2492
+ "from": "manufacturerContact",
2493
+ "outcome": "unchanged",
2494
+ "note": "carried unchanged; requirement status enacted"
2495
+ },
2496
+ {
2497
+ "from": "operatorId",
2498
+ "outcome": "relabelled",
2499
+ "note": "carried unchanged with awaitingAct; requirement status anticipated, so it is never schema-required and never counted missing"
2500
+ },
2501
+ {
2502
+ "from": "manufacturingPlace",
2503
+ "outcome": "unchanged",
2504
+ "note": "carried unchanged; requirement status enacted"
2505
+ },
2506
+ {
2507
+ "from": "made",
2508
+ "outcome": "unchanged",
2509
+ "note": "carried unchanged; requirement status anticipated"
2510
+ },
2511
+ {
2512
+ "from": "colour",
2513
+ "outcome": "unchanged",
2514
+ "note": "carried unchanged; requirement status none"
2515
+ },
2516
+ {
2517
+ "from": "size",
2518
+ "outcome": "unchanged",
2519
+ "note": "carried unchanged; requirement status none"
2520
+ },
2521
+ {
2522
+ "from": "weight",
2523
+ "outcome": "unchanged",
2524
+ "note": "carried unchanged; requirement status anticipated"
2525
+ },
2526
+ {
2527
+ "from": "fibres",
2528
+ "outcome": "unchanged",
2529
+ "note": "carried unchanged as the whole-product composition; components and componentFibres carry the composition per component"
2530
+ },
2531
+ {
2532
+ "from": "nonTextileParts",
2533
+ "outcome": "unchanged",
2534
+ "note": "carried unchanged; requirement status enacted"
2535
+ },
2536
+ {
2537
+ "from": "recycledContent",
2538
+ "outcome": "unchanged",
2539
+ "note": "carried unchanged as the model-level declared share; recycledContentAssessment is the method-qualified companion"
2540
+ },
2541
+ {
2542
+ "from": "biobasedContent",
2543
+ "outcome": "unchanged",
2544
+ "note": "carried unchanged; requirement status none"
2545
+ },
2546
+ {
2547
+ "from": "trims",
2548
+ "outcome": "unchanged",
2549
+ "note": "carried unchanged; requirement status anticipated"
2550
+ },
2551
+ {
2552
+ "from": "substancesOfConcern",
2553
+ "outcome": "unchanged",
2554
+ "note": "carried unchanged; requirement status anticipated"
2555
+ },
2556
+ {
2557
+ "from": "substanceStatement",
2558
+ "outcome": "unchanged",
2559
+ "note": "carried unchanged as the default-language text; substanceStatementLocalised is the language-tagged companion"
2560
+ },
2561
+ {
2562
+ "from": "chemicalCompliance",
2563
+ "outcome": "unchanged",
2564
+ "note": "carried unchanged; requirement status enacted"
2565
+ },
2566
+ {
2567
+ "from": "microplasticRelease",
2568
+ "outcome": "relabelled",
2569
+ "note": "carried unchanged with awaitingAct; requirement status anticipated, so it is never schema-required and never counted missing"
2570
+ },
2571
+ {
2572
+ "from": "care",
2573
+ "outcome": "unchanged",
2574
+ "note": "carried unchanged; requirement status enacted"
2575
+ },
2576
+ {
2577
+ "from": "careNote",
2578
+ "outcome": "unchanged",
2579
+ "note": "carried unchanged as the default-language text; careNoteLocalised is the language-tagged companion"
2580
+ },
2581
+ {
2582
+ "from": "expectedLifetime",
2583
+ "outcome": "unchanged",
2584
+ "note": "carried unchanged; requirement status enacted"
2585
+ },
2586
+ {
2587
+ "from": "washCycles",
2588
+ "outcome": "unchanged",
2589
+ "note": "carried unchanged; requirement status anticipated"
2590
+ },
2591
+ {
2592
+ "from": "colourFastness",
2593
+ "outcome": "unchanged",
2594
+ "note": "carried unchanged; requirement status anticipated"
2595
+ },
2596
+ {
2597
+ "from": "dimensionalStability",
2598
+ "outcome": "unchanged",
2599
+ "note": "carried unchanged; requirement status anticipated"
2600
+ },
2601
+ {
2602
+ "from": "pillingResistance",
2603
+ "outcome": "unchanged",
2604
+ "note": "carried unchanged; requirement status anticipated"
2605
+ },
2606
+ {
2607
+ "from": "guarantee",
2608
+ "outcome": "unchanged",
2609
+ "note": "carried unchanged as the guarantee term in months; the companion warrantyTerms carries the calendar rule an item expiry is derived under"
2610
+ },
2611
+ {
2612
+ "from": "repairability",
2613
+ "outcome": "relabelled",
2614
+ "note": "carried unchanged with awaitingAct; requirement status anticipated, so it is never schema-required and never counted missing"
2615
+ },
2616
+ {
2617
+ "from": "spareParts",
2618
+ "outcome": "unchanged",
2619
+ "note": "carried unchanged; requirement status anticipated"
2620
+ },
2621
+ {
2622
+ "from": "repairInstructions",
2623
+ "outcome": "unchanged",
2624
+ "note": "carried unchanged; requirement status anticipated"
2625
+ },
2626
+ {
2627
+ "from": "repairServices",
2628
+ "outcome": "unchanged",
2629
+ "note": "carried unchanged; requirement status needs-review"
2630
+ },
2631
+ {
2632
+ "from": "carbonFootprint",
2633
+ "outcome": "unchanged",
2634
+ "note": "carried unchanged; requirement status anticipated"
2635
+ },
2636
+ {
2637
+ "from": "carbonFootprintStudy",
2638
+ "outcome": "unchanged",
2639
+ "note": "carried unchanged; requirement status anticipated"
2640
+ },
2641
+ {
2642
+ "from": "footprintClass",
2643
+ "outcome": "relabelled",
2644
+ "note": "carried unchanged with awaitingAct; requirement status anticipated, so it is never schema-required and never counted missing"
2645
+ },
2646
+ {
2647
+ "from": "waterUse",
2648
+ "outcome": "unchanged",
2649
+ "note": "carried unchanged; requirement status anticipated"
2650
+ },
2651
+ {
2652
+ "from": "collection",
2653
+ "outcome": "unchanged",
2654
+ "note": "carried unchanged; requirement status enacted"
2655
+ },
2656
+ {
2657
+ "from": "recyclability",
2658
+ "outcome": "unchanged",
2659
+ "note": "carried unchanged; requirement status anticipated"
2660
+ },
2661
+ {
2662
+ "from": "separability",
2663
+ "outcome": "unchanged",
2664
+ "note": "carried unchanged; requirement status anticipated"
2665
+ },
2666
+ {
2667
+ "from": "eprRegistration",
2668
+ "outcome": "unchanged",
2669
+ "note": "carried unchanged; requirement status anticipated"
2670
+ },
2671
+ {
2672
+ "from": "supplyChain",
2673
+ "outcome": "unchanged",
2674
+ "note": "carried unchanged; requirement status anticipated"
2675
+ },
2676
+ {
2677
+ "from": "certifications",
2678
+ "outcome": "unchanged",
2679
+ "note": "carried unchanged as the declared list of schemes; certificationEvidence carries the certificate, its validity and its verification result"
2680
+ },
2681
+ {
2682
+ "from": "dueDiligence",
2683
+ "outcome": "unchanged",
2684
+ "note": "carried unchanged; requirement status anticipated"
2685
+ },
2686
+ {
2687
+ "from": "provenance",
2688
+ "outcome": "unchanged",
2689
+ "note": "carried unchanged; requirement status none"
2690
+ },
2691
+ {
2692
+ "from": "purchase",
2693
+ "outcome": "unchanged",
2694
+ "note": "carried unchanged; requirement status none"
2695
+ },
2696
+ {
2697
+ "from": "personalisation",
2698
+ "outcome": "unchanged",
2699
+ "note": "carried unchanged; requirement status none"
2700
+ },
2701
+ {
2702
+ "from": "warrantyRegistration",
2703
+ "outcome": "unchanged",
2704
+ "note": "carried unchanged; requirement status none"
2705
+ },
2706
+ {
2707
+ "from": "components",
2708
+ "outcome": "new",
2709
+ "note": "One entry per component of the product, named once here and referenced by componentFibres, substancesOfConcern.location and certificationEvidence.subject.componentRef."
2710
+ },
2711
+ {
2712
+ "from": "componentFibres",
2713
+ "outcome": "new",
2714
+ "note": "Regulation (EU) 1007/2011 Articles 5, 9 and 14 read per component; ESPR Annex I"
2715
+ },
2716
+ {
2717
+ "from": "recycledContentAssessment",
2718
+ "outcome": "new",
2719
+ "note": "The measurement shape keeps a physical recycled share apart from a mass-balance claim through its basis and method; recycledContent stays the declared scalar."
2720
+ },
2721
+ {
2722
+ "from": "certificationEvidence",
2723
+ "outcome": "new",
2724
+ "note": "Dir. (EU) 2024/825 Art. 2: the certification behind a sustainability label, as evidence"
2725
+ },
2726
+ {
2727
+ "from": "relatedDocuments",
2728
+ "outcome": "new",
2729
+ "note": "none: documents a value points at, with their access policy and, where retained, their digest"
2730
+ },
2731
+ {
2732
+ "from": "microfibreReleaseAssessment",
2733
+ "outcome": "new",
2734
+ "note": "ESPR Annex I(k): microplastic and microfibre release, by a named method"
2735
+ },
2736
+ {
2737
+ "from": "repairabilityAssessment",
2738
+ "outcome": "new",
2739
+ "note": "ESPR Annex I(c) and Art. 7(2)(b)(iii): a repairability assessment under a named method"
2740
+ },
2741
+ {
2742
+ "from": "warrantyTerms",
2743
+ "outcome": "new",
2744
+ "note": "Dir. (EU) 2024/825: a commercial guarantee of durability states its term and what it counts from"
2745
+ },
2746
+ {
2747
+ "from": "careNoteLocalised",
2748
+ "outcome": "new",
2749
+ "note": "careNote stays the default-language text; a reader selects the exact language, then the base language, then the default, and never rewrites a value."
2750
+ },
2751
+ {
2752
+ "from": "substanceStatementLocalised",
2753
+ "outcome": "new",
2754
+ "note": "ESPR Art. 9(2)(b): the substance statement in each language it was supplied in"
2755
+ },
2756
+ {
2757
+ "from": "inapplicableFields",
2758
+ "outcome": "new",
2759
+ "note": "A declaration is an assertion by the declaring party under the record's authorisation; it is shown beside the field it concerns and is never read as the field's value."
2760
+ }
2761
+ ]
2762
+ }
2763
+ }