@disclosureos/instruments 1.0.0 → 2.0.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.
@@ -0,0 +1,1706 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "kind": {
6
+ "type": "string",
7
+ "const": "acquisition_context"
8
+ },
9
+ "schemaVersion": {
10
+ "type": "string",
11
+ "const": "0.1.0"
12
+ },
13
+ "id": {
14
+ "type": "string",
15
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
16
+ },
17
+ "instruments": {
18
+ "type": "array",
19
+ "items": {
20
+ "type": "object",
21
+ "properties": {
22
+ "id": {
23
+ "type": "string",
24
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
25
+ },
26
+ "identity": {
27
+ "anyOf": [
28
+ {
29
+ "type": "object",
30
+ "properties": {
31
+ "state": {
32
+ "type": "string",
33
+ "const": "known"
34
+ },
35
+ "manufacturer": {
36
+ "type": "string",
37
+ "minLength": 1,
38
+ "pattern": "\\S"
39
+ },
40
+ "model": {
41
+ "type": "string",
42
+ "minLength": 1,
43
+ "pattern": "\\S"
44
+ },
45
+ "serialNumber": {
46
+ "type": "string",
47
+ "minLength": 1,
48
+ "pattern": "\\S"
49
+ }
50
+ },
51
+ "required": [
52
+ "state",
53
+ "manufacturer",
54
+ "model"
55
+ ],
56
+ "additionalProperties": false
57
+ },
58
+ {
59
+ "type": "object",
60
+ "properties": {
61
+ "state": {
62
+ "type": "string",
63
+ "const": "unknown"
64
+ },
65
+ "reason": {
66
+ "type": "string",
67
+ "minLength": 1,
68
+ "pattern": "\\S"
69
+ }
70
+ },
71
+ "required": [
72
+ "state",
73
+ "reason"
74
+ ],
75
+ "additionalProperties": false
76
+ }
77
+ ]
78
+ }
79
+ },
80
+ "required": [
81
+ "id",
82
+ "identity"
83
+ ],
84
+ "additionalProperties": false
85
+ }
86
+ },
87
+ "manifests": {
88
+ "type": "array",
89
+ "items": {
90
+ "type": "object",
91
+ "properties": {
92
+ "id": {
93
+ "type": "string",
94
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
95
+ },
96
+ "instrumentRef": {
97
+ "type": "string",
98
+ "pattern": "^instrument:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
99
+ },
100
+ "version": {
101
+ "type": "string",
102
+ "minLength": 1,
103
+ "pattern": "\\S"
104
+ },
105
+ "publishedAt": {
106
+ "type": "string",
107
+ "allOf": [
108
+ {
109
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
110
+ },
111
+ {
112
+ "pattern": "^(?!0000)"
113
+ },
114
+ {
115
+ "pattern": "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
116
+ },
117
+ {
118
+ "pattern": "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
119
+ }
120
+ ]
121
+ },
122
+ "artifact": {
123
+ "type": "object",
124
+ "properties": {
125
+ "digest": {
126
+ "type": "object",
127
+ "properties": {
128
+ "algorithm": {
129
+ "type": "string",
130
+ "const": "sha256"
131
+ },
132
+ "value": {
133
+ "type": "string",
134
+ "pattern": "^[a-f0-9]{64}(?![\\s\\S])"
135
+ }
136
+ },
137
+ "required": [
138
+ "algorithm",
139
+ "value"
140
+ ],
141
+ "additionalProperties": false
142
+ },
143
+ "mediaType": {
144
+ "type": "string",
145
+ "minLength": 1,
146
+ "pattern": "\\S"
147
+ },
148
+ "byteLength": {
149
+ "type": "integer",
150
+ "minimum": 0,
151
+ "maximum": 9007199254740991
152
+ },
153
+ "uri": {
154
+ "type": "string",
155
+ "format": "uri"
156
+ }
157
+ },
158
+ "required": [
159
+ "digest",
160
+ "mediaType",
161
+ "byteLength"
162
+ ],
163
+ "additionalProperties": false
164
+ },
165
+ "configuration": {
166
+ "type": "object",
167
+ "properties": {
168
+ "hardware": {
169
+ "anyOf": [
170
+ {
171
+ "type": "object",
172
+ "properties": {
173
+ "state": {
174
+ "type": "string",
175
+ "const": "known"
176
+ },
177
+ "value": {
178
+ "type": "string",
179
+ "minLength": 1,
180
+ "pattern": "\\S"
181
+ }
182
+ },
183
+ "required": [
184
+ "state",
185
+ "value"
186
+ ],
187
+ "additionalProperties": false
188
+ },
189
+ {
190
+ "type": "object",
191
+ "properties": {
192
+ "state": {
193
+ "type": "string",
194
+ "const": "unknown"
195
+ },
196
+ "reason": {
197
+ "type": "string",
198
+ "minLength": 1,
199
+ "pattern": "\\S"
200
+ }
201
+ },
202
+ "required": [
203
+ "state",
204
+ "reason"
205
+ ],
206
+ "additionalProperties": false
207
+ }
208
+ ]
209
+ },
210
+ "firmware": {
211
+ "anyOf": [
212
+ {
213
+ "type": "object",
214
+ "properties": {
215
+ "state": {
216
+ "type": "string",
217
+ "const": "known"
218
+ },
219
+ "value": {
220
+ "type": "string",
221
+ "minLength": 1,
222
+ "pattern": "\\S"
223
+ }
224
+ },
225
+ "required": [
226
+ "state",
227
+ "value"
228
+ ],
229
+ "additionalProperties": false
230
+ },
231
+ {
232
+ "type": "object",
233
+ "properties": {
234
+ "state": {
235
+ "type": "string",
236
+ "const": "unknown"
237
+ },
238
+ "reason": {
239
+ "type": "string",
240
+ "minLength": 1,
241
+ "pattern": "\\S"
242
+ }
243
+ },
244
+ "required": [
245
+ "state",
246
+ "reason"
247
+ ],
248
+ "additionalProperties": false
249
+ }
250
+ ]
251
+ }
252
+ },
253
+ "required": [
254
+ "hardware",
255
+ "firmware"
256
+ ],
257
+ "additionalProperties": false
258
+ },
259
+ "channels": {
260
+ "minItems": 1,
261
+ "type": "array",
262
+ "items": {
263
+ "type": "object",
264
+ "properties": {
265
+ "id": {
266
+ "type": "string",
267
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
268
+ },
269
+ "quantity": {
270
+ "type": "string",
271
+ "minLength": 1,
272
+ "pattern": "\\S"
273
+ },
274
+ "unit": {
275
+ "type": "string",
276
+ "minLength": 1,
277
+ "pattern": "\\S"
278
+ },
279
+ "sampling": {
280
+ "anyOf": [
281
+ {
282
+ "type": "object",
283
+ "properties": {
284
+ "state": {
285
+ "type": "string",
286
+ "const": "known"
287
+ },
288
+ "rateHz": {
289
+ "type": "number",
290
+ "exclusiveMinimum": 0
291
+ }
292
+ },
293
+ "required": [
294
+ "state",
295
+ "rateHz"
296
+ ],
297
+ "additionalProperties": false
298
+ },
299
+ {
300
+ "type": "object",
301
+ "properties": {
302
+ "state": {
303
+ "type": "string",
304
+ "const": "unknown"
305
+ },
306
+ "reason": {
307
+ "type": "string",
308
+ "minLength": 1,
309
+ "pattern": "\\S"
310
+ }
311
+ },
312
+ "required": [
313
+ "state",
314
+ "reason"
315
+ ],
316
+ "additionalProperties": false
317
+ }
318
+ ]
319
+ }
320
+ },
321
+ "required": [
322
+ "id",
323
+ "quantity",
324
+ "unit",
325
+ "sampling"
326
+ ],
327
+ "additionalProperties": false
328
+ }
329
+ }
330
+ },
331
+ "required": [
332
+ "id",
333
+ "instrumentRef",
334
+ "version",
335
+ "publishedAt",
336
+ "artifact",
337
+ "configuration",
338
+ "channels"
339
+ ],
340
+ "additionalProperties": false
341
+ }
342
+ },
343
+ "deployments": {
344
+ "type": "array",
345
+ "items": {
346
+ "type": "object",
347
+ "properties": {
348
+ "id": {
349
+ "type": "string",
350
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
351
+ },
352
+ "instrumentRef": {
353
+ "type": "string",
354
+ "pattern": "^instrument:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
355
+ },
356
+ "manifest": {
357
+ "anyOf": [
358
+ {
359
+ "type": "object",
360
+ "properties": {
361
+ "state": {
362
+ "type": "string",
363
+ "const": "pinned"
364
+ },
365
+ "ref": {
366
+ "type": "string",
367
+ "pattern": "^manifest:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
368
+ }
369
+ },
370
+ "required": [
371
+ "state",
372
+ "ref"
373
+ ],
374
+ "additionalProperties": false
375
+ },
376
+ {
377
+ "type": "object",
378
+ "properties": {
379
+ "state": {
380
+ "type": "string",
381
+ "const": "unresolved"
382
+ },
383
+ "reason": {
384
+ "type": "string",
385
+ "minLength": 1,
386
+ "pattern": "\\S"
387
+ },
388
+ "legacyRef": {
389
+ "type": "string",
390
+ "minLength": 1,
391
+ "pattern": "\\S"
392
+ }
393
+ },
394
+ "required": [
395
+ "state",
396
+ "reason"
397
+ ],
398
+ "additionalProperties": false
399
+ }
400
+ ]
401
+ },
402
+ "period": {
403
+ "anyOf": [
404
+ {
405
+ "type": "object",
406
+ "properties": {
407
+ "state": {
408
+ "type": "string",
409
+ "const": "known"
410
+ },
411
+ "start": {
412
+ "type": "string",
413
+ "allOf": [
414
+ {
415
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
416
+ },
417
+ {
418
+ "pattern": "^(?!0000)"
419
+ },
420
+ {
421
+ "pattern": "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
422
+ },
423
+ {
424
+ "pattern": "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
425
+ }
426
+ ]
427
+ },
428
+ "end": {
429
+ "type": "string",
430
+ "allOf": [
431
+ {
432
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
433
+ },
434
+ {
435
+ "pattern": "^(?!0000)"
436
+ },
437
+ {
438
+ "pattern": "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
439
+ },
440
+ {
441
+ "pattern": "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
442
+ }
443
+ ]
444
+ },
445
+ "timeScale": {
446
+ "type": "string",
447
+ "const": "UTC"
448
+ }
449
+ },
450
+ "required": [
451
+ "state",
452
+ "start",
453
+ "end",
454
+ "timeScale"
455
+ ],
456
+ "additionalProperties": false
457
+ },
458
+ {
459
+ "type": "object",
460
+ "properties": {
461
+ "state": {
462
+ "type": "string",
463
+ "const": "unknown"
464
+ },
465
+ "reason": {
466
+ "type": "string",
467
+ "minLength": 1,
468
+ "pattern": "\\S"
469
+ }
470
+ },
471
+ "required": [
472
+ "state",
473
+ "reason"
474
+ ],
475
+ "additionalProperties": false
476
+ }
477
+ ]
478
+ },
479
+ "site": {
480
+ "anyOf": [
481
+ {
482
+ "type": "object",
483
+ "properties": {
484
+ "state": {
485
+ "type": "string",
486
+ "const": "known"
487
+ },
488
+ "value": {
489
+ "type": "string",
490
+ "minLength": 1,
491
+ "pattern": "\\S"
492
+ }
493
+ },
494
+ "required": [
495
+ "state",
496
+ "value"
497
+ ],
498
+ "additionalProperties": false
499
+ },
500
+ {
501
+ "type": "object",
502
+ "properties": {
503
+ "state": {
504
+ "type": "string",
505
+ "const": "unknown"
506
+ },
507
+ "reason": {
508
+ "type": "string",
509
+ "minLength": 1,
510
+ "pattern": "\\S"
511
+ }
512
+ },
513
+ "required": [
514
+ "state",
515
+ "reason"
516
+ ],
517
+ "additionalProperties": false
518
+ }
519
+ ]
520
+ }
521
+ },
522
+ "required": [
523
+ "id",
524
+ "instrumentRef",
525
+ "manifest",
526
+ "period",
527
+ "site"
528
+ ],
529
+ "additionalProperties": false
530
+ }
531
+ },
532
+ "calibrations": {
533
+ "type": "array",
534
+ "items": {
535
+ "type": "object",
536
+ "properties": {
537
+ "id": {
538
+ "type": "string",
539
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
540
+ },
541
+ "instrumentRef": {
542
+ "type": "string",
543
+ "pattern": "^instrument:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
544
+ },
545
+ "manifestRef": {
546
+ "type": "string",
547
+ "pattern": "^manifest:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
548
+ },
549
+ "channelId": {
550
+ "type": "string",
551
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
552
+ },
553
+ "performedAt": {
554
+ "anyOf": [
555
+ {
556
+ "type": "object",
557
+ "properties": {
558
+ "state": {
559
+ "type": "string",
560
+ "const": "known"
561
+ },
562
+ "value": {
563
+ "type": "string",
564
+ "allOf": [
565
+ {
566
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
567
+ },
568
+ {
569
+ "pattern": "^(?!0000)"
570
+ },
571
+ {
572
+ "pattern": "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
573
+ },
574
+ {
575
+ "pattern": "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
576
+ }
577
+ ]
578
+ }
579
+ },
580
+ "required": [
581
+ "state",
582
+ "value"
583
+ ],
584
+ "additionalProperties": false
585
+ },
586
+ {
587
+ "type": "object",
588
+ "properties": {
589
+ "state": {
590
+ "type": "string",
591
+ "const": "unknown"
592
+ },
593
+ "reason": {
594
+ "type": "string",
595
+ "minLength": 1,
596
+ "pattern": "\\S"
597
+ }
598
+ },
599
+ "required": [
600
+ "state",
601
+ "reason"
602
+ ],
603
+ "additionalProperties": false
604
+ }
605
+ ]
606
+ },
607
+ "validity": {
608
+ "anyOf": [
609
+ {
610
+ "type": "object",
611
+ "properties": {
612
+ "state": {
613
+ "type": "string",
614
+ "const": "known"
615
+ },
616
+ "start": {
617
+ "type": "string",
618
+ "allOf": [
619
+ {
620
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
621
+ },
622
+ {
623
+ "pattern": "^(?!0000)"
624
+ },
625
+ {
626
+ "pattern": "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
627
+ },
628
+ {
629
+ "pattern": "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
630
+ }
631
+ ]
632
+ },
633
+ "end": {
634
+ "type": "string",
635
+ "allOf": [
636
+ {
637
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
638
+ },
639
+ {
640
+ "pattern": "^(?!0000)"
641
+ },
642
+ {
643
+ "pattern": "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
644
+ },
645
+ {
646
+ "pattern": "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
647
+ }
648
+ ]
649
+ },
650
+ "timeScale": {
651
+ "type": "string",
652
+ "const": "UTC"
653
+ }
654
+ },
655
+ "required": [
656
+ "state",
657
+ "start",
658
+ "end",
659
+ "timeScale"
660
+ ],
661
+ "additionalProperties": false
662
+ },
663
+ {
664
+ "type": "object",
665
+ "properties": {
666
+ "state": {
667
+ "type": "string",
668
+ "const": "unknown"
669
+ },
670
+ "reason": {
671
+ "type": "string",
672
+ "minLength": 1,
673
+ "pattern": "\\S"
674
+ }
675
+ },
676
+ "required": [
677
+ "state",
678
+ "reason"
679
+ ],
680
+ "additionalProperties": false
681
+ }
682
+ ]
683
+ },
684
+ "method": {
685
+ "anyOf": [
686
+ {
687
+ "type": "object",
688
+ "properties": {
689
+ "state": {
690
+ "type": "string",
691
+ "const": "known"
692
+ },
693
+ "id": {
694
+ "type": "string",
695
+ "minLength": 1,
696
+ "pattern": "\\S"
697
+ },
698
+ "version": {
699
+ "type": "string",
700
+ "minLength": 1,
701
+ "pattern": "\\S"
702
+ },
703
+ "description": {
704
+ "type": "string",
705
+ "minLength": 1,
706
+ "pattern": "\\S"
707
+ }
708
+ },
709
+ "required": [
710
+ "state",
711
+ "id",
712
+ "version",
713
+ "description"
714
+ ],
715
+ "additionalProperties": false
716
+ },
717
+ {
718
+ "type": "object",
719
+ "properties": {
720
+ "state": {
721
+ "type": "string",
722
+ "const": "unknown"
723
+ },
724
+ "reason": {
725
+ "type": "string",
726
+ "minLength": 1,
727
+ "pattern": "\\S"
728
+ }
729
+ },
730
+ "required": [
731
+ "state",
732
+ "reason"
733
+ ],
734
+ "additionalProperties": false
735
+ }
736
+ ]
737
+ },
738
+ "report": {
739
+ "anyOf": [
740
+ {
741
+ "type": "object",
742
+ "properties": {
743
+ "state": {
744
+ "type": "string",
745
+ "const": "known"
746
+ },
747
+ "artifact": {
748
+ "type": "object",
749
+ "properties": {
750
+ "digest": {
751
+ "type": "object",
752
+ "properties": {
753
+ "algorithm": {
754
+ "type": "string",
755
+ "const": "sha256"
756
+ },
757
+ "value": {
758
+ "type": "string",
759
+ "pattern": "^[a-f0-9]{64}(?![\\s\\S])"
760
+ }
761
+ },
762
+ "required": [
763
+ "algorithm",
764
+ "value"
765
+ ],
766
+ "additionalProperties": false
767
+ },
768
+ "mediaType": {
769
+ "type": "string",
770
+ "minLength": 1,
771
+ "pattern": "\\S"
772
+ },
773
+ "byteLength": {
774
+ "type": "integer",
775
+ "minimum": 0,
776
+ "maximum": 9007199254740991
777
+ },
778
+ "uri": {
779
+ "type": "string",
780
+ "format": "uri"
781
+ }
782
+ },
783
+ "required": [
784
+ "digest",
785
+ "mediaType",
786
+ "byteLength"
787
+ ],
788
+ "additionalProperties": false
789
+ }
790
+ },
791
+ "required": [
792
+ "state",
793
+ "artifact"
794
+ ],
795
+ "additionalProperties": false
796
+ },
797
+ {
798
+ "type": "object",
799
+ "properties": {
800
+ "state": {
801
+ "type": "string",
802
+ "const": "unknown"
803
+ },
804
+ "reason": {
805
+ "type": "string",
806
+ "minLength": 1,
807
+ "pattern": "\\S"
808
+ }
809
+ },
810
+ "required": [
811
+ "state",
812
+ "reason"
813
+ ],
814
+ "additionalProperties": false
815
+ }
816
+ ]
817
+ },
818
+ "uncertainty": {
819
+ "anyOf": [
820
+ {
821
+ "type": "object",
822
+ "properties": {
823
+ "kind": {
824
+ "type": "string",
825
+ "const": "unknown"
826
+ },
827
+ "reason": {
828
+ "type": "string",
829
+ "minLength": 1,
830
+ "pattern": "\\S"
831
+ }
832
+ },
833
+ "required": [
834
+ "kind",
835
+ "reason"
836
+ ],
837
+ "additionalProperties": false
838
+ },
839
+ {
840
+ "type": "object",
841
+ "properties": {
842
+ "kind": {
843
+ "type": "string",
844
+ "const": "standard"
845
+ },
846
+ "magnitude": {
847
+ "type": "number",
848
+ "minimum": 0
849
+ },
850
+ "unit": {
851
+ "type": "string",
852
+ "minLength": 1,
853
+ "pattern": "\\S"
854
+ }
855
+ },
856
+ "required": [
857
+ "kind",
858
+ "magnitude",
859
+ "unit"
860
+ ],
861
+ "additionalProperties": false
862
+ },
863
+ {
864
+ "type": "object",
865
+ "properties": {
866
+ "kind": {
867
+ "type": "string",
868
+ "const": "bound"
869
+ },
870
+ "magnitude": {
871
+ "type": "number",
872
+ "minimum": 0
873
+ },
874
+ "unit": {
875
+ "type": "string",
876
+ "minLength": 1,
877
+ "pattern": "\\S"
878
+ }
879
+ },
880
+ "required": [
881
+ "kind",
882
+ "magnitude",
883
+ "unit"
884
+ ],
885
+ "additionalProperties": false
886
+ },
887
+ {
888
+ "type": "object",
889
+ "properties": {
890
+ "kind": {
891
+ "type": "string",
892
+ "const": "expanded"
893
+ },
894
+ "magnitude": {
895
+ "type": "number",
896
+ "minimum": 0
897
+ },
898
+ "unit": {
899
+ "type": "string",
900
+ "minLength": 1,
901
+ "pattern": "\\S"
902
+ },
903
+ "coverageFactor": {
904
+ "type": "number",
905
+ "exclusiveMinimum": 0
906
+ },
907
+ "coverageProbability": {
908
+ "type": "number",
909
+ "exclusiveMinimum": 0,
910
+ "maximum": 1
911
+ }
912
+ },
913
+ "required": [
914
+ "kind",
915
+ "magnitude",
916
+ "unit",
917
+ "coverageFactor"
918
+ ],
919
+ "additionalProperties": false
920
+ }
921
+ ]
922
+ },
923
+ "review": {
924
+ "anyOf": [
925
+ {
926
+ "type": "object",
927
+ "properties": {
928
+ "state": {
929
+ "type": "string",
930
+ "const": "unreviewed"
931
+ }
932
+ },
933
+ "required": [
934
+ "state"
935
+ ],
936
+ "additionalProperties": false
937
+ },
938
+ {
939
+ "type": "object",
940
+ "properties": {
941
+ "state": {
942
+ "type": "string",
943
+ "const": "unknown"
944
+ },
945
+ "reason": {
946
+ "type": "string",
947
+ "minLength": 1,
948
+ "pattern": "\\S"
949
+ }
950
+ },
951
+ "required": [
952
+ "state",
953
+ "reason"
954
+ ],
955
+ "additionalProperties": false
956
+ },
957
+ {
958
+ "type": "object",
959
+ "properties": {
960
+ "state": {
961
+ "type": "string",
962
+ "const": "reviewed"
963
+ },
964
+ "reviewedBy": {
965
+ "type": "string",
966
+ "minLength": 1,
967
+ "pattern": "\\S"
968
+ },
969
+ "reviewedAt": {
970
+ "type": "string",
971
+ "allOf": [
972
+ {
973
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
974
+ },
975
+ {
976
+ "pattern": "^(?!0000)"
977
+ },
978
+ {
979
+ "pattern": "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
980
+ },
981
+ {
982
+ "pattern": "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
983
+ }
984
+ ]
985
+ },
986
+ "outcome": {
987
+ "type": "string",
988
+ "enum": [
989
+ "accepted",
990
+ "rejected",
991
+ "inconclusive"
992
+ ]
993
+ },
994
+ "report": {
995
+ "type": "object",
996
+ "properties": {
997
+ "digest": {
998
+ "type": "object",
999
+ "properties": {
1000
+ "algorithm": {
1001
+ "type": "string",
1002
+ "const": "sha256"
1003
+ },
1004
+ "value": {
1005
+ "type": "string",
1006
+ "pattern": "^[a-f0-9]{64}(?![\\s\\S])"
1007
+ }
1008
+ },
1009
+ "required": [
1010
+ "algorithm",
1011
+ "value"
1012
+ ],
1013
+ "additionalProperties": false
1014
+ },
1015
+ "mediaType": {
1016
+ "type": "string",
1017
+ "minLength": 1,
1018
+ "pattern": "\\S"
1019
+ },
1020
+ "byteLength": {
1021
+ "type": "integer",
1022
+ "minimum": 0,
1023
+ "maximum": 9007199254740991
1024
+ },
1025
+ "uri": {
1026
+ "type": "string",
1027
+ "format": "uri"
1028
+ }
1029
+ },
1030
+ "required": [
1031
+ "digest",
1032
+ "mediaType",
1033
+ "byteLength"
1034
+ ],
1035
+ "additionalProperties": false
1036
+ }
1037
+ },
1038
+ "required": [
1039
+ "state",
1040
+ "reviewedBy",
1041
+ "reviewedAt",
1042
+ "outcome",
1043
+ "report"
1044
+ ],
1045
+ "additionalProperties": false
1046
+ }
1047
+ ]
1048
+ }
1049
+ },
1050
+ "required": [
1051
+ "id",
1052
+ "instrumentRef",
1053
+ "manifestRef",
1054
+ "channelId",
1055
+ "performedAt",
1056
+ "validity",
1057
+ "method",
1058
+ "report",
1059
+ "uncertainty",
1060
+ "review"
1061
+ ],
1062
+ "additionalProperties": false
1063
+ }
1064
+ },
1065
+ "acquisitions": {
1066
+ "type": "array",
1067
+ "items": {
1068
+ "type": "object",
1069
+ "properties": {
1070
+ "id": {
1071
+ "type": "string",
1072
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
1073
+ },
1074
+ "instrumentRef": {
1075
+ "type": "string",
1076
+ "pattern": "^instrument:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
1077
+ },
1078
+ "manifest": {
1079
+ "anyOf": [
1080
+ {
1081
+ "type": "object",
1082
+ "properties": {
1083
+ "state": {
1084
+ "type": "string",
1085
+ "const": "pinned"
1086
+ },
1087
+ "ref": {
1088
+ "type": "string",
1089
+ "pattern": "^manifest:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
1090
+ }
1091
+ },
1092
+ "required": [
1093
+ "state",
1094
+ "ref"
1095
+ ],
1096
+ "additionalProperties": false
1097
+ },
1098
+ {
1099
+ "type": "object",
1100
+ "properties": {
1101
+ "state": {
1102
+ "type": "string",
1103
+ "const": "unresolved"
1104
+ },
1105
+ "reason": {
1106
+ "type": "string",
1107
+ "minLength": 1,
1108
+ "pattern": "\\S"
1109
+ },
1110
+ "legacyRef": {
1111
+ "type": "string",
1112
+ "minLength": 1,
1113
+ "pattern": "\\S"
1114
+ }
1115
+ },
1116
+ "required": [
1117
+ "state",
1118
+ "reason"
1119
+ ],
1120
+ "additionalProperties": false
1121
+ }
1122
+ ]
1123
+ },
1124
+ "deployment": {
1125
+ "anyOf": [
1126
+ {
1127
+ "type": "object",
1128
+ "properties": {
1129
+ "state": {
1130
+ "type": "string",
1131
+ "const": "pinned"
1132
+ },
1133
+ "ref": {
1134
+ "type": "string",
1135
+ "pattern": "^deployment:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
1136
+ }
1137
+ },
1138
+ "required": [
1139
+ "state",
1140
+ "ref"
1141
+ ],
1142
+ "additionalProperties": false
1143
+ },
1144
+ {
1145
+ "type": "object",
1146
+ "properties": {
1147
+ "state": {
1148
+ "type": "string",
1149
+ "const": "unresolved"
1150
+ },
1151
+ "reason": {
1152
+ "type": "string",
1153
+ "minLength": 1,
1154
+ "pattern": "\\S"
1155
+ },
1156
+ "legacyRef": {
1157
+ "type": "string",
1158
+ "minLength": 1,
1159
+ "pattern": "\\S"
1160
+ }
1161
+ },
1162
+ "required": [
1163
+ "state",
1164
+ "reason"
1165
+ ],
1166
+ "additionalProperties": false
1167
+ }
1168
+ ]
1169
+ },
1170
+ "time": {
1171
+ "anyOf": [
1172
+ {
1173
+ "type": "object",
1174
+ "properties": {
1175
+ "state": {
1176
+ "type": "string",
1177
+ "const": "known"
1178
+ },
1179
+ "kind": {
1180
+ "type": "string",
1181
+ "const": "instant"
1182
+ },
1183
+ "value": {
1184
+ "type": "string",
1185
+ "allOf": [
1186
+ {
1187
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1188
+ },
1189
+ {
1190
+ "pattern": "^(?!0000)"
1191
+ },
1192
+ {
1193
+ "pattern": "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
1194
+ },
1195
+ {
1196
+ "pattern": "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
1197
+ }
1198
+ ]
1199
+ },
1200
+ "timeScale": {
1201
+ "type": "string",
1202
+ "const": "UTC"
1203
+ }
1204
+ },
1205
+ "required": [
1206
+ "state",
1207
+ "kind",
1208
+ "value",
1209
+ "timeScale"
1210
+ ],
1211
+ "additionalProperties": false
1212
+ },
1213
+ {
1214
+ "type": "object",
1215
+ "properties": {
1216
+ "state": {
1217
+ "type": "string",
1218
+ "const": "known"
1219
+ },
1220
+ "start": {
1221
+ "type": "string",
1222
+ "allOf": [
1223
+ {
1224
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1225
+ },
1226
+ {
1227
+ "pattern": "^(?!0000)"
1228
+ },
1229
+ {
1230
+ "pattern": "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
1231
+ },
1232
+ {
1233
+ "pattern": "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
1234
+ }
1235
+ ]
1236
+ },
1237
+ "end": {
1238
+ "type": "string",
1239
+ "allOf": [
1240
+ {
1241
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1242
+ },
1243
+ {
1244
+ "pattern": "^(?!0000)"
1245
+ },
1246
+ {
1247
+ "pattern": "T[0-9]{2}:[0-9]{2}:[0-9]{2}"
1248
+ },
1249
+ {
1250
+ "pattern": "(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])"
1251
+ }
1252
+ ]
1253
+ },
1254
+ "timeScale": {
1255
+ "type": "string",
1256
+ "const": "UTC"
1257
+ },
1258
+ "kind": {
1259
+ "type": "string",
1260
+ "const": "interval"
1261
+ }
1262
+ },
1263
+ "required": [
1264
+ "state",
1265
+ "start",
1266
+ "end",
1267
+ "timeScale",
1268
+ "kind"
1269
+ ],
1270
+ "additionalProperties": false
1271
+ },
1272
+ {
1273
+ "type": "object",
1274
+ "properties": {
1275
+ "state": {
1276
+ "type": "string",
1277
+ "const": "unknown"
1278
+ },
1279
+ "reason": {
1280
+ "type": "string",
1281
+ "minLength": 1,
1282
+ "pattern": "\\S"
1283
+ }
1284
+ },
1285
+ "required": [
1286
+ "state",
1287
+ "reason"
1288
+ ],
1289
+ "additionalProperties": false
1290
+ }
1291
+ ]
1292
+ },
1293
+ "classification": {
1294
+ "type": "string",
1295
+ "enum": [
1296
+ "background",
1297
+ "known_control",
1298
+ "candidate",
1299
+ "other",
1300
+ "unknown"
1301
+ ]
1302
+ },
1303
+ "clock": {
1304
+ "type": "object",
1305
+ "properties": {
1306
+ "source": {
1307
+ "anyOf": [
1308
+ {
1309
+ "type": "object",
1310
+ "properties": {
1311
+ "state": {
1312
+ "type": "string",
1313
+ "const": "known"
1314
+ },
1315
+ "value": {
1316
+ "type": "string",
1317
+ "minLength": 1,
1318
+ "pattern": "\\S"
1319
+ }
1320
+ },
1321
+ "required": [
1322
+ "state",
1323
+ "value"
1324
+ ],
1325
+ "additionalProperties": false
1326
+ },
1327
+ {
1328
+ "type": "object",
1329
+ "properties": {
1330
+ "state": {
1331
+ "type": "string",
1332
+ "const": "unknown"
1333
+ },
1334
+ "reason": {
1335
+ "type": "string",
1336
+ "minLength": 1,
1337
+ "pattern": "\\S"
1338
+ }
1339
+ },
1340
+ "required": [
1341
+ "state",
1342
+ "reason"
1343
+ ],
1344
+ "additionalProperties": false
1345
+ }
1346
+ ]
1347
+ },
1348
+ "synchronization": {
1349
+ "anyOf": [
1350
+ {
1351
+ "type": "object",
1352
+ "properties": {
1353
+ "state": {
1354
+ "type": "string",
1355
+ "const": "known"
1356
+ },
1357
+ "value": {
1358
+ "type": "string",
1359
+ "minLength": 1,
1360
+ "pattern": "\\S"
1361
+ }
1362
+ },
1363
+ "required": [
1364
+ "state",
1365
+ "value"
1366
+ ],
1367
+ "additionalProperties": false
1368
+ },
1369
+ {
1370
+ "type": "object",
1371
+ "properties": {
1372
+ "state": {
1373
+ "type": "string",
1374
+ "const": "unknown"
1375
+ },
1376
+ "reason": {
1377
+ "type": "string",
1378
+ "minLength": 1,
1379
+ "pattern": "\\S"
1380
+ }
1381
+ },
1382
+ "required": [
1383
+ "state",
1384
+ "reason"
1385
+ ],
1386
+ "additionalProperties": false
1387
+ }
1388
+ ]
1389
+ },
1390
+ "resolution": {
1391
+ "anyOf": [
1392
+ {
1393
+ "type": "object",
1394
+ "properties": {
1395
+ "state": {
1396
+ "type": "string",
1397
+ "const": "known"
1398
+ },
1399
+ "magnitude": {
1400
+ "type": "number",
1401
+ "exclusiveMinimum": 0
1402
+ },
1403
+ "unit": {
1404
+ "type": "string",
1405
+ "enum": [
1406
+ "s",
1407
+ "ms",
1408
+ "us",
1409
+ "ns"
1410
+ ]
1411
+ }
1412
+ },
1413
+ "required": [
1414
+ "state",
1415
+ "magnitude",
1416
+ "unit"
1417
+ ],
1418
+ "additionalProperties": false
1419
+ },
1420
+ {
1421
+ "type": "object",
1422
+ "properties": {
1423
+ "state": {
1424
+ "type": "string",
1425
+ "const": "unknown"
1426
+ },
1427
+ "reason": {
1428
+ "type": "string",
1429
+ "minLength": 1,
1430
+ "pattern": "\\S"
1431
+ }
1432
+ },
1433
+ "required": [
1434
+ "state",
1435
+ "reason"
1436
+ ],
1437
+ "additionalProperties": false
1438
+ }
1439
+ ]
1440
+ },
1441
+ "uncertainty": {
1442
+ "anyOf": [
1443
+ {
1444
+ "type": "object",
1445
+ "properties": {
1446
+ "state": {
1447
+ "type": "string",
1448
+ "const": "known"
1449
+ },
1450
+ "magnitude": {
1451
+ "type": "number",
1452
+ "minimum": 0
1453
+ },
1454
+ "unit": {
1455
+ "type": "string",
1456
+ "enum": [
1457
+ "s",
1458
+ "ms",
1459
+ "us",
1460
+ "ns"
1461
+ ]
1462
+ }
1463
+ },
1464
+ "required": [
1465
+ "state",
1466
+ "magnitude",
1467
+ "unit"
1468
+ ],
1469
+ "additionalProperties": false
1470
+ },
1471
+ {
1472
+ "type": "object",
1473
+ "properties": {
1474
+ "state": {
1475
+ "type": "string",
1476
+ "const": "unknown"
1477
+ },
1478
+ "reason": {
1479
+ "type": "string",
1480
+ "minLength": 1,
1481
+ "pattern": "\\S"
1482
+ }
1483
+ },
1484
+ "required": [
1485
+ "state",
1486
+ "reason"
1487
+ ],
1488
+ "additionalProperties": false
1489
+ }
1490
+ ]
1491
+ }
1492
+ },
1493
+ "required": [
1494
+ "source",
1495
+ "synchronization",
1496
+ "resolution",
1497
+ "uncertainty"
1498
+ ],
1499
+ "additionalProperties": false
1500
+ },
1501
+ "channels": {
1502
+ "minItems": 1,
1503
+ "type": "array",
1504
+ "items": {
1505
+ "type": "object",
1506
+ "properties": {
1507
+ "channelId": {
1508
+ "type": "string",
1509
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
1510
+ },
1511
+ "calibration": {
1512
+ "anyOf": [
1513
+ {
1514
+ "type": "object",
1515
+ "properties": {
1516
+ "state": {
1517
+ "type": "string",
1518
+ "const": "pinned"
1519
+ },
1520
+ "ref": {
1521
+ "type": "string",
1522
+ "pattern": "^calibration:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
1523
+ }
1524
+ },
1525
+ "required": [
1526
+ "state",
1527
+ "ref"
1528
+ ],
1529
+ "additionalProperties": false
1530
+ },
1531
+ {
1532
+ "type": "object",
1533
+ "properties": {
1534
+ "state": {
1535
+ "type": "string",
1536
+ "const": "unresolved"
1537
+ },
1538
+ "reason": {
1539
+ "type": "string",
1540
+ "minLength": 1,
1541
+ "pattern": "\\S"
1542
+ },
1543
+ "legacyRef": {
1544
+ "type": "string",
1545
+ "minLength": 1,
1546
+ "pattern": "\\S"
1547
+ }
1548
+ },
1549
+ "required": [
1550
+ "state",
1551
+ "reason"
1552
+ ],
1553
+ "additionalProperties": false
1554
+ }
1555
+ ]
1556
+ }
1557
+ },
1558
+ "required": [
1559
+ "channelId",
1560
+ "calibration"
1561
+ ],
1562
+ "additionalProperties": false
1563
+ }
1564
+ }
1565
+ },
1566
+ "required": [
1567
+ "id",
1568
+ "instrumentRef",
1569
+ "manifest",
1570
+ "deployment",
1571
+ "time",
1572
+ "classification",
1573
+ "clock",
1574
+ "channels"
1575
+ ],
1576
+ "additionalProperties": false
1577
+ }
1578
+ },
1579
+ "products": {
1580
+ "type": "array",
1581
+ "items": {
1582
+ "type": "object",
1583
+ "properties": {
1584
+ "id": {
1585
+ "type": "string",
1586
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
1587
+ },
1588
+ "acquisitionRef": {
1589
+ "type": "string",
1590
+ "pattern": "^acquisition:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])"
1591
+ },
1592
+ "kind": {
1593
+ "type": "string",
1594
+ "const": "raw"
1595
+ },
1596
+ "artifact": {
1597
+ "type": "object",
1598
+ "properties": {
1599
+ "digest": {
1600
+ "type": "object",
1601
+ "properties": {
1602
+ "algorithm": {
1603
+ "type": "string",
1604
+ "const": "sha256"
1605
+ },
1606
+ "value": {
1607
+ "type": "string",
1608
+ "pattern": "^[a-f0-9]{64}(?![\\s\\S])"
1609
+ }
1610
+ },
1611
+ "required": [
1612
+ "algorithm",
1613
+ "value"
1614
+ ],
1615
+ "additionalProperties": false
1616
+ },
1617
+ "mediaType": {
1618
+ "type": "string",
1619
+ "minLength": 1,
1620
+ "pattern": "\\S"
1621
+ },
1622
+ "byteLength": {
1623
+ "type": "integer",
1624
+ "minimum": 0,
1625
+ "maximum": 9007199254740991
1626
+ },
1627
+ "uri": {
1628
+ "type": "string",
1629
+ "format": "uri"
1630
+ }
1631
+ },
1632
+ "required": [
1633
+ "digest",
1634
+ "mediaType",
1635
+ "byteLength"
1636
+ ],
1637
+ "additionalProperties": false
1638
+ }
1639
+ },
1640
+ "required": [
1641
+ "id",
1642
+ "acquisitionRef",
1643
+ "kind",
1644
+ "artifact"
1645
+ ],
1646
+ "additionalProperties": false
1647
+ }
1648
+ },
1649
+ "extensions": {
1650
+ "type": "object",
1651
+ "propertyNames": {
1652
+ "type": "string",
1653
+ "pattern": "^[a-z][a-z0-9_-]*(?:\\.[a-z0-9_-]+)+(?![\\s\\S])"
1654
+ },
1655
+ "additionalProperties": {
1656
+ "$ref": "#/$defs/__schema0"
1657
+ }
1658
+ }
1659
+ },
1660
+ "required": [
1661
+ "kind",
1662
+ "schemaVersion",
1663
+ "id",
1664
+ "instruments",
1665
+ "manifests",
1666
+ "deployments",
1667
+ "calibrations",
1668
+ "acquisitions",
1669
+ "products"
1670
+ ],
1671
+ "additionalProperties": false,
1672
+ "$defs": {
1673
+ "__schema0": {
1674
+ "anyOf": [
1675
+ {
1676
+ "type": "string"
1677
+ },
1678
+ {
1679
+ "type": "number"
1680
+ },
1681
+ {
1682
+ "type": "boolean"
1683
+ },
1684
+ {
1685
+ "type": "null"
1686
+ },
1687
+ {
1688
+ "type": "array",
1689
+ "items": {
1690
+ "$ref": "#/$defs/__schema0"
1691
+ }
1692
+ },
1693
+ {
1694
+ "type": "object",
1695
+ "propertyNames": {
1696
+ "type": "string"
1697
+ },
1698
+ "additionalProperties": {
1699
+ "$ref": "#/$defs/__schema0"
1700
+ }
1701
+ }
1702
+ ]
1703
+ }
1704
+ },
1705
+ "$id": "urn:disclosureos:experimental:acquisition-context:0.1.0"
1706
+ }