@carrot-foundation/schemas 0.1.39 → 0.1.40
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/dist/index.cjs +491 -375
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +285 -319
- package/dist/index.d.ts +285 -319
- package/dist/index.js +491 -375
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/schemas/ipfs/collection/collection.schema.json +2 -2
- package/schemas/ipfs/credit/credit.schema.json +2 -2
- package/schemas/ipfs/credit-purchase-receipt/credit-purchase-receipt.schema.json +11 -20
- package/schemas/ipfs/credit-retirement-receipt/credit-retirement-receipt.schema.json +11 -20
- package/schemas/ipfs/gas-id/gas-id.example.json +1 -2
- package/schemas/ipfs/gas-id/gas-id.schema.json +3 -20
- package/schemas/ipfs/mass-id/mass-id.example.json +87 -187
- package/schemas/ipfs/mass-id/mass-id.schema.json +658 -484
- package/schemas/ipfs/mass-id-audit/mass-id-audit.schema.json +2 -2
- package/schemas/ipfs/methodology/methodology.schema.json +2 -2
- package/schemas/ipfs/recycled-id/recycled-id.example.json +1 -2
- package/schemas/ipfs/recycled-id/recycled-id.schema.json +3 -20
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"title": "MassID NFT IPFS Record",
|
|
4
4
|
"description": "Complete MassID NFT IPFS record including fixed attributes and detailed waste tracking data",
|
|
5
|
-
"$id": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/tags/0.1.
|
|
6
|
-
"version": "0.1.
|
|
5
|
+
"$id": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/tags/0.1.40/schemas/ipfs/mass-id/mass-id.schema.json",
|
|
6
|
+
"version": "0.1.40",
|
|
7
7
|
"type": "object",
|
|
8
8
|
"properties": {
|
|
9
9
|
"$schema": {
|
|
@@ -254,7 +254,7 @@
|
|
|
254
254
|
},
|
|
255
255
|
"data": {
|
|
256
256
|
"title": "MassID Data",
|
|
257
|
-
"description": "MassID data containing waste tracking and
|
|
257
|
+
"description": "MassID data containing waste tracking events and supporting information",
|
|
258
258
|
"type": "object",
|
|
259
259
|
"properties": {
|
|
260
260
|
"waste_properties": {
|
|
@@ -266,9 +266,7 @@
|
|
|
266
266
|
"title": "Waste Type",
|
|
267
267
|
"description": "Waste material category",
|
|
268
268
|
"examples": [
|
|
269
|
-
"Organic"
|
|
270
|
-
"Plastic",
|
|
271
|
-
"Metal"
|
|
269
|
+
"Organic"
|
|
272
270
|
],
|
|
273
271
|
"type": "string",
|
|
274
272
|
"minLength": 1,
|
|
@@ -278,9 +276,7 @@
|
|
|
278
276
|
"title": "Waste Subtype",
|
|
279
277
|
"description": "Specific subcategory of waste material",
|
|
280
278
|
"examples": [
|
|
281
|
-
"Food, Food Waste and Beverages"
|
|
282
|
-
"PET Bottles",
|
|
283
|
-
"Aluminum Cans"
|
|
279
|
+
"Food, Food Waste and Beverages"
|
|
284
280
|
],
|
|
285
281
|
"type": "string",
|
|
286
282
|
"minLength": 1,
|
|
@@ -288,74 +284,47 @@
|
|
|
288
284
|
},
|
|
289
285
|
"local_classification": {
|
|
290
286
|
"title": "Local Classification",
|
|
291
|
-
"description": "
|
|
287
|
+
"description": "Regulatory classification reference for the waste material",
|
|
288
|
+
"examples": [
|
|
289
|
+
{
|
|
290
|
+
"code": "04 02 20",
|
|
291
|
+
"system": "Ibama"
|
|
292
|
+
}
|
|
293
|
+
],
|
|
292
294
|
"type": "object",
|
|
293
295
|
"properties": {
|
|
294
296
|
"code": {
|
|
295
|
-
"title": "Classification Code",
|
|
296
|
-
"description": "
|
|
297
|
+
"title": "Ibama Classification Code",
|
|
298
|
+
"description": "Ibama waste classification code in the format NN NN NN with required spaces and optional trailing *",
|
|
297
299
|
"examples": [
|
|
298
300
|
"20 01 01",
|
|
299
|
-
"
|
|
300
|
-
"
|
|
301
|
-
"IBAMA-A001"
|
|
301
|
+
"20 01 01*",
|
|
302
|
+
"04 02 20"
|
|
302
303
|
],
|
|
303
304
|
"type": "string",
|
|
304
|
-
"
|
|
305
|
-
"maxLength": 20
|
|
306
|
-
},
|
|
307
|
-
"description": {
|
|
308
|
-
"title": "Classification Description",
|
|
309
|
-
"description": "Local waste classification description",
|
|
310
|
-
"examples": [
|
|
311
|
-
"Paper and cardboard packaging",
|
|
312
|
-
"Ignitable waste",
|
|
313
|
-
"Paper and cardboard packaging waste",
|
|
314
|
-
"Municipal solid waste - organic fraction"
|
|
315
|
-
],
|
|
316
|
-
"type": "string",
|
|
317
|
-
"minLength": 1,
|
|
318
|
-
"maxLength": 200
|
|
305
|
+
"pattern": "^\\d{2} \\d{2} \\d{2}\\*?$"
|
|
319
306
|
},
|
|
320
307
|
"system": {
|
|
321
308
|
"title": "Classification System",
|
|
322
|
-
"description": "
|
|
309
|
+
"description": "Authority or standard providing the classification code",
|
|
323
310
|
"examples": [
|
|
324
|
-
"
|
|
311
|
+
"Ibama"
|
|
325
312
|
],
|
|
326
313
|
"type": "string",
|
|
327
|
-
"
|
|
328
|
-
"IBAMA"
|
|
329
|
-
]
|
|
314
|
+
"const": "Ibama"
|
|
330
315
|
}
|
|
331
316
|
},
|
|
332
317
|
"required": [
|
|
333
318
|
"code",
|
|
334
|
-
"description",
|
|
335
319
|
"system"
|
|
336
320
|
],
|
|
337
321
|
"additionalProperties": false
|
|
338
322
|
},
|
|
339
|
-
"measurement_unit": {
|
|
340
|
-
"title": "Measurement Unit",
|
|
341
|
-
"description": "Unit of measurement for the waste quantity",
|
|
342
|
-
"examples": [
|
|
343
|
-
"kg",
|
|
344
|
-
"ton"
|
|
345
|
-
],
|
|
346
|
-
"type": "string",
|
|
347
|
-
"enum": [
|
|
348
|
-
"kg",
|
|
349
|
-
"ton"
|
|
350
|
-
]
|
|
351
|
-
},
|
|
352
323
|
"net_weight": {
|
|
353
|
-
"title": "Net Weight",
|
|
354
|
-
"description": "Net weight of the waste batch in
|
|
324
|
+
"title": "Net Weight (kg)",
|
|
325
|
+
"description": "Net weight of the waste batch in kilograms (kg)",
|
|
355
326
|
"examples": [
|
|
356
|
-
|
|
357
|
-
45.2,
|
|
358
|
-
72.5
|
|
327
|
+
3000
|
|
359
328
|
],
|
|
360
329
|
"type": "number",
|
|
361
330
|
"minimum": 0
|
|
@@ -364,7 +333,6 @@
|
|
|
364
333
|
"required": [
|
|
365
334
|
"type",
|
|
366
335
|
"subtype",
|
|
367
|
-
"measurement_unit",
|
|
368
336
|
"net_weight"
|
|
369
337
|
],
|
|
370
338
|
"additionalProperties": false
|
|
@@ -515,22 +483,6 @@
|
|
|
515
483
|
"precision_level"
|
|
516
484
|
],
|
|
517
485
|
"additionalProperties": false
|
|
518
|
-
},
|
|
519
|
-
"facility_type": {
|
|
520
|
-
"title": "Facility Type",
|
|
521
|
-
"description": "Type of facility in the waste management chain",
|
|
522
|
-
"examples": [
|
|
523
|
-
"Collection Point",
|
|
524
|
-
"Recycling Facility",
|
|
525
|
-
"Administrative Office"
|
|
526
|
-
],
|
|
527
|
-
"type": "string",
|
|
528
|
-
"enum": [
|
|
529
|
-
"Collection Point",
|
|
530
|
-
"Recycling Facility",
|
|
531
|
-
"Administrative Office",
|
|
532
|
-
"Other"
|
|
533
|
-
]
|
|
534
486
|
}
|
|
535
487
|
},
|
|
536
488
|
"required": [
|
|
@@ -604,19 +556,16 @@
|
|
|
604
556
|
"additionalProperties": false
|
|
605
557
|
}
|
|
606
558
|
},
|
|
607
|
-
"
|
|
608
|
-
"title": "
|
|
609
|
-
"description": "
|
|
610
|
-
"
|
|
611
|
-
"
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
"items": {
|
|
618
|
-
"title": "Chain of Custody Event",
|
|
619
|
-
"description": "Chain of custody event",
|
|
559
|
+
"events": {
|
|
560
|
+
"title": "MassID Events",
|
|
561
|
+
"description": "Chronological sequence of custody transfer, processing, and recycling events",
|
|
562
|
+
"minItems": 1,
|
|
563
|
+
"type": "array",
|
|
564
|
+
"items": {
|
|
565
|
+
"title": "MassID Event",
|
|
566
|
+
"description": "Lifecycle event describing custody, processing, documentation, or recycling steps",
|
|
567
|
+
"oneOf": [
|
|
568
|
+
{
|
|
620
569
|
"type": "object",
|
|
621
570
|
"properties": {
|
|
622
571
|
"event_id": {
|
|
@@ -631,18 +580,371 @@
|
|
|
631
580
|
"format": "uuid",
|
|
632
581
|
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"
|
|
633
582
|
},
|
|
583
|
+
"description": {
|
|
584
|
+
"title": "Event Description",
|
|
585
|
+
"description": "Detailed description of what happened during this event",
|
|
586
|
+
"examples": [
|
|
587
|
+
"Waste collected from residential area using collection truck",
|
|
588
|
+
"Material sorted into recyclable and non-recyclable fractions",
|
|
589
|
+
"Waste transferred to authorized recycling facility"
|
|
590
|
+
],
|
|
591
|
+
"type": "string",
|
|
592
|
+
"minLength": 1,
|
|
593
|
+
"maxLength": 200
|
|
594
|
+
},
|
|
595
|
+
"timestamp": {
|
|
596
|
+
"title": "Event Timestamp",
|
|
597
|
+
"description": "ISO 8601 timestamp when the event occurred",
|
|
598
|
+
"examples": [
|
|
599
|
+
"2024-12-05T11:02:47.000Z",
|
|
600
|
+
"2025-02-22T10:35:12.000Z"
|
|
601
|
+
],
|
|
602
|
+
"type": "string",
|
|
603
|
+
"format": "date-time",
|
|
604
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
|
|
605
|
+
},
|
|
606
|
+
"participant_id_hash": {
|
|
607
|
+
"title": "Participant ID Hash",
|
|
608
|
+
"description": "Reference to participant in the participants array",
|
|
609
|
+
"examples": [
|
|
610
|
+
"87f633634cc4b02f628685651f0a29b7bfa22a0bd841f725c6772dd00a58d489",
|
|
611
|
+
"6e83b8e6373847bbdc056549bedda38dc88854ce41ba4fca11e0fc6ce3e07ef6"
|
|
612
|
+
],
|
|
613
|
+
"type": "string",
|
|
614
|
+
"pattern": "^[0-9a-fA-F]{64}$"
|
|
615
|
+
},
|
|
616
|
+
"location_id_hash": {
|
|
617
|
+
"title": "Location ID Hash",
|
|
618
|
+
"description": "Reference to location in the locations array",
|
|
619
|
+
"examples": [
|
|
620
|
+
"87f633634cc4b02f628685651f0a29b7bfa22a0bd841f725c6772dd00a58d489",
|
|
621
|
+
"6e83b8e6373847bbdc056549bedda38dc88854ce41ba4fca11e0fc6ce3e07ef6"
|
|
622
|
+
],
|
|
623
|
+
"type": "string",
|
|
624
|
+
"pattern": "^[0-9a-fA-F]{64}$"
|
|
625
|
+
},
|
|
626
|
+
"weight": {
|
|
627
|
+
"title": "Event Weight (kg)",
|
|
628
|
+
"description": "Mass weight after this event in kilograms (kg)",
|
|
629
|
+
"examples": [
|
|
630
|
+
3000,
|
|
631
|
+
1500,
|
|
632
|
+
500
|
|
633
|
+
],
|
|
634
|
+
"type": "number",
|
|
635
|
+
"minimum": 0
|
|
636
|
+
},
|
|
637
|
+
"event_name": {
|
|
638
|
+
"title": "Event Name",
|
|
639
|
+
"description": "Pick-up event discriminator",
|
|
640
|
+
"examples": [
|
|
641
|
+
"Pick-up"
|
|
642
|
+
],
|
|
643
|
+
"type": "string",
|
|
644
|
+
"const": "Pick-up"
|
|
645
|
+
},
|
|
646
|
+
"data": {
|
|
647
|
+
"title": "Pick-up Event Data",
|
|
648
|
+
"description": "Vehicle information associated with the pick-up event",
|
|
649
|
+
"type": "object",
|
|
650
|
+
"properties": {
|
|
651
|
+
"vehicle_type": {
|
|
652
|
+
"title": "Vehicle Type",
|
|
653
|
+
"description": "Type of vehicle used for pick-up operations",
|
|
654
|
+
"examples": [
|
|
655
|
+
"Truck",
|
|
656
|
+
"Van",
|
|
657
|
+
"Compactor"
|
|
658
|
+
],
|
|
659
|
+
"type": "string",
|
|
660
|
+
"minLength": 1,
|
|
661
|
+
"maxLength": 50
|
|
662
|
+
}
|
|
663
|
+
},
|
|
664
|
+
"additionalProperties": false
|
|
665
|
+
}
|
|
666
|
+
},
|
|
667
|
+
"required": [
|
|
668
|
+
"event_id",
|
|
669
|
+
"timestamp",
|
|
670
|
+
"participant_id_hash",
|
|
671
|
+
"location_id_hash",
|
|
672
|
+
"event_name"
|
|
673
|
+
],
|
|
674
|
+
"additionalProperties": false
|
|
675
|
+
},
|
|
676
|
+
{
|
|
677
|
+
"type": "object",
|
|
678
|
+
"properties": {
|
|
679
|
+
"event_id": {
|
|
680
|
+
"title": "Event ID",
|
|
681
|
+
"description": "Unique event identifier",
|
|
682
|
+
"examples": [
|
|
683
|
+
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
684
|
+
"6f520d88-864d-432d-bf9f-5c3166c4818f",
|
|
685
|
+
"f77afa89-1c58-40fd-9bf5-8a86703a8af4"
|
|
686
|
+
],
|
|
687
|
+
"type": "string",
|
|
688
|
+
"format": "uuid",
|
|
689
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"
|
|
690
|
+
},
|
|
691
|
+
"description": {
|
|
692
|
+
"title": "Event Description",
|
|
693
|
+
"description": "Detailed description of what happened during this event",
|
|
694
|
+
"examples": [
|
|
695
|
+
"Waste collected from residential area using collection truck",
|
|
696
|
+
"Material sorted into recyclable and non-recyclable fractions",
|
|
697
|
+
"Waste transferred to authorized recycling facility"
|
|
698
|
+
],
|
|
699
|
+
"type": "string",
|
|
700
|
+
"minLength": 1,
|
|
701
|
+
"maxLength": 200
|
|
702
|
+
},
|
|
703
|
+
"timestamp": {
|
|
704
|
+
"title": "Event Timestamp",
|
|
705
|
+
"description": "ISO 8601 timestamp when the event occurred",
|
|
706
|
+
"examples": [
|
|
707
|
+
"2024-12-05T11:02:47.000Z",
|
|
708
|
+
"2025-02-22T10:35:12.000Z"
|
|
709
|
+
],
|
|
710
|
+
"type": "string",
|
|
711
|
+
"format": "date-time",
|
|
712
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
|
|
713
|
+
},
|
|
714
|
+
"participant_id_hash": {
|
|
715
|
+
"title": "Participant ID Hash",
|
|
716
|
+
"description": "Reference to participant in the participants array",
|
|
717
|
+
"examples": [
|
|
718
|
+
"87f633634cc4b02f628685651f0a29b7bfa22a0bd841f725c6772dd00a58d489",
|
|
719
|
+
"6e83b8e6373847bbdc056549bedda38dc88854ce41ba4fca11e0fc6ce3e07ef6"
|
|
720
|
+
],
|
|
721
|
+
"type": "string",
|
|
722
|
+
"pattern": "^[0-9a-fA-F]{64}$"
|
|
723
|
+
},
|
|
724
|
+
"location_id_hash": {
|
|
725
|
+
"title": "Location ID Hash",
|
|
726
|
+
"description": "Reference to location in the locations array",
|
|
727
|
+
"examples": [
|
|
728
|
+
"87f633634cc4b02f628685651f0a29b7bfa22a0bd841f725c6772dd00a58d489",
|
|
729
|
+
"6e83b8e6373847bbdc056549bedda38dc88854ce41ba4fca11e0fc6ce3e07ef6"
|
|
730
|
+
],
|
|
731
|
+
"type": "string",
|
|
732
|
+
"pattern": "^[0-9a-fA-F]{64}$"
|
|
733
|
+
},
|
|
734
|
+
"weight": {
|
|
735
|
+
"title": "Event Weight (kg)",
|
|
736
|
+
"description": "Mass weight after this event in kilograms (kg)",
|
|
737
|
+
"examples": [
|
|
738
|
+
3000,
|
|
739
|
+
1500,
|
|
740
|
+
500
|
|
741
|
+
],
|
|
742
|
+
"type": "number",
|
|
743
|
+
"minimum": 0
|
|
744
|
+
},
|
|
634
745
|
"event_name": {
|
|
635
746
|
"title": "Event Name",
|
|
636
|
-
"description": "
|
|
747
|
+
"description": "Weighing event discriminator",
|
|
637
748
|
"examples": [
|
|
638
|
-
"Sorting",
|
|
639
|
-
"Processing",
|
|
640
|
-
"Recycling",
|
|
641
749
|
"Weighing"
|
|
642
750
|
],
|
|
643
751
|
"type": "string",
|
|
752
|
+
"const": "Weighing"
|
|
753
|
+
},
|
|
754
|
+
"data": {
|
|
755
|
+
"title": "Weighing Event Data",
|
|
756
|
+
"description": "Weighing operational details including capture method, equipment, and weights",
|
|
757
|
+
"type": "object",
|
|
758
|
+
"properties": {
|
|
759
|
+
"weighing_capture_method": {
|
|
760
|
+
"title": "Weighing Capture Method",
|
|
761
|
+
"description": "Method used to capture the weight measurement",
|
|
762
|
+
"examples": [
|
|
763
|
+
"Digital scale integration",
|
|
764
|
+
"Manual entry",
|
|
765
|
+
"Automated capture via IoT scale"
|
|
766
|
+
],
|
|
767
|
+
"type": "string",
|
|
768
|
+
"minLength": 1,
|
|
769
|
+
"maxLength": 100
|
|
770
|
+
},
|
|
771
|
+
"scale_type": {
|
|
772
|
+
"title": "Scale Type",
|
|
773
|
+
"description": "Type of scale used to weigh the load",
|
|
774
|
+
"examples": [
|
|
775
|
+
"Weighbridge (Truck Scale)",
|
|
776
|
+
"Axle scale"
|
|
777
|
+
],
|
|
778
|
+
"type": "string",
|
|
779
|
+
"minLength": 1,
|
|
780
|
+
"maxLength": 50
|
|
781
|
+
},
|
|
782
|
+
"container_type": {
|
|
783
|
+
"title": "Container Type",
|
|
784
|
+
"description": "Type of container holding the waste during weighing",
|
|
785
|
+
"examples": [
|
|
786
|
+
"Roll-off container",
|
|
787
|
+
"Front loader bin"
|
|
788
|
+
],
|
|
789
|
+
"type": "string",
|
|
790
|
+
"minLength": 1,
|
|
791
|
+
"maxLength": 50
|
|
792
|
+
},
|
|
793
|
+
"vehicle_type": {
|
|
794
|
+
"title": "Vehicle Type",
|
|
795
|
+
"description": "Type of vehicle used during weighing",
|
|
796
|
+
"examples": [
|
|
797
|
+
"Truck",
|
|
798
|
+
"Trailer"
|
|
799
|
+
],
|
|
800
|
+
"type": "string",
|
|
801
|
+
"minLength": 1,
|
|
802
|
+
"maxLength": 50
|
|
803
|
+
},
|
|
804
|
+
"container_capacity": {
|
|
805
|
+
"title": "Container Capacity (kg)",
|
|
806
|
+
"description": "Maximum container capacity in kilograms",
|
|
807
|
+
"examples": [
|
|
808
|
+
12000
|
|
809
|
+
],
|
|
810
|
+
"type": "number",
|
|
811
|
+
"minimum": 0
|
|
812
|
+
},
|
|
813
|
+
"gross_weight": {
|
|
814
|
+
"title": "Gross Weight (kg)",
|
|
815
|
+
"description": "Total weight including vehicle/container before tare",
|
|
816
|
+
"examples": [
|
|
817
|
+
9500
|
|
818
|
+
],
|
|
819
|
+
"type": "number",
|
|
820
|
+
"minimum": 0
|
|
821
|
+
},
|
|
822
|
+
"tare": {
|
|
823
|
+
"title": "Tare Weight (kg)",
|
|
824
|
+
"description": "Weight of the empty vehicle or container",
|
|
825
|
+
"examples": [
|
|
826
|
+
3500
|
|
827
|
+
],
|
|
828
|
+
"type": "number",
|
|
829
|
+
"minimum": 0
|
|
830
|
+
}
|
|
831
|
+
},
|
|
832
|
+
"additionalProperties": false
|
|
833
|
+
}
|
|
834
|
+
},
|
|
835
|
+
"required": [
|
|
836
|
+
"event_id",
|
|
837
|
+
"timestamp",
|
|
838
|
+
"participant_id_hash",
|
|
839
|
+
"location_id_hash",
|
|
840
|
+
"event_name"
|
|
841
|
+
],
|
|
842
|
+
"additionalProperties": false
|
|
843
|
+
},
|
|
844
|
+
{
|
|
845
|
+
"title": "Drop-off Event",
|
|
846
|
+
"description": "Waste delivered to a destination location",
|
|
847
|
+
"type": "object",
|
|
848
|
+
"properties": {
|
|
849
|
+
"event_id": {
|
|
850
|
+
"title": "Event ID",
|
|
851
|
+
"description": "Unique event identifier",
|
|
852
|
+
"examples": [
|
|
853
|
+
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
854
|
+
"6f520d88-864d-432d-bf9f-5c3166c4818f",
|
|
855
|
+
"f77afa89-1c58-40fd-9bf5-8a86703a8af4"
|
|
856
|
+
],
|
|
857
|
+
"type": "string",
|
|
858
|
+
"format": "uuid",
|
|
859
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"
|
|
860
|
+
},
|
|
861
|
+
"description": {
|
|
862
|
+
"title": "Event Description",
|
|
863
|
+
"description": "Detailed description of what happened during this event",
|
|
864
|
+
"examples": [
|
|
865
|
+
"Waste collected from residential area using collection truck",
|
|
866
|
+
"Material sorted into recyclable and non-recyclable fractions",
|
|
867
|
+
"Waste transferred to authorized recycling facility"
|
|
868
|
+
],
|
|
869
|
+
"type": "string",
|
|
644
870
|
"minLength": 1,
|
|
645
|
-
"maxLength":
|
|
871
|
+
"maxLength": 200
|
|
872
|
+
},
|
|
873
|
+
"timestamp": {
|
|
874
|
+
"title": "Event Timestamp",
|
|
875
|
+
"description": "ISO 8601 timestamp when the event occurred",
|
|
876
|
+
"examples": [
|
|
877
|
+
"2024-12-05T11:02:47.000Z",
|
|
878
|
+
"2025-02-22T10:35:12.000Z"
|
|
879
|
+
],
|
|
880
|
+
"type": "string",
|
|
881
|
+
"format": "date-time",
|
|
882
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
|
|
883
|
+
},
|
|
884
|
+
"participant_id_hash": {
|
|
885
|
+
"title": "Participant ID Hash",
|
|
886
|
+
"description": "Reference to participant in the participants array",
|
|
887
|
+
"examples": [
|
|
888
|
+
"87f633634cc4b02f628685651f0a29b7bfa22a0bd841f725c6772dd00a58d489",
|
|
889
|
+
"6e83b8e6373847bbdc056549bedda38dc88854ce41ba4fca11e0fc6ce3e07ef6"
|
|
890
|
+
],
|
|
891
|
+
"type": "string",
|
|
892
|
+
"pattern": "^[0-9a-fA-F]{64}$"
|
|
893
|
+
},
|
|
894
|
+
"location_id_hash": {
|
|
895
|
+
"title": "Location ID Hash",
|
|
896
|
+
"description": "Reference to location in the locations array",
|
|
897
|
+
"examples": [
|
|
898
|
+
"87f633634cc4b02f628685651f0a29b7bfa22a0bd841f725c6772dd00a58d489",
|
|
899
|
+
"6e83b8e6373847bbdc056549bedda38dc88854ce41ba4fca11e0fc6ce3e07ef6"
|
|
900
|
+
],
|
|
901
|
+
"type": "string",
|
|
902
|
+
"pattern": "^[0-9a-fA-F]{64}$"
|
|
903
|
+
},
|
|
904
|
+
"weight": {
|
|
905
|
+
"title": "Event Weight (kg)",
|
|
906
|
+
"description": "Mass weight after this event in kilograms (kg)",
|
|
907
|
+
"examples": [
|
|
908
|
+
3000,
|
|
909
|
+
1500,
|
|
910
|
+
500
|
|
911
|
+
],
|
|
912
|
+
"type": "number",
|
|
913
|
+
"minimum": 0
|
|
914
|
+
},
|
|
915
|
+
"event_name": {
|
|
916
|
+
"title": "Event Name",
|
|
917
|
+
"description": "Drop-off event discriminator",
|
|
918
|
+
"examples": [
|
|
919
|
+
"Drop-off"
|
|
920
|
+
],
|
|
921
|
+
"type": "string",
|
|
922
|
+
"const": "Drop-off"
|
|
923
|
+
}
|
|
924
|
+
},
|
|
925
|
+
"required": [
|
|
926
|
+
"event_id",
|
|
927
|
+
"timestamp",
|
|
928
|
+
"participant_id_hash",
|
|
929
|
+
"location_id_hash",
|
|
930
|
+
"event_name"
|
|
931
|
+
],
|
|
932
|
+
"additionalProperties": false
|
|
933
|
+
},
|
|
934
|
+
{
|
|
935
|
+
"type": "object",
|
|
936
|
+
"properties": {
|
|
937
|
+
"event_id": {
|
|
938
|
+
"title": "Event ID",
|
|
939
|
+
"description": "Unique event identifier",
|
|
940
|
+
"examples": [
|
|
941
|
+
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
942
|
+
"6f520d88-864d-432d-bf9f-5c3166c4818f",
|
|
943
|
+
"f77afa89-1c58-40fd-9bf5-8a86703a8af4"
|
|
944
|
+
],
|
|
945
|
+
"type": "string",
|
|
946
|
+
"format": "uuid",
|
|
947
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"
|
|
646
948
|
},
|
|
647
949
|
"description": {
|
|
648
950
|
"title": "Event Description",
|
|
@@ -650,10 +952,7 @@
|
|
|
650
952
|
"examples": [
|
|
651
953
|
"Waste collected from residential area using collection truck",
|
|
652
954
|
"Material sorted into recyclable and non-recyclable fractions",
|
|
653
|
-
"
|
|
654
|
-
"Waste transferred to authorized recycling facility",
|
|
655
|
-
"Final disposal at licensed landfill site",
|
|
656
|
-
"Quality inspection and contamination assessment completed"
|
|
955
|
+
"Waste transferred to authorized recycling facility"
|
|
657
956
|
],
|
|
658
957
|
"type": "string",
|
|
659
958
|
"minLength": 1,
|
|
@@ -661,15 +960,14 @@
|
|
|
661
960
|
},
|
|
662
961
|
"timestamp": {
|
|
663
962
|
"title": "Event Timestamp",
|
|
664
|
-
"description": "
|
|
963
|
+
"description": "ISO 8601 timestamp when the event occurred",
|
|
665
964
|
"examples": [
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
1715270400000
|
|
965
|
+
"2024-12-05T11:02:47.000Z",
|
|
966
|
+
"2025-02-22T10:35:12.000Z"
|
|
669
967
|
],
|
|
670
|
-
"type": "
|
|
671
|
-
"
|
|
672
|
-
"
|
|
968
|
+
"type": "string",
|
|
969
|
+
"format": "date-time",
|
|
970
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
|
|
673
971
|
},
|
|
674
972
|
"participant_id_hash": {
|
|
675
973
|
"title": "Participant ID Hash",
|
|
@@ -692,279 +990,224 @@
|
|
|
692
990
|
"pattern": "^[0-9a-fA-F]{64}$"
|
|
693
991
|
},
|
|
694
992
|
"weight": {
|
|
695
|
-
"title": "Event Weight",
|
|
696
|
-
"description": "Mass weight after this event",
|
|
993
|
+
"title": "Event Weight (kg)",
|
|
994
|
+
"description": "Mass weight after this event in kilograms (kg)",
|
|
697
995
|
"examples": [
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
996
|
+
3000,
|
|
997
|
+
1500,
|
|
998
|
+
500
|
|
701
999
|
],
|
|
702
1000
|
"type": "number",
|
|
703
1001
|
"minimum": 0
|
|
704
1002
|
},
|
|
705
|
-
"
|
|
706
|
-
"title": "Event
|
|
707
|
-
"description": "
|
|
708
|
-
"
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
"properties": {
|
|
714
|
-
"name": {
|
|
715
|
-
"title": "Attribute Name",
|
|
716
|
-
"description": "Event attribute name",
|
|
717
|
-
"examples": [
|
|
718
|
-
"temperature",
|
|
719
|
-
"humidity",
|
|
720
|
-
"contamination_percentage",
|
|
721
|
-
"quality_grade",
|
|
722
|
-
"batch_number",
|
|
723
|
-
"operator_id",
|
|
724
|
-
"equipment_used",
|
|
725
|
-
"processing_cost"
|
|
726
|
-
],
|
|
727
|
-
"type": "string",
|
|
728
|
-
"minLength": 1,
|
|
729
|
-
"maxLength": 100
|
|
730
|
-
},
|
|
731
|
-
"value": {
|
|
732
|
-
"title": "Attribute Value",
|
|
733
|
-
"description": "Event attribute value",
|
|
734
|
-
"examples": [
|
|
735
|
-
25.5,
|
|
736
|
-
"Grade A",
|
|
737
|
-
true,
|
|
738
|
-
"BATCH-2024-001",
|
|
739
|
-
12.75,
|
|
740
|
-
"Shredder-X200",
|
|
741
|
-
false,
|
|
742
|
-
"OP-456"
|
|
743
|
-
],
|
|
744
|
-
"anyOf": [
|
|
745
|
-
{
|
|
746
|
-
"type": "string"
|
|
747
|
-
},
|
|
748
|
-
{
|
|
749
|
-
"type": "number"
|
|
750
|
-
},
|
|
751
|
-
{
|
|
752
|
-
"type": "boolean"
|
|
753
|
-
}
|
|
754
|
-
]
|
|
755
|
-
},
|
|
756
|
-
"preserved_sensitivity": {
|
|
757
|
-
"title": "Preserved Sensitivity",
|
|
758
|
-
"description": "Indicates if the attribute contains sensitive information that was preserved",
|
|
759
|
-
"type": "boolean"
|
|
760
|
-
},
|
|
761
|
-
"format": {
|
|
762
|
-
"title": "Event Attribute Format",
|
|
763
|
-
"description": "Data format hint for proper display",
|
|
764
|
-
"examples": [
|
|
765
|
-
"KILOGRAM",
|
|
766
|
-
"DATE",
|
|
767
|
-
"PERCENTAGE"
|
|
768
|
-
],
|
|
769
|
-
"type": "string",
|
|
770
|
-
"enum": [
|
|
771
|
-
"KILOGRAM",
|
|
772
|
-
"DATE",
|
|
773
|
-
"CURRENCY",
|
|
774
|
-
"PERCENTAGE",
|
|
775
|
-
"COORDINATE"
|
|
776
|
-
]
|
|
777
|
-
}
|
|
778
|
-
},
|
|
779
|
-
"required": [
|
|
780
|
-
"name"
|
|
781
|
-
],
|
|
782
|
-
"additionalProperties": false
|
|
783
|
-
}
|
|
1003
|
+
"event_name": {
|
|
1004
|
+
"title": "Event Name",
|
|
1005
|
+
"description": "Sorting event discriminator",
|
|
1006
|
+
"examples": [
|
|
1007
|
+
"Sorting"
|
|
1008
|
+
],
|
|
1009
|
+
"type": "string",
|
|
1010
|
+
"const": "Sorting"
|
|
784
1011
|
},
|
|
785
|
-
"
|
|
786
|
-
"title": "Event
|
|
787
|
-
"description": "
|
|
788
|
-
"type": "
|
|
789
|
-
"
|
|
790
|
-
"
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
"Waste Transfer Note",
|
|
799
|
-
"Certificate of Disposal",
|
|
800
|
-
"Certificate of Final Destination",
|
|
801
|
-
"Quality Assessment Report",
|
|
802
|
-
"Transport Manifest",
|
|
803
|
-
"Processing Receipt",
|
|
804
|
-
"Environmental Permit",
|
|
805
|
-
"Invoice"
|
|
806
|
-
],
|
|
807
|
-
"type": "string",
|
|
808
|
-
"minLength": 1,
|
|
809
|
-
"maxLength": 50
|
|
810
|
-
},
|
|
811
|
-
"document_number": {
|
|
812
|
-
"title": "Document Number",
|
|
813
|
-
"description": "Official document number if applicable",
|
|
814
|
-
"examples": [
|
|
815
|
-
"WTN-2024-001234",
|
|
816
|
-
"CD-ENV-456789",
|
|
817
|
-
"INV-2024-QTR1-789",
|
|
818
|
-
"PERMIT-EPA-2024-001",
|
|
819
|
-
"MANIFEST-DOT-567890"
|
|
820
|
-
],
|
|
821
|
-
"type": "string",
|
|
822
|
-
"minLength": 1,
|
|
823
|
-
"maxLength": 50
|
|
824
|
-
},
|
|
825
|
-
"reference": {
|
|
826
|
-
"title": "Attachment Reference",
|
|
827
|
-
"description": "Reference to attachment (IPFS hash, file name, or external URL)",
|
|
828
|
-
"examples": [
|
|
829
|
-
"QmYjtig7VJQ6XsnUjqqJvj7QaMcCAwtrgNdahSiFofrE7o",
|
|
830
|
-
"waste_transfer_note_2024_001.pdf",
|
|
831
|
-
"https://docs.example.com/certificates/disposal_cert_456.pdf",
|
|
832
|
-
"bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
|
|
833
|
-
"processing_receipt_20240315.jpg"
|
|
834
|
-
],
|
|
835
|
-
"type": "string",
|
|
836
|
-
"minLength": 1
|
|
837
|
-
},
|
|
838
|
-
"issue_timestamp": {
|
|
839
|
-
"title": "Issue Timestamp",
|
|
840
|
-
"description": "Unix timestamp in milliseconds when the attachment was issued",
|
|
841
|
-
"examples": [
|
|
842
|
-
1710518400000,
|
|
843
|
-
1704067200000,
|
|
844
|
-
1715270400000
|
|
845
|
-
],
|
|
846
|
-
"type": "integer",
|
|
847
|
-
"exclusiveMinimum": 0,
|
|
848
|
-
"maximum": 9007199254740991
|
|
849
|
-
},
|
|
850
|
-
"issuer": {
|
|
851
|
-
"title": "Attachment Issuer",
|
|
852
|
-
"description": "Entity that issued the attachment",
|
|
853
|
-
"examples": [
|
|
854
|
-
"Environmental Protection Agency",
|
|
855
|
-
"Waste Management Solutions Ltd",
|
|
856
|
-
"Green Recycling Corp",
|
|
857
|
-
"City Waste Authority",
|
|
858
|
-
"EcoProcess Industries",
|
|
859
|
-
"Regional Environmental Office"
|
|
860
|
-
],
|
|
861
|
-
"type": "string",
|
|
862
|
-
"minLength": 1,
|
|
863
|
-
"maxLength": 100
|
|
864
|
-
}
|
|
1012
|
+
"data": {
|
|
1013
|
+
"title": "Sorting Event Data",
|
|
1014
|
+
"description": "Weights associated with sorting, including initial and deducted amounts",
|
|
1015
|
+
"type": "object",
|
|
1016
|
+
"properties": {
|
|
1017
|
+
"initial_weight": {
|
|
1018
|
+
"title": "Initial Weight (kg)",
|
|
1019
|
+
"description": "Weight of the material entering the sorting process in kilograms",
|
|
1020
|
+
"examples": [
|
|
1021
|
+
5000
|
|
1022
|
+
],
|
|
1023
|
+
"type": "number",
|
|
1024
|
+
"minimum": 0
|
|
865
1025
|
},
|
|
866
|
-
"
|
|
867
|
-
"
|
|
868
|
-
"
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
1026
|
+
"deducted_weight": {
|
|
1027
|
+
"title": "Deducted Weight (kg)",
|
|
1028
|
+
"description": "Weight removed during sorting (e.g., contaminants or moisture) in kilograms",
|
|
1029
|
+
"examples": [
|
|
1030
|
+
250
|
|
1031
|
+
],
|
|
1032
|
+
"type": "number",
|
|
1033
|
+
"minimum": 0
|
|
1034
|
+
}
|
|
1035
|
+
},
|
|
1036
|
+
"additionalProperties": false
|
|
872
1037
|
}
|
|
873
1038
|
},
|
|
874
1039
|
"required": [
|
|
875
1040
|
"event_id",
|
|
876
|
-
"event_name",
|
|
877
1041
|
"timestamp",
|
|
878
1042
|
"participant_id_hash",
|
|
879
|
-
"location_id_hash"
|
|
1043
|
+
"location_id_hash",
|
|
1044
|
+
"event_name"
|
|
1045
|
+
],
|
|
1046
|
+
"additionalProperties": false
|
|
1047
|
+
},
|
|
1048
|
+
{
|
|
1049
|
+
"title": "Recycling Event",
|
|
1050
|
+
"description": "Waste processed or recycled at the destination",
|
|
1051
|
+
"type": "object",
|
|
1052
|
+
"properties": {
|
|
1053
|
+
"event_id": {
|
|
1054
|
+
"title": "Event ID",
|
|
1055
|
+
"description": "Unique event identifier",
|
|
1056
|
+
"examples": [
|
|
1057
|
+
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
1058
|
+
"6f520d88-864d-432d-bf9f-5c3166c4818f",
|
|
1059
|
+
"f77afa89-1c58-40fd-9bf5-8a86703a8af4"
|
|
1060
|
+
],
|
|
1061
|
+
"type": "string",
|
|
1062
|
+
"format": "uuid",
|
|
1063
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"
|
|
1064
|
+
},
|
|
1065
|
+
"description": {
|
|
1066
|
+
"title": "Event Description",
|
|
1067
|
+
"description": "Detailed description of what happened during this event",
|
|
1068
|
+
"examples": [
|
|
1069
|
+
"Waste collected from residential area using collection truck",
|
|
1070
|
+
"Material sorted into recyclable and non-recyclable fractions",
|
|
1071
|
+
"Waste transferred to authorized recycling facility"
|
|
1072
|
+
],
|
|
1073
|
+
"type": "string",
|
|
1074
|
+
"minLength": 1,
|
|
1075
|
+
"maxLength": 200
|
|
1076
|
+
},
|
|
1077
|
+
"timestamp": {
|
|
1078
|
+
"title": "Event Timestamp",
|
|
1079
|
+
"description": "ISO 8601 timestamp when the event occurred",
|
|
1080
|
+
"examples": [
|
|
1081
|
+
"2024-12-05T11:02:47.000Z",
|
|
1082
|
+
"2025-02-22T10:35:12.000Z"
|
|
1083
|
+
],
|
|
1084
|
+
"type": "string",
|
|
1085
|
+
"format": "date-time",
|
|
1086
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
|
|
1087
|
+
},
|
|
1088
|
+
"participant_id_hash": {
|
|
1089
|
+
"title": "Participant ID Hash",
|
|
1090
|
+
"description": "Reference to participant in the participants array",
|
|
1091
|
+
"examples": [
|
|
1092
|
+
"87f633634cc4b02f628685651f0a29b7bfa22a0bd841f725c6772dd00a58d489",
|
|
1093
|
+
"6e83b8e6373847bbdc056549bedda38dc88854ce41ba4fca11e0fc6ce3e07ef6"
|
|
1094
|
+
],
|
|
1095
|
+
"type": "string",
|
|
1096
|
+
"pattern": "^[0-9a-fA-F]{64}$"
|
|
1097
|
+
},
|
|
1098
|
+
"location_id_hash": {
|
|
1099
|
+
"title": "Location ID Hash",
|
|
1100
|
+
"description": "Reference to location in the locations array",
|
|
1101
|
+
"examples": [
|
|
1102
|
+
"87f633634cc4b02f628685651f0a29b7bfa22a0bd841f725c6772dd00a58d489",
|
|
1103
|
+
"6e83b8e6373847bbdc056549bedda38dc88854ce41ba4fca11e0fc6ce3e07ef6"
|
|
1104
|
+
],
|
|
1105
|
+
"type": "string",
|
|
1106
|
+
"pattern": "^[0-9a-fA-F]{64}$"
|
|
1107
|
+
},
|
|
1108
|
+
"weight": {
|
|
1109
|
+
"title": "Event Weight (kg)",
|
|
1110
|
+
"description": "Mass weight after this event in kilograms (kg)",
|
|
1111
|
+
"examples": [
|
|
1112
|
+
3000,
|
|
1113
|
+
1500,
|
|
1114
|
+
500
|
|
1115
|
+
],
|
|
1116
|
+
"type": "number",
|
|
1117
|
+
"minimum": 0
|
|
1118
|
+
},
|
|
1119
|
+
"event_name": {
|
|
1120
|
+
"title": "Event Name",
|
|
1121
|
+
"description": "Recycling event discriminator",
|
|
1122
|
+
"examples": [
|
|
1123
|
+
"Recycling"
|
|
1124
|
+
],
|
|
1125
|
+
"type": "string",
|
|
1126
|
+
"const": "Recycling"
|
|
1127
|
+
}
|
|
1128
|
+
},
|
|
1129
|
+
"required": [
|
|
1130
|
+
"event_id",
|
|
1131
|
+
"timestamp",
|
|
1132
|
+
"participant_id_hash",
|
|
1133
|
+
"location_id_hash",
|
|
1134
|
+
"event_name"
|
|
880
1135
|
],
|
|
881
1136
|
"additionalProperties": false
|
|
882
1137
|
}
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
"title": "Total Duration (minutes)",
|
|
886
|
-
"description": "Total time from first to last event in minutes",
|
|
887
|
-
"examples": [
|
|
888
|
-
4350,
|
|
889
|
-
1440,
|
|
890
|
-
10110
|
|
891
|
-
],
|
|
892
|
-
"type": "integer",
|
|
893
|
-
"minimum": 0,
|
|
894
|
-
"maximum": 9007199254740991
|
|
895
|
-
}
|
|
896
|
-
},
|
|
897
|
-
"required": [
|
|
898
|
-
"events",
|
|
899
|
-
"total_duration_minutes"
|
|
900
|
-
],
|
|
901
|
-
"additionalProperties": false
|
|
1138
|
+
]
|
|
1139
|
+
}
|
|
902
1140
|
},
|
|
903
|
-
"
|
|
904
|
-
"title": "
|
|
905
|
-
"description": "
|
|
906
|
-
"type": "
|
|
907
|
-
"
|
|
908
|
-
"
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
"
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
"
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
"
|
|
937
|
-
|
|
938
|
-
|
|
1141
|
+
"attachments": {
|
|
1142
|
+
"title": "Attachments",
|
|
1143
|
+
"description": "Supporting documents associated with events, linked by event_id",
|
|
1144
|
+
"type": "array",
|
|
1145
|
+
"items": {
|
|
1146
|
+
"title": "MassID Attachment",
|
|
1147
|
+
"description": "Attachment associated with a specific MassID event, linked by event_id",
|
|
1148
|
+
"type": "object",
|
|
1149
|
+
"properties": {
|
|
1150
|
+
"type": {
|
|
1151
|
+
"title": "Attachment Type",
|
|
1152
|
+
"description": "Type of supporting attachment linked to a MassID event",
|
|
1153
|
+
"examples": [
|
|
1154
|
+
"Recycling Manifest",
|
|
1155
|
+
"Transport Manifest"
|
|
1156
|
+
],
|
|
1157
|
+
"type": "string",
|
|
1158
|
+
"enum": [
|
|
1159
|
+
"Recycling Manifest",
|
|
1160
|
+
"Transport Manifest"
|
|
1161
|
+
]
|
|
1162
|
+
},
|
|
1163
|
+
"document_number": {
|
|
1164
|
+
"title": "Document Number",
|
|
1165
|
+
"description": "Official document number if applicable",
|
|
1166
|
+
"examples": [
|
|
1167
|
+
"2353",
|
|
1168
|
+
"12345"
|
|
1169
|
+
],
|
|
1170
|
+
"type": "string",
|
|
1171
|
+
"minLength": 1,
|
|
1172
|
+
"maxLength": 50
|
|
1173
|
+
},
|
|
1174
|
+
"issued_at": {
|
|
1175
|
+
"title": "Issued At",
|
|
1176
|
+
"description": "ISO 8601 timestamp when the attachment was issued",
|
|
1177
|
+
"examples": [
|
|
1178
|
+
"2024-12-05T11:02:47.000Z",
|
|
1179
|
+
"2025-02-22T10:35:12.000Z"
|
|
1180
|
+
],
|
|
1181
|
+
"type": "string",
|
|
1182
|
+
"format": "date-time",
|
|
1183
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
|
|
1184
|
+
},
|
|
1185
|
+
"event_id": {
|
|
1186
|
+
"title": "Event ID",
|
|
1187
|
+
"description": "Identifier of the event this attachment belongs to",
|
|
1188
|
+
"examples": [
|
|
1189
|
+
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
1190
|
+
"6f520d88-864d-432d-bf9f-5c3166c4818f",
|
|
1191
|
+
"f77afa89-1c58-40fd-9bf5-8a86703a8af4"
|
|
1192
|
+
],
|
|
1193
|
+
"type": "string",
|
|
1194
|
+
"format": "uuid",
|
|
1195
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"
|
|
1196
|
+
}
|
|
939
1197
|
},
|
|
940
|
-
"
|
|
941
|
-
"
|
|
942
|
-
"
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
1715356800000
|
|
947
|
-
],
|
|
948
|
-
"type": "integer",
|
|
949
|
-
"exclusiveMinimum": 0,
|
|
950
|
-
"maximum": 9007199254740991
|
|
951
|
-
}
|
|
952
|
-
},
|
|
953
|
-
"required": [
|
|
954
|
-
"from_location_id_hash",
|
|
955
|
-
"to_location_id_hash",
|
|
956
|
-
"first_reported_timestamp",
|
|
957
|
-
"last_reported_timestamp"
|
|
958
|
-
],
|
|
959
|
-
"additionalProperties": false
|
|
1198
|
+
"required": [
|
|
1199
|
+
"type",
|
|
1200
|
+
"event_id"
|
|
1201
|
+
],
|
|
1202
|
+
"additionalProperties": false
|
|
1203
|
+
}
|
|
960
1204
|
}
|
|
961
1205
|
},
|
|
962
1206
|
"required": [
|
|
963
1207
|
"waste_properties",
|
|
964
1208
|
"locations",
|
|
965
1209
|
"participants",
|
|
966
|
-
"
|
|
967
|
-
"geographic_data"
|
|
1210
|
+
"events"
|
|
968
1211
|
],
|
|
969
1212
|
"additionalProperties": false
|
|
970
1213
|
},
|
|
@@ -987,9 +1230,8 @@
|
|
|
987
1230
|
"title": "Chain ID",
|
|
988
1231
|
"description": "Blockchain chain ID",
|
|
989
1232
|
"examples": [
|
|
990
|
-
1,
|
|
991
1233
|
137,
|
|
992
|
-
|
|
1234
|
+
80002
|
|
993
1235
|
],
|
|
994
1236
|
"type": "integer",
|
|
995
1237
|
"minimum": 1,
|
|
@@ -1146,15 +1388,15 @@
|
|
|
1146
1388
|
},
|
|
1147
1389
|
"attributes": {
|
|
1148
1390
|
"title": "MassID Attributes",
|
|
1149
|
-
"description": "MassID NFT attributes array
|
|
1150
|
-
"minItems":
|
|
1151
|
-
"maxItems":
|
|
1391
|
+
"description": "MassID NFT attributes array. Provide the canonical set covering waste (type, subtype, net weight), origin (country, municipality, administrative division), logistics (vehicle, manifests, weighing method/scale), and lifecycle timestamps (pick-up, drop-off, recycling). Length is validated; specific composition is producer-controlled.",
|
|
1392
|
+
"minItems": 11,
|
|
1393
|
+
"maxItems": 16,
|
|
1152
1394
|
"type": "array",
|
|
1153
1395
|
"items": {
|
|
1154
1396
|
"anyOf": [
|
|
1155
1397
|
{
|
|
1156
1398
|
"title": "Waste Type Attribute",
|
|
1157
|
-
"description": "
|
|
1399
|
+
"description": "Primary waste material category (e.g., Organic, Paper, Glass, Metal)",
|
|
1158
1400
|
"type": "object",
|
|
1159
1401
|
"properties": {
|
|
1160
1402
|
"trait_type": {
|
|
@@ -1204,7 +1446,7 @@
|
|
|
1204
1446
|
},
|
|
1205
1447
|
{
|
|
1206
1448
|
"title": "Waste Subtype Attribute",
|
|
1207
|
-
"description": "
|
|
1449
|
+
"description": "Regulatory or operational waste subtype (e.g., Food, Food Waste and Beverages)",
|
|
1208
1450
|
"type": "object",
|
|
1209
1451
|
"properties": {
|
|
1210
1452
|
"trait_type": {
|
|
@@ -1253,8 +1495,8 @@
|
|
|
1253
1495
|
"additionalProperties": false
|
|
1254
1496
|
},
|
|
1255
1497
|
{
|
|
1256
|
-
"title": "Weight Attribute",
|
|
1257
|
-
"description": "
|
|
1498
|
+
"title": "Weight Attribute (kg)",
|
|
1499
|
+
"description": "Net batch weight in kilograms (kg) for this MassID",
|
|
1258
1500
|
"type": "object",
|
|
1259
1501
|
"properties": {
|
|
1260
1502
|
"trait_type": {
|
|
@@ -1396,7 +1638,7 @@
|
|
|
1396
1638
|
},
|
|
1397
1639
|
{
|
|
1398
1640
|
"title": "Origin Administrative Division Attribute",
|
|
1399
|
-
"description": "
|
|
1641
|
+
"description": "State/province where the waste was generated (ISO 3166-2 preferred)",
|
|
1400
1642
|
"type": "object",
|
|
1401
1643
|
"properties": {
|
|
1402
1644
|
"trait_type": {
|
|
@@ -1445,19 +1687,19 @@
|
|
|
1445
1687
|
"additionalProperties": false
|
|
1446
1688
|
},
|
|
1447
1689
|
{
|
|
1448
|
-
"title": "Vehicle Type Attribute",
|
|
1449
|
-
"description": "Vehicle type
|
|
1690
|
+
"title": "Pick-up Vehicle Type Attribute",
|
|
1691
|
+
"description": "Vehicle type used during pick-up",
|
|
1450
1692
|
"type": "object",
|
|
1451
1693
|
"properties": {
|
|
1452
1694
|
"trait_type": {
|
|
1453
1695
|
"type": "string",
|
|
1454
|
-
"const": "Vehicle Type"
|
|
1696
|
+
"const": "Pick-up Vehicle Type"
|
|
1455
1697
|
},
|
|
1456
1698
|
"value": {
|
|
1457
|
-
"title": "Vehicle Type",
|
|
1458
|
-
"description": "Type of vehicle used for waste
|
|
1699
|
+
"title": "Pick-up Vehicle Type",
|
|
1700
|
+
"description": "Type of vehicle used for waste pick-up operations",
|
|
1459
1701
|
"examples": [
|
|
1460
|
-
"
|
|
1702
|
+
"Truck",
|
|
1461
1703
|
"Box Truck",
|
|
1462
1704
|
"Flatbed Truck",
|
|
1463
1705
|
"Roll-off Truck"
|
|
@@ -1497,7 +1739,7 @@
|
|
|
1497
1739
|
},
|
|
1498
1740
|
{
|
|
1499
1741
|
"title": "Recycling Method Attribute",
|
|
1500
|
-
"description": "
|
|
1742
|
+
"description": "Process applied to this mass (e.g., composting, mechanical recycling)",
|
|
1501
1743
|
"type": "object",
|
|
1502
1744
|
"properties": {
|
|
1503
1745
|
"trait_type": {
|
|
@@ -1510,7 +1752,7 @@
|
|
|
1510
1752
|
"examples": [
|
|
1511
1753
|
"Composting",
|
|
1512
1754
|
"Mechanical Recycling",
|
|
1513
|
-
"
|
|
1755
|
+
"Anaerobic Digestion"
|
|
1514
1756
|
],
|
|
1515
1757
|
"type": "string",
|
|
1516
1758
|
"minLength": 1,
|
|
@@ -1545,66 +1787,14 @@
|
|
|
1545
1787
|
],
|
|
1546
1788
|
"additionalProperties": false
|
|
1547
1789
|
},
|
|
1548
|
-
{
|
|
1549
|
-
"title": "Processing Time Attribute",
|
|
1550
|
-
"description": "Processing time attribute with optional trait description",
|
|
1551
|
-
"type": "object",
|
|
1552
|
-
"properties": {
|
|
1553
|
-
"trait_type": {
|
|
1554
|
-
"type": "string",
|
|
1555
|
-
"const": "Processing Time (hours)"
|
|
1556
|
-
},
|
|
1557
|
-
"value": {
|
|
1558
|
-
"title": "Hours",
|
|
1559
|
-
"description": "Time duration in hours with 0.1 hour precision",
|
|
1560
|
-
"examples": [
|
|
1561
|
-
72.5,
|
|
1562
|
-
24,
|
|
1563
|
-
168.5
|
|
1564
|
-
],
|
|
1565
|
-
"type": "number",
|
|
1566
|
-
"minimum": 0,
|
|
1567
|
-
"multipleOf": 0.1
|
|
1568
|
-
},
|
|
1569
|
-
"display_type": {
|
|
1570
|
-
"title": "Display Type",
|
|
1571
|
-
"description": "How the trait should be displayed in marketplace UIs",
|
|
1572
|
-
"type": "string",
|
|
1573
|
-
"enum": [
|
|
1574
|
-
"number",
|
|
1575
|
-
"date",
|
|
1576
|
-
"boost_number",
|
|
1577
|
-
"boost_percentage"
|
|
1578
|
-
]
|
|
1579
|
-
},
|
|
1580
|
-
"max_value": {
|
|
1581
|
-
"title": "Max Value",
|
|
1582
|
-
"description": "Maximum possible value for numeric traits",
|
|
1583
|
-
"examples": [
|
|
1584
|
-
0,
|
|
1585
|
-
45.2,
|
|
1586
|
-
72.5
|
|
1587
|
-
],
|
|
1588
|
-
"type": "number",
|
|
1589
|
-
"minimum": 0
|
|
1590
|
-
},
|
|
1591
|
-
"trait_description": {
|
|
1592
|
-
"title": "Processing Time Description",
|
|
1593
|
-
"description": "Custom description for the processing time",
|
|
1594
|
-
"type": "string",
|
|
1595
|
-
"minLength": 1,
|
|
1596
|
-
"maxLength": 200
|
|
1597
|
-
}
|
|
1598
|
-
},
|
|
1599
|
-
"required": [
|
|
1600
|
-
"trait_type",
|
|
1601
|
-
"value"
|
|
1602
|
-
],
|
|
1603
|
-
"additionalProperties": false
|
|
1604
|
-
},
|
|
1605
1790
|
{
|
|
1606
1791
|
"title": "Local Waste Classification ID Attribute",
|
|
1607
|
-
"description": "
|
|
1792
|
+
"description": "Regulatory waste classification code (e.g., Ibama format NN NN NN[*])",
|
|
1793
|
+
"examples": [
|
|
1794
|
+
"20 01 01",
|
|
1795
|
+
"20 01 01*",
|
|
1796
|
+
"04 02 20"
|
|
1797
|
+
],
|
|
1608
1798
|
"type": "object",
|
|
1609
1799
|
"properties": {
|
|
1610
1800
|
"trait_type": {
|
|
@@ -1612,16 +1802,15 @@
|
|
|
1612
1802
|
"const": "Local Waste Classification ID"
|
|
1613
1803
|
},
|
|
1614
1804
|
"value": {
|
|
1615
|
-
"title": "
|
|
1616
|
-
"description": "
|
|
1805
|
+
"title": "Ibama Classification Code",
|
|
1806
|
+
"description": "Ibama waste classification code in the format NN NN NN with required spaces and optional trailing *",
|
|
1617
1807
|
"examples": [
|
|
1618
|
-
"
|
|
1619
|
-
"
|
|
1620
|
-
"
|
|
1808
|
+
"20 01 01",
|
|
1809
|
+
"20 01 01*",
|
|
1810
|
+
"04 02 20"
|
|
1621
1811
|
],
|
|
1622
1812
|
"type": "string",
|
|
1623
|
-
"
|
|
1624
|
-
"maxLength": 100
|
|
1813
|
+
"pattern": "^\\d{2} \\d{2} \\d{2}\\*?$"
|
|
1625
1814
|
},
|
|
1626
1815
|
"display_type": {
|
|
1627
1816
|
"title": "Display Type",
|
|
@@ -1653,21 +1842,21 @@
|
|
|
1653
1842
|
"additionalProperties": false
|
|
1654
1843
|
},
|
|
1655
1844
|
{
|
|
1656
|
-
"title": "Recycling Manifest
|
|
1657
|
-
"description": "
|
|
1845
|
+
"title": "Recycling Manifest Number Attribute",
|
|
1846
|
+
"description": "Official recycling manifest number issued by recycling authority (optional)",
|
|
1658
1847
|
"type": "object",
|
|
1659
1848
|
"properties": {
|
|
1660
1849
|
"trait_type": {
|
|
1661
1850
|
"type": "string",
|
|
1662
|
-
"const": "Recycling Manifest
|
|
1851
|
+
"const": "Recycling Manifest Number"
|
|
1663
1852
|
},
|
|
1664
1853
|
"value": {
|
|
1665
|
-
"title": "Recycling Manifest
|
|
1666
|
-
"description": "
|
|
1854
|
+
"title": "Recycling Manifest Number",
|
|
1855
|
+
"description": "Official recycling manifest identifier",
|
|
1667
1856
|
"examples": [
|
|
1668
|
-
"
|
|
1669
|
-
"
|
|
1670
|
-
"
|
|
1857
|
+
"2353",
|
|
1858
|
+
"REC-MANIFEST-789",
|
|
1859
|
+
"RC12345"
|
|
1671
1860
|
],
|
|
1672
1861
|
"type": "string",
|
|
1673
1862
|
"minLength": 1,
|
|
@@ -1703,19 +1892,19 @@
|
|
|
1703
1892
|
"additionalProperties": false
|
|
1704
1893
|
},
|
|
1705
1894
|
{
|
|
1706
|
-
"title": "Transport Manifest
|
|
1707
|
-
"description": "
|
|
1895
|
+
"title": "Transport Manifest Number Attribute",
|
|
1896
|
+
"description": "Official transport manifest number issued by logistics/transport authority (optional)",
|
|
1708
1897
|
"type": "object",
|
|
1709
1898
|
"properties": {
|
|
1710
1899
|
"trait_type": {
|
|
1711
1900
|
"type": "string",
|
|
1712
|
-
"const": "Transport Manifest
|
|
1901
|
+
"const": "Transport Manifest Number"
|
|
1713
1902
|
},
|
|
1714
1903
|
"value": {
|
|
1715
|
-
"title": "Transport Manifest
|
|
1716
|
-
"description": "
|
|
1904
|
+
"title": "Transport Manifest Number",
|
|
1905
|
+
"description": "Official transport manifest identifier",
|
|
1717
1906
|
"examples": [
|
|
1718
|
-
"
|
|
1907
|
+
"4126",
|
|
1719
1908
|
"TRN-67890",
|
|
1720
1909
|
"TRANS-MANIFEST-456"
|
|
1721
1910
|
],
|
|
@@ -1765,10 +1954,9 @@
|
|
|
1765
1954
|
"title": "Weighing Capture Method",
|
|
1766
1955
|
"description": "Method used to capture weight data",
|
|
1767
1956
|
"examples": [
|
|
1768
|
-
"Digital",
|
|
1769
|
-
"Manual",
|
|
1770
|
-
"Automated"
|
|
1771
|
-
"Electronic Scale"
|
|
1957
|
+
"Digital scale integration",
|
|
1958
|
+
"Manual entry",
|
|
1959
|
+
"Automated capture via IoT scale"
|
|
1772
1960
|
],
|
|
1773
1961
|
"type": "string",
|
|
1774
1962
|
"minLength": 1,
|
|
@@ -1817,8 +2005,8 @@
|
|
|
1817
2005
|
"description": "Type of scale used for weighing",
|
|
1818
2006
|
"examples": [
|
|
1819
2007
|
"Weighbridge (Truck Scale)",
|
|
2008
|
+
"Axle scale",
|
|
1820
2009
|
"Floor Scale",
|
|
1821
|
-
"Bench Scale",
|
|
1822
2010
|
"Crane Scale"
|
|
1823
2011
|
],
|
|
1824
2012
|
"type": "string",
|
|
@@ -1855,38 +2043,27 @@
|
|
|
1855
2043
|
"additionalProperties": false
|
|
1856
2044
|
},
|
|
1857
2045
|
{
|
|
1858
|
-
"title": "
|
|
1859
|
-
"description": "
|
|
2046
|
+
"title": "Pick-up Date Attribute",
|
|
2047
|
+
"description": "Pick-up date attribute with Unix timestamp",
|
|
1860
2048
|
"type": "object",
|
|
1861
2049
|
"properties": {
|
|
1862
2050
|
"trait_type": {
|
|
1863
2051
|
"type": "string",
|
|
1864
|
-
"const": "
|
|
2052
|
+
"const": "Pick-up Date"
|
|
1865
2053
|
},
|
|
1866
2054
|
"value": {
|
|
1867
|
-
"title": "
|
|
1868
|
-
"description": "
|
|
2055
|
+
"title": "Pick-up Date",
|
|
2056
|
+
"description": "Unix timestamp in milliseconds when the waste was picked up from the source",
|
|
1869
2057
|
"examples": [
|
|
1870
|
-
|
|
1871
|
-
"Dumpster",
|
|
1872
|
-
"Roll-off Container",
|
|
1873
|
-
"Compactor",
|
|
1874
|
-
"Bin"
|
|
2058
|
+
1733396567000
|
|
1875
2059
|
],
|
|
1876
|
-
"type": "
|
|
1877
|
-
"
|
|
1878
|
-
"
|
|
2060
|
+
"type": "integer",
|
|
2061
|
+
"exclusiveMinimum": 0,
|
|
2062
|
+
"maximum": 9007199254740991
|
|
1879
2063
|
},
|
|
1880
2064
|
"display_type": {
|
|
1881
|
-
"title": "Display Type",
|
|
1882
|
-
"description": "How the trait should be displayed in marketplace UIs",
|
|
1883
2065
|
"type": "string",
|
|
1884
|
-
"
|
|
1885
|
-
"number",
|
|
1886
|
-
"date",
|
|
1887
|
-
"boost_number",
|
|
1888
|
-
"boost_percentage"
|
|
1889
|
-
]
|
|
2066
|
+
"const": "date"
|
|
1890
2067
|
},
|
|
1891
2068
|
"max_value": {
|
|
1892
2069
|
"title": "Max Value",
|
|
@@ -1902,26 +2079,25 @@
|
|
|
1902
2079
|
},
|
|
1903
2080
|
"required": [
|
|
1904
2081
|
"trait_type",
|
|
1905
|
-
"value"
|
|
2082
|
+
"value",
|
|
2083
|
+
"display_type"
|
|
1906
2084
|
],
|
|
1907
2085
|
"additionalProperties": false
|
|
1908
2086
|
},
|
|
1909
2087
|
{
|
|
1910
|
-
"title": "
|
|
1911
|
-
"description": "
|
|
2088
|
+
"title": "Drop-off Date Attribute",
|
|
2089
|
+
"description": "Drop-off date attribute with Unix timestamp",
|
|
1912
2090
|
"type": "object",
|
|
1913
2091
|
"properties": {
|
|
1914
2092
|
"trait_type": {
|
|
1915
2093
|
"type": "string",
|
|
1916
|
-
"const": "
|
|
2094
|
+
"const": "Drop-off Date"
|
|
1917
2095
|
},
|
|
1918
2096
|
"value": {
|
|
1919
|
-
"title": "
|
|
1920
|
-
"description": "Unix timestamp in milliseconds when the waste was
|
|
2097
|
+
"title": "Drop-off Date",
|
|
2098
|
+
"description": "Unix timestamp in milliseconds when the waste was dropped off at the destination",
|
|
1921
2099
|
"examples": [
|
|
1922
|
-
|
|
1923
|
-
1704067200000,
|
|
1924
|
-
1715270400000
|
|
2100
|
+
1733407367000
|
|
1925
2101
|
],
|
|
1926
2102
|
"type": "integer",
|
|
1927
2103
|
"exclusiveMinimum": 0,
|
|
@@ -1963,9 +2139,7 @@
|
|
|
1963
2139
|
"title": "Recycling Date",
|
|
1964
2140
|
"description": "Unix timestamp in milliseconds when the waste was recycled/processed",
|
|
1965
2141
|
"examples": [
|
|
1966
|
-
|
|
1967
|
-
1704153600000,
|
|
1968
|
-
1715356800000
|
|
2142
|
+
1733657567000
|
|
1969
2143
|
],
|
|
1970
2144
|
"type": "integer",
|
|
1971
2145
|
"exclusiveMinimum": 0,
|