umf-codegen 0.10.8__py3-none-any.whl

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,1907 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "urn:umf:core:semantic-type-reference:1.0.0",
4
+ "description": "UMF language semanticType",
5
+ "type": "object",
6
+ "required": [
7
+ "vocabulary",
8
+ "version",
9
+ "term"
10
+ ],
11
+ "properties": {
12
+ "vocabulary": {
13
+ "type": "string",
14
+ "minLength": 1
15
+ },
16
+ "version": {
17
+ "type": "string",
18
+ "minLength": 1
19
+ },
20
+ "term": {
21
+ "type": "string",
22
+ "minLength": 1
23
+ }
24
+ },
25
+ "$defs": {
26
+ "document": {
27
+ "description": "A Document groups Modules and declares the vocabularies used by its extension content. Its identifier names the complete metadata envelope.",
28
+ "type": "object",
29
+ "required": [
30
+ "umf",
31
+ "id",
32
+ "vocabularies",
33
+ "modules"
34
+ ],
35
+ "properties": {
36
+ "umf": {
37
+ "const": "0.10.0"
38
+ },
39
+ "id": {
40
+ "$ref": "#/$defs/id"
41
+ },
42
+ "vocabularies": {
43
+ "type": "object",
44
+ "additionalProperties": {
45
+ "type": "object",
46
+ "required": [
47
+ "version"
48
+ ],
49
+ "properties": {
50
+ "version": {
51
+ "$ref": "#/$defs/version"
52
+ }
53
+ }
54
+ },
55
+ "propertyNames": {
56
+ "$ref": "#/$defs/id"
57
+ }
58
+ },
59
+ "modules": {
60
+ "type": "array",
61
+ "items": {
62
+ "$ref": "#/$defs/module"
63
+ }
64
+ },
65
+ "extensions": {
66
+ "$ref": "#/$defs/extensions"
67
+ },
68
+ "title": {
69
+ "type": "string"
70
+ },
71
+ "aliases": {
72
+ "type": "array",
73
+ "items": {
74
+ "type": "string",
75
+ "minLength": 1
76
+ },
77
+ "uniqueItems": true
78
+ }
79
+ }
80
+ },
81
+ "id": {
82
+ "description": "UMF language id",
83
+ "type": "string",
84
+ "minLength": 1
85
+ },
86
+ "version": {
87
+ "description": "UMF language version",
88
+ "type": "string",
89
+ "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$"
90
+ },
91
+ "knownScalarType": {
92
+ "description": "Value families; bits128 and uuid have intrinsic16-byte domains under umf-128/1. Native refinements remain attached.",
93
+ "enum": [
94
+ "boolean",
95
+ "integer",
96
+ "decimal",
97
+ "float",
98
+ "string",
99
+ "binary",
100
+ "date",
101
+ "time",
102
+ "timestamp",
103
+ "bits128",
104
+ "uuid"
105
+ ]
106
+ },
107
+ "scalarType": {
108
+ "description": "UMF language scalarType",
109
+ "anyOf": [
110
+ {
111
+ "$ref": "#/$defs/knownScalarType"
112
+ },
113
+ {
114
+ "description": "Unknown family retained with incomplete semantic validation.",
115
+ "allOf": [
116
+ {
117
+ "type": "string",
118
+ "minLength": 1
119
+ },
120
+ {
121
+ "not": {
122
+ "$ref": "#/$defs/knownScalarType"
123
+ }
124
+ }
125
+ ]
126
+ }
127
+ ]
128
+ },
129
+ "extensions": {
130
+ "description": "UMF language extensions",
131
+ "type": "object",
132
+ "properties": {},
133
+ "additionalProperties": true,
134
+ "propertyNames": {
135
+ "$ref": "#/$defs/id"
136
+ }
137
+ },
138
+ "reference": {
139
+ "description": "UMF language reference",
140
+ "type": "object",
141
+ "required": [
142
+ "role",
143
+ "module",
144
+ "element"
145
+ ],
146
+ "properties": {
147
+ "role": {
148
+ "$ref": "#/$defs/id"
149
+ },
150
+ "module": {
151
+ "$ref": "#/$defs/id"
152
+ },
153
+ "element": {
154
+ "$ref": "#/$defs/id"
155
+ }
156
+ }
157
+ },
158
+ "element": {
159
+ "description": "An Element describes a Field, Record or Group within a Module. References connect Elements without assuming a particular storage or compute implementation.",
160
+ "type": "object",
161
+ "required": [
162
+ "id",
163
+ "extensions"
164
+ ],
165
+ "properties": {
166
+ "id": {
167
+ "$ref": "#/$defs/id"
168
+ },
169
+ "name": {
170
+ "type": "string"
171
+ },
172
+ "description": {
173
+ "type": "string"
174
+ },
175
+ "scalarType": {
176
+ "description": "The Field's intrinsic value family. Native representations and external term meanings remain separate.",
177
+ "$ref": "#/$defs/scalarType"
178
+ },
179
+ "extensions": {
180
+ "$ref": "#/$defs/extensions"
181
+ },
182
+ "references": {
183
+ "type": "array",
184
+ "items": {
185
+ "$ref": "#/$defs/reference"
186
+ }
187
+ },
188
+ "kind": {
189
+ "description": "UMF role; unknown labels remain uninterpreted. Missing is unspecified, never inferred from scalarType.",
190
+ "type": "string",
191
+ "minLength": 1
192
+ },
193
+ "nullability": {
194
+ "description": "Ideal value availability. Unknown labels remain uninterpreted. Missing and unspecified assert no availability constraint. Native absence carriers require explicit bindings.",
195
+ "type": "string",
196
+ "minLength": 1
197
+ },
198
+ "cardinality": {
199
+ "description": "One ideal value, finite ordered sequence with duplicates allowed, finite exact string-key mapping with unique keys, or no assertion. Unknown labels remain uninterpreted.",
200
+ "type": "string",
201
+ "minLength": 1
202
+ },
203
+ "itemType": {
204
+ "description": "Identifies the Field that describes each array item or map value, using explicit Module and Element identifiers.",
205
+ "$ref": "#/$defs/itemType"
206
+ },
207
+ "facets": {
208
+ "description": "Constrains the values of a Field, including length, numeric width, precision, scale and range.",
209
+ "$ref": "#/$defs/facets"
210
+ },
211
+ "members": {
212
+ "description": "Lists the Elements explicitly contained by a Record or Group.",
213
+ "type": "array",
214
+ "items": {
215
+ "$ref": "#/$defs/keyFieldReference"
216
+ },
217
+ "uniqueItems": true
218
+ },
219
+ "keys": {
220
+ "description": "Declares named ordered Field tuples that identify values of a Record.",
221
+ "type": "array",
222
+ "items": {
223
+ "$ref": "#/$defs/key"
224
+ },
225
+ "minItems": 1
226
+ },
227
+ "title": {
228
+ "type": "string"
229
+ },
230
+ "aliases": {
231
+ "type": "array",
232
+ "items": {
233
+ "type": "string",
234
+ "minLength": 1
235
+ },
236
+ "uniqueItems": true
237
+ },
238
+ "examples": {
239
+ "type": "array",
240
+ "items": {
241
+ "$ref": "#/$defs/literal"
242
+ }
243
+ },
244
+ "allowedValues": {
245
+ "type": "array",
246
+ "items": {
247
+ "$ref": "#/$defs/literal"
248
+ },
249
+ "minItems": 1
250
+ },
251
+ "default": {
252
+ "type": "object",
253
+ "required": [
254
+ "value",
255
+ "on"
256
+ ],
257
+ "properties": {
258
+ "value": {
259
+ "$ref": "#/$defs/literal"
260
+ },
261
+ "on": {
262
+ "enum": [
263
+ "missing",
264
+ "null",
265
+ "missing-or-null"
266
+ ]
267
+ }
268
+ },
269
+ "additionalProperties": true
270
+ },
271
+ "semanticTypes": {
272
+ "type": "array",
273
+ "items": {
274
+ "$ref": "urn:umf:core:semantic-type-reference:1.0.0"
275
+ },
276
+ "minItems": 1
277
+ }
278
+ },
279
+ "allOf": [
280
+ {
281
+ "if": {
282
+ "type": "object",
283
+ "required": [
284
+ "kind"
285
+ ],
286
+ "properties": {
287
+ "kind": {
288
+ "enum": [
289
+ "record",
290
+ "group"
291
+ ]
292
+ }
293
+ }
294
+ },
295
+ "then": {
296
+ "type": "object",
297
+ "properties": {
298
+ "scalarType": false
299
+ }
300
+ }
301
+ },
302
+ {
303
+ "if": {
304
+ "type": "object",
305
+ "required": [
306
+ "nullability"
307
+ ],
308
+ "properties": {
309
+ "nullability": {}
310
+ }
311
+ },
312
+ "then": {
313
+ "type": "object",
314
+ "required": [
315
+ "kind"
316
+ ],
317
+ "properties": {
318
+ "kind": {
319
+ "const": "field"
320
+ }
321
+ }
322
+ }
323
+ },
324
+ {
325
+ "if": {
326
+ "type": "object",
327
+ "required": [
328
+ "cardinality"
329
+ ],
330
+ "properties": {
331
+ "cardinality": {}
332
+ }
333
+ },
334
+ "then": {
335
+ "type": "object",
336
+ "required": [
337
+ "kind"
338
+ ],
339
+ "properties": {
340
+ "kind": {
341
+ "const": "field"
342
+ }
343
+ }
344
+ }
345
+ },
346
+ {
347
+ "if": {
348
+ "type": "object",
349
+ "required": [
350
+ "cardinality"
351
+ ],
352
+ "properties": {
353
+ "cardinality": {
354
+ "enum": [
355
+ "array",
356
+ "map"
357
+ ]
358
+ }
359
+ }
360
+ },
361
+ "then": {
362
+ "not": {
363
+ "type": "object",
364
+ "required": [
365
+ "scalarType"
366
+ ]
367
+ }
368
+ }
369
+ },
370
+ {
371
+ "if": {
372
+ "type": "object",
373
+ "required": [
374
+ "itemType"
375
+ ],
376
+ "properties": {
377
+ "itemType": {}
378
+ }
379
+ },
380
+ "then": {
381
+ "type": "object",
382
+ "required": [
383
+ "kind",
384
+ "cardinality"
385
+ ],
386
+ "properties": {
387
+ "kind": {
388
+ "const": "field"
389
+ },
390
+ "cardinality": {
391
+ "enum": [
392
+ "array",
393
+ "map"
394
+ ]
395
+ }
396
+ }
397
+ }
398
+ },
399
+ {
400
+ "if": {
401
+ "type": "object",
402
+ "required": [
403
+ "facets"
404
+ ],
405
+ "properties": {
406
+ "facets": {}
407
+ }
408
+ },
409
+ "then": {
410
+ "type": "object",
411
+ "required": [
412
+ "kind"
413
+ ],
414
+ "properties": {
415
+ "kind": {
416
+ "const": "field"
417
+ },
418
+ "references": {
419
+ "allOf": [
420
+ {
421
+ "type": "array"
422
+ },
423
+ {
424
+ "not": {}
425
+ }
426
+ ]
427
+ }
428
+ }
429
+ }
430
+ },
431
+ {
432
+ "if": {
433
+ "type": "object",
434
+ "required": [
435
+ "facets"
436
+ ],
437
+ "properties": {
438
+ "facets": {
439
+ "type": "object",
440
+ "required": [
441
+ "length"
442
+ ],
443
+ "properties": {
444
+ "length": {}
445
+ }
446
+ }
447
+ }
448
+ },
449
+ "then": {
450
+ "type": "object",
451
+ "required": [
452
+ "scalarType"
453
+ ],
454
+ "properties": {
455
+ "scalarType": {
456
+ "enum": [
457
+ "string",
458
+ "binary"
459
+ ]
460
+ }
461
+ }
462
+ }
463
+ },
464
+ {
465
+ "if": {
466
+ "type": "object",
467
+ "required": [
468
+ "facets"
469
+ ],
470
+ "properties": {
471
+ "facets": {
472
+ "type": "object",
473
+ "required": [
474
+ "length"
475
+ ],
476
+ "properties": {
477
+ "length": {
478
+ "type": "object",
479
+ "required": [
480
+ "unit"
481
+ ],
482
+ "properties": {
483
+ "unit": {
484
+ "const": "unicode-scalar"
485
+ }
486
+ }
487
+ }
488
+ }
489
+ }
490
+ }
491
+ },
492
+ "then": {
493
+ "type": "object",
494
+ "required": [
495
+ "scalarType"
496
+ ],
497
+ "properties": {
498
+ "scalarType": {
499
+ "const": "string"
500
+ }
501
+ }
502
+ }
503
+ },
504
+ {
505
+ "if": {
506
+ "type": "object",
507
+ "required": [
508
+ "facets"
509
+ ],
510
+ "properties": {
511
+ "facets": {
512
+ "type": "object",
513
+ "required": [
514
+ "length"
515
+ ],
516
+ "properties": {
517
+ "length": {
518
+ "type": "object",
519
+ "required": [
520
+ "unit"
521
+ ],
522
+ "properties": {
523
+ "unit": {
524
+ "const": "byte"
525
+ }
526
+ }
527
+ }
528
+ }
529
+ }
530
+ }
531
+ },
532
+ "then": {
533
+ "type": "object",
534
+ "required": [
535
+ "scalarType"
536
+ ],
537
+ "properties": {
538
+ "scalarType": {
539
+ "const": "binary"
540
+ }
541
+ }
542
+ }
543
+ },
544
+ {
545
+ "if": {
546
+ "type": "object",
547
+ "required": [
548
+ "facets"
549
+ ],
550
+ "properties": {
551
+ "facets": {
552
+ "type": "object",
553
+ "required": [
554
+ "precision"
555
+ ],
556
+ "properties": {
557
+ "precision": {}
558
+ }
559
+ }
560
+ }
561
+ },
562
+ "then": {
563
+ "type": "object",
564
+ "required": [
565
+ "scalarType"
566
+ ],
567
+ "properties": {
568
+ "scalarType": {
569
+ "const": "decimal"
570
+ }
571
+ }
572
+ }
573
+ },
574
+ {
575
+ "if": {
576
+ "type": "object",
577
+ "required": [
578
+ "facets"
579
+ ],
580
+ "properties": {
581
+ "facets": {
582
+ "type": "object",
583
+ "required": [
584
+ "integerWidth"
585
+ ],
586
+ "properties": {
587
+ "integerWidth": {}
588
+ }
589
+ }
590
+ }
591
+ },
592
+ "then": {
593
+ "type": "object",
594
+ "required": [
595
+ "scalarType"
596
+ ],
597
+ "properties": {
598
+ "scalarType": {
599
+ "const": "integer"
600
+ }
601
+ }
602
+ }
603
+ },
604
+ {
605
+ "if": {
606
+ "type": "object",
607
+ "required": [
608
+ "members"
609
+ ],
610
+ "properties": {
611
+ "members": {}
612
+ }
613
+ },
614
+ "then": {
615
+ "type": "object",
616
+ "required": [
617
+ "kind"
618
+ ],
619
+ "properties": {
620
+ "kind": {
621
+ "const": "record"
622
+ }
623
+ }
624
+ }
625
+ },
626
+ {
627
+ "if": {
628
+ "type": "object",
629
+ "required": [
630
+ "keys"
631
+ ],
632
+ "properties": {
633
+ "keys": {}
634
+ }
635
+ },
636
+ "then": {
637
+ "type": "object",
638
+ "required": [
639
+ "kind",
640
+ "members"
641
+ ],
642
+ "properties": {
643
+ "kind": {
644
+ "const": "record"
645
+ },
646
+ "members": {}
647
+ }
648
+ }
649
+ },
650
+ {
651
+ "if": {
652
+ "type": "object",
653
+ "required": [
654
+ "examples"
655
+ ],
656
+ "properties": {
657
+ "examples": {}
658
+ }
659
+ },
660
+ "then": {
661
+ "type": "object",
662
+ "required": [
663
+ "kind"
664
+ ],
665
+ "properties": {
666
+ "kind": {
667
+ "const": "field"
668
+ }
669
+ }
670
+ }
671
+ },
672
+ {
673
+ "if": {
674
+ "type": "object",
675
+ "required": [
676
+ "allowedValues"
677
+ ],
678
+ "properties": {
679
+ "allowedValues": {}
680
+ }
681
+ },
682
+ "then": {
683
+ "type": "object",
684
+ "required": [
685
+ "kind"
686
+ ],
687
+ "properties": {
688
+ "kind": {
689
+ "const": "field"
690
+ }
691
+ }
692
+ }
693
+ },
694
+ {
695
+ "if": {
696
+ "type": "object",
697
+ "required": [
698
+ "default"
699
+ ],
700
+ "properties": {
701
+ "default": {}
702
+ }
703
+ },
704
+ "then": {
705
+ "type": "object",
706
+ "required": [
707
+ "kind"
708
+ ],
709
+ "properties": {
710
+ "kind": {
711
+ "const": "field"
712
+ }
713
+ }
714
+ }
715
+ }
716
+ ]
717
+ },
718
+ "module": {
719
+ "description": "A Module gives Elements and Relationships a namespace within a Document.",
720
+ "type": "object",
721
+ "required": [
722
+ "id",
723
+ "namespace",
724
+ "elements"
725
+ ],
726
+ "properties": {
727
+ "id": {
728
+ "$ref": "#/$defs/id"
729
+ },
730
+ "namespace": {
731
+ "type": "string"
732
+ },
733
+ "elements": {
734
+ "type": "array",
735
+ "items": {
736
+ "$ref": "#/$defs/element"
737
+ }
738
+ },
739
+ "extensions": {
740
+ "$ref": "#/$defs/extensions"
741
+ },
742
+ "relationships": {
743
+ "type": "array",
744
+ "items": {
745
+ "$ref": "#/$defs/relationship"
746
+ }
747
+ },
748
+ "title": {
749
+ "type": "string"
750
+ },
751
+ "aliases": {
752
+ "type": "array",
753
+ "items": {
754
+ "type": "string",
755
+ "minLength": 1
756
+ },
757
+ "uniqueItems": true
758
+ }
759
+ }
760
+ },
761
+ "knownElementKind": {
762
+ "description": "UMF language knownElementKind",
763
+ "enum": [
764
+ "field",
765
+ "record",
766
+ "group"
767
+ ]
768
+ },
769
+ "knownNullability": {
770
+ "description": "UMF language knownNullability",
771
+ "enum": [
772
+ "required",
773
+ "absent-allowed",
774
+ "unspecified"
775
+ ]
776
+ },
777
+ "knownCardinality": {
778
+ "description": "UMF language knownCardinality",
779
+ "enum": [
780
+ "one",
781
+ "array",
782
+ "map",
783
+ "unspecified"
784
+ ]
785
+ },
786
+ "itemType": {
787
+ "description": "UMF language itemType",
788
+ "type": "object",
789
+ "required": [
790
+ "module",
791
+ "element"
792
+ ],
793
+ "properties": {
794
+ "module": {
795
+ "$ref": "#/$defs/id"
796
+ },
797
+ "element": {
798
+ "$ref": "#/$defs/id"
799
+ }
800
+ }
801
+ },
802
+ "facets": {
803
+ "description": "Missing members impose no bound. Unknown members and qualifiers are retained without interpretation.",
804
+ "type": "object",
805
+ "properties": {
806
+ "length": {
807
+ "type": "object",
808
+ "required": [
809
+ "unit"
810
+ ],
811
+ "properties": {
812
+ "min": {
813
+ "type": "integer",
814
+ "minimum": 0,
815
+ "maximum": 9007199254740991
816
+ },
817
+ "max": {
818
+ "type": "integer",
819
+ "minimum": 0,
820
+ "maximum": 9007199254740991
821
+ },
822
+ "unit": {
823
+ "type": "string",
824
+ "minLength": 1
825
+ }
826
+ },
827
+ "additionalProperties": true,
828
+ "allOf": [
829
+ {
830
+ "anyOf": [
831
+ {
832
+ "type": "object",
833
+ "required": [
834
+ "min"
835
+ ],
836
+ "properties": {
837
+ "min": {}
838
+ }
839
+ },
840
+ {
841
+ "type": "object",
842
+ "required": [
843
+ "max"
844
+ ],
845
+ "properties": {
846
+ "max": {}
847
+ }
848
+ }
849
+ ]
850
+ }
851
+ ]
852
+ },
853
+ "precision": {
854
+ "description": "Decimal coefficient digit bound; requires scale. Absolute coefficient is less than 10^precision. No implicit rounding.",
855
+ "type": "integer",
856
+ "minimum": 1,
857
+ "maximum": 9007199254740991
858
+ },
859
+ "scale": {
860
+ "description": "Fixed fractional digit count; requires precision. Semantic validation requires scale <= precision. Value equals integer coefficient times 10^-scale.",
861
+ "type": "integer",
862
+ "minimum": 0,
863
+ "maximum": 9007199254740991
864
+ },
865
+ "integerWidth": {
866
+ "description": "Signed [-2^(bits-1),2^(bits-1)-1] or unsigned [0,2^bits-1]; mathematical domain, not a physical storage-width assertion.",
867
+ "type": "object",
868
+ "required": [
869
+ "bits",
870
+ "signed"
871
+ ],
872
+ "properties": {
873
+ "bits": {
874
+ "type": "integer",
875
+ "minimum": 1,
876
+ "maximum": 9007199254740991
877
+ },
878
+ "signed": {
879
+ "type": "boolean"
880
+ }
881
+ }
882
+ },
883
+ "collectionSize": {
884
+ "type": "object",
885
+ "properties": {
886
+ "min": {
887
+ "type": "integer",
888
+ "minimum": 0,
889
+ "maximum": 9007199254740991
890
+ },
891
+ "max": {
892
+ "type": "integer",
893
+ "minimum": 0,
894
+ "maximum": 9007199254740991
895
+ }
896
+ },
897
+ "additionalProperties": true,
898
+ "allOf": [
899
+ {
900
+ "anyOf": [
901
+ {
902
+ "type": "object",
903
+ "required": [
904
+ "min"
905
+ ],
906
+ "properties": {
907
+ "min": {}
908
+ }
909
+ },
910
+ {
911
+ "type": "object",
912
+ "required": [
913
+ "max"
914
+ ],
915
+ "properties": {
916
+ "max": {}
917
+ }
918
+ }
919
+ ]
920
+ }
921
+ ]
922
+ },
923
+ "range": {
924
+ "type": "object",
925
+ "properties": {
926
+ "min": {
927
+ "$ref": "#/$defs/literal"
928
+ },
929
+ "max": {
930
+ "$ref": "#/$defs/literal"
931
+ },
932
+ "minInclusive": {
933
+ "type": "boolean"
934
+ },
935
+ "maxInclusive": {
936
+ "type": "boolean"
937
+ }
938
+ },
939
+ "additionalProperties": true,
940
+ "allOf": [
941
+ {
942
+ "anyOf": [
943
+ {
944
+ "type": "object",
945
+ "required": [
946
+ "min"
947
+ ],
948
+ "properties": {
949
+ "min": {}
950
+ }
951
+ },
952
+ {
953
+ "type": "object",
954
+ "required": [
955
+ "max"
956
+ ],
957
+ "properties": {
958
+ "max": {}
959
+ }
960
+ }
961
+ ]
962
+ }
963
+ ]
964
+ }
965
+ },
966
+ "dependentRequired": {
967
+ "precision": [
968
+ "scale"
969
+ ],
970
+ "scale": [
971
+ "precision"
972
+ ]
973
+ }
974
+ },
975
+ "keyFieldReference": {
976
+ "description": "UMF language keyFieldReference",
977
+ "type": "object",
978
+ "required": [
979
+ "module",
980
+ "element"
981
+ ],
982
+ "properties": {
983
+ "module": {
984
+ "$ref": "#/$defs/id"
985
+ },
986
+ "element": {
987
+ "$ref": "#/$defs/id"
988
+ }
989
+ },
990
+ "additionalProperties": true
991
+ },
992
+ "key": {
993
+ "description": "UMF language key",
994
+ "type": "object",
995
+ "required": [
996
+ "id",
997
+ "name",
998
+ "fields"
999
+ ],
1000
+ "properties": {
1001
+ "id": {
1002
+ "$ref": "#/$defs/id"
1003
+ },
1004
+ "name": {
1005
+ "$ref": "#/$defs/id"
1006
+ },
1007
+ "fields": {
1008
+ "type": "array",
1009
+ "items": {
1010
+ "$ref": "#/$defs/keyFieldReference"
1011
+ },
1012
+ "minItems": 1,
1013
+ "uniqueItems": true
1014
+ },
1015
+ "primary": {
1016
+ "type": "boolean"
1017
+ }
1018
+ },
1019
+ "additionalProperties": true
1020
+ },
1021
+ "relationshipEndpoint": {
1022
+ "description": "UMF language relationshipEndpoint",
1023
+ "type": "object",
1024
+ "required": [
1025
+ "module",
1026
+ "element"
1027
+ ],
1028
+ "properties": {
1029
+ "module": {
1030
+ "$ref": "#/$defs/id"
1031
+ },
1032
+ "element": {
1033
+ "$ref": "#/$defs/id"
1034
+ }
1035
+ },
1036
+ "additionalProperties": true
1037
+ },
1038
+ "relationshipTarget": {
1039
+ "description": "UMF language relationshipTarget",
1040
+ "type": "object",
1041
+ "required": [
1042
+ "module",
1043
+ "element",
1044
+ "key"
1045
+ ],
1046
+ "properties": {
1047
+ "module": {
1048
+ "$ref": "#/$defs/id"
1049
+ },
1050
+ "element": {
1051
+ "$ref": "#/$defs/id"
1052
+ },
1053
+ "key": {
1054
+ "$ref": "#/$defs/id"
1055
+ }
1056
+ },
1057
+ "additionalProperties": true
1058
+ },
1059
+ "relationshipMultiplicity": {
1060
+ "description": "UMF language relationshipMultiplicity",
1061
+ "type": "object",
1062
+ "required": [
1063
+ "min",
1064
+ "max"
1065
+ ],
1066
+ "properties": {
1067
+ "min": {
1068
+ "type": "integer",
1069
+ "minimum": 0,
1070
+ "maximum": 9007199254740991
1071
+ },
1072
+ "max": {
1073
+ "anyOf": [
1074
+ {
1075
+ "type": "integer",
1076
+ "minimum": 1,
1077
+ "maximum": 9007199254740991
1078
+ },
1079
+ {
1080
+ "const": "*"
1081
+ }
1082
+ ]
1083
+ }
1084
+ },
1085
+ "additionalProperties": true
1086
+ },
1087
+ "relationship": {
1088
+ "description": "UMF language relationship",
1089
+ "type": "object",
1090
+ "required": [
1091
+ "id",
1092
+ "name",
1093
+ "source",
1094
+ "target",
1095
+ "sourceMultiplicity",
1096
+ "targetMultiplicity",
1097
+ "targetLifecycle",
1098
+ "directed"
1099
+ ],
1100
+ "properties": {
1101
+ "id": {
1102
+ "$ref": "#/$defs/id"
1103
+ },
1104
+ "name": {
1105
+ "$ref": "#/$defs/id"
1106
+ },
1107
+ "source": {
1108
+ "type": "array",
1109
+ "items": {
1110
+ "$ref": "#/$defs/relationshipEndpoint"
1111
+ },
1112
+ "minItems": 1
1113
+ },
1114
+ "target": {
1115
+ "type": "array",
1116
+ "items": {
1117
+ "$ref": "#/$defs/relationshipTarget"
1118
+ },
1119
+ "minItems": 1
1120
+ },
1121
+ "sourceMultiplicity": {
1122
+ "$ref": "#/$defs/relationshipMultiplicity"
1123
+ },
1124
+ "targetMultiplicity": {
1125
+ "$ref": "#/$defs/relationshipMultiplicity"
1126
+ },
1127
+ "targetLifecycle": {
1128
+ "type": "string",
1129
+ "minLength": 1
1130
+ },
1131
+ "directed": {
1132
+ "type": "boolean"
1133
+ },
1134
+ "inverse": {
1135
+ "$ref": "#/$defs/id"
1136
+ },
1137
+ "associationRecord": {
1138
+ "$ref": "#/$defs/relationshipEndpoint"
1139
+ }
1140
+ },
1141
+ "additionalProperties": true
1142
+ },
1143
+ "literal": {
1144
+ "description": "UMF language literal",
1145
+ "oneOf": [
1146
+ {
1147
+ "type": "null"
1148
+ },
1149
+ {
1150
+ "type": "object",
1151
+ "required": [
1152
+ "boolean"
1153
+ ],
1154
+ "properties": {
1155
+ "boolean": {
1156
+ "type": "boolean"
1157
+ }
1158
+ },
1159
+ "additionalProperties": false
1160
+ },
1161
+ {
1162
+ "type": "object",
1163
+ "required": [
1164
+ "integerToken"
1165
+ ],
1166
+ "properties": {
1167
+ "integerToken": {
1168
+ "type": "string",
1169
+ "pattern": "^-?(0|[1-9][0-9]*)(\\.[0-9]+)?([eE][+-]?[0-9]+)?$(?![\\s\\S])"
1170
+ }
1171
+ },
1172
+ "additionalProperties": false
1173
+ },
1174
+ {
1175
+ "type": "object",
1176
+ "required": [
1177
+ "decimalToken"
1178
+ ],
1179
+ "properties": {
1180
+ "decimalToken": {
1181
+ "type": "string",
1182
+ "pattern": "^-?(0|[1-9][0-9]*)(\\.[0-9]+)?([eE][+-]?[0-9]+)?$(?![\\s\\S])"
1183
+ }
1184
+ },
1185
+ "additionalProperties": false
1186
+ },
1187
+ {
1188
+ "type": "object",
1189
+ "required": [
1190
+ "string"
1191
+ ],
1192
+ "properties": {
1193
+ "string": {
1194
+ "type": "string"
1195
+ }
1196
+ },
1197
+ "additionalProperties": false
1198
+ },
1199
+ {
1200
+ "type": "object",
1201
+ "required": [
1202
+ "binaryHex"
1203
+ ],
1204
+ "properties": {
1205
+ "binaryHex": {
1206
+ "type": "string",
1207
+ "pattern": "^([0-9a-fA-F]{2})*$(?![\\s\\S])"
1208
+ }
1209
+ },
1210
+ "additionalProperties": false
1211
+ },
1212
+ {
1213
+ "type": "object",
1214
+ "required": [
1215
+ "floatToken"
1216
+ ],
1217
+ "properties": {
1218
+ "floatToken": {
1219
+ "type": "string",
1220
+ "pattern": "^-?(0|[1-9][0-9]*)(\\.[0-9]+)?([eE][+-]?[0-9]+)?$(?![\\s\\S])"
1221
+ }
1222
+ },
1223
+ "additionalProperties": false
1224
+ },
1225
+ {
1226
+ "type": "object",
1227
+ "required": [
1228
+ "date"
1229
+ ],
1230
+ "properties": {
1231
+ "date": {
1232
+ "type": "string"
1233
+ }
1234
+ },
1235
+ "additionalProperties": false
1236
+ },
1237
+ {
1238
+ "type": "object",
1239
+ "required": [
1240
+ "time"
1241
+ ],
1242
+ "properties": {
1243
+ "time": {
1244
+ "type": "string"
1245
+ }
1246
+ },
1247
+ "additionalProperties": false
1248
+ },
1249
+ {
1250
+ "type": "object",
1251
+ "required": [
1252
+ "timestamp"
1253
+ ],
1254
+ "properties": {
1255
+ "timestamp": {
1256
+ "type": "string"
1257
+ }
1258
+ },
1259
+ "additionalProperties": false
1260
+ },
1261
+ {
1262
+ "type": "object",
1263
+ "required": [
1264
+ "array"
1265
+ ],
1266
+ "properties": {
1267
+ "array": {
1268
+ "type": "array",
1269
+ "items": {
1270
+ "$ref": "#/$defs/literal"
1271
+ }
1272
+ }
1273
+ },
1274
+ "additionalProperties": false
1275
+ },
1276
+ {
1277
+ "type": "object",
1278
+ "required": [
1279
+ "map"
1280
+ ],
1281
+ "properties": {
1282
+ "map": {
1283
+ "type": "object",
1284
+ "additionalProperties": {
1285
+ "$ref": "#/$defs/literal"
1286
+ }
1287
+ }
1288
+ },
1289
+ "additionalProperties": false
1290
+ },
1291
+ {
1292
+ "type": "object",
1293
+ "required": [
1294
+ "bits128Hex"
1295
+ ],
1296
+ "properties": {
1297
+ "bits128Hex": {
1298
+ "type": "string",
1299
+ "minLength": 32,
1300
+ "maxLength": 32,
1301
+ "pattern": "^[0-9a-fA-F]{32}$(?![\\s\\S])"
1302
+ }
1303
+ },
1304
+ "additionalProperties": false
1305
+ },
1306
+ {
1307
+ "type": "object",
1308
+ "required": [
1309
+ "uuid"
1310
+ ],
1311
+ "properties": {
1312
+ "uuid": {
1313
+ "type": "string",
1314
+ "minLength": 36,
1315
+ "maxLength": 36,
1316
+ "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$(?![\\s\\S])"
1317
+ }
1318
+ },
1319
+ "additionalProperties": false
1320
+ }
1321
+ ]
1322
+ },
1323
+ "extensionPackage": {
1324
+ "description": "UMF language extensionPackage",
1325
+ "type": "object",
1326
+ "required": [
1327
+ "id",
1328
+ "version",
1329
+ "coreVersion",
1330
+ "description",
1331
+ "schema",
1332
+ "semantics",
1333
+ "scopes",
1334
+ "capabilities"
1335
+ ],
1336
+ "properties": {
1337
+ "id": {
1338
+ "type": "string",
1339
+ "minLength": 1
1340
+ },
1341
+ "version": {
1342
+ "type": "string",
1343
+ "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$"
1344
+ },
1345
+ "coreVersion": {
1346
+ "const": "0.10.0"
1347
+ },
1348
+ "description": {
1349
+ "type": "string",
1350
+ "minLength": 1
1351
+ },
1352
+ "schema": {
1353
+ "anyOf": [
1354
+ {
1355
+ "type": "object"
1356
+ },
1357
+ {
1358
+ "type": "boolean"
1359
+ }
1360
+ ]
1361
+ },
1362
+ "semantics": {
1363
+ "type": "string",
1364
+ "minLength": 1
1365
+ },
1366
+ "scopes": {
1367
+ "type": "array",
1368
+ "items": {
1369
+ "enum": [
1370
+ "document",
1371
+ "module",
1372
+ "element"
1373
+ ]
1374
+ },
1375
+ "minItems": 1,
1376
+ "uniqueItems": true
1377
+ },
1378
+ "capabilities": {
1379
+ "type": "object",
1380
+ "required": [
1381
+ "validation",
1382
+ "directions",
1383
+ "evidence"
1384
+ ],
1385
+ "properties": {
1386
+ "validation": {
1387
+ "enum": [
1388
+ "structural",
1389
+ "semantic"
1390
+ ]
1391
+ },
1392
+ "directions": {
1393
+ "type": "array",
1394
+ "items": {
1395
+ "enum": [
1396
+ "import",
1397
+ "export"
1398
+ ]
1399
+ },
1400
+ "uniqueItems": true
1401
+ },
1402
+ "evidence": {
1403
+ "type": "array",
1404
+ "items": {
1405
+ "type": "string",
1406
+ "minLength": 1
1407
+ }
1408
+ },
1409
+ "native": {
1410
+ "type": "object",
1411
+ "required": [
1412
+ "system",
1413
+ "version",
1414
+ "subset"
1415
+ ],
1416
+ "properties": {
1417
+ "system": {
1418
+ "type": "string",
1419
+ "minLength": 1
1420
+ },
1421
+ "version": {
1422
+ "type": "string",
1423
+ "minLength": 1
1424
+ },
1425
+ "subset": {
1426
+ "type": "string",
1427
+ "minLength": 1
1428
+ }
1429
+ }
1430
+ }
1431
+ },
1432
+ "allOf": [
1433
+ {
1434
+ "if": {
1435
+ "type": "object",
1436
+ "properties": {
1437
+ "directions": {
1438
+ "type": "array",
1439
+ "minItems": 1
1440
+ }
1441
+ }
1442
+ },
1443
+ "then": {
1444
+ "type": "object",
1445
+ "required": [
1446
+ "native"
1447
+ ],
1448
+ "properties": {
1449
+ "native": true
1450
+ }
1451
+ }
1452
+ }
1453
+ ]
1454
+ },
1455
+ "kindCatalog": {}
1456
+ }
1457
+ },
1458
+ "extensionKindDefinition": {
1459
+ "description": "UMF extension kind extensionKindDefinition",
1460
+ "type": "object",
1461
+ "required": [
1462
+ "title",
1463
+ "description",
1464
+ "scopes"
1465
+ ],
1466
+ "properties": {
1467
+ "title": {
1468
+ "type": "string",
1469
+ "minLength": 1
1470
+ },
1471
+ "description": {
1472
+ "type": "string",
1473
+ "minLength": 1
1474
+ },
1475
+ "scopes": {
1476
+ "type": "array",
1477
+ "items": {
1478
+ "enum": [
1479
+ "document",
1480
+ "module",
1481
+ "element"
1482
+ ]
1483
+ },
1484
+ "minItems": 1,
1485
+ "uniqueItems": true
1486
+ }
1487
+ }
1488
+ },
1489
+ "extensionKindCatalog": {
1490
+ "description": "UMF extension kind extensionKindCatalog",
1491
+ "type": "object",
1492
+ "required": [
1493
+ "profile"
1494
+ ],
1495
+ "properties": {
1496
+ "profile": {
1497
+ "type": "string",
1498
+ "minLength": 1
1499
+ },
1500
+ "definitions": {}
1501
+ },
1502
+ "allOf": [
1503
+ {
1504
+ "if": {
1505
+ "type": "object",
1506
+ "required": [
1507
+ "profile"
1508
+ ],
1509
+ "properties": {
1510
+ "profile": {
1511
+ "const": "1.0.0"
1512
+ }
1513
+ }
1514
+ },
1515
+ "then": {
1516
+ "type": "object",
1517
+ "required": [
1518
+ "definitions"
1519
+ ],
1520
+ "properties": {
1521
+ "definitions": {
1522
+ "type": "object",
1523
+ "additionalProperties": {
1524
+ "$ref": "#/$defs/extensionKindDefinition"
1525
+ },
1526
+ "propertyNames": {
1527
+ "type": "string",
1528
+ "minLength": 1
1529
+ },
1530
+ "allOf": [
1531
+ {
1532
+ "not": {
1533
+ "const": {}
1534
+ }
1535
+ }
1536
+ ]
1537
+ }
1538
+ }
1539
+ }
1540
+ }
1541
+ ]
1542
+ },
1543
+ "extensionKindReference": {
1544
+ "description": "UMF extension kind extensionKindReference",
1545
+ "type": "object",
1546
+ "required": [
1547
+ "extension",
1548
+ "version",
1549
+ "kind"
1550
+ ],
1551
+ "properties": {
1552
+ "extension": {
1553
+ "type": "string",
1554
+ "minLength": 1
1555
+ },
1556
+ "version": {
1557
+ "type": "string",
1558
+ "minLength": 1
1559
+ },
1560
+ "kind": {
1561
+ "type": "string",
1562
+ "minLength": 1
1563
+ }
1564
+ },
1565
+ "additionalProperties": false
1566
+ },
1567
+ "extensionKindDiagnostic": {
1568
+ "description": "UMF extension kind extensionKindDiagnostic",
1569
+ "type": "object",
1570
+ "required": [
1571
+ "code",
1572
+ "path",
1573
+ "message",
1574
+ "severity"
1575
+ ],
1576
+ "properties": {
1577
+ "code": {
1578
+ "type": "string",
1579
+ "minLength": 1
1580
+ },
1581
+ "path": {
1582
+ "type": "string"
1583
+ },
1584
+ "message": {
1585
+ "type": "string"
1586
+ },
1587
+ "severity": {
1588
+ "enum": [
1589
+ "error",
1590
+ "warning"
1591
+ ]
1592
+ }
1593
+ },
1594
+ "additionalProperties": false
1595
+ },
1596
+ "extensionKindValidation": {
1597
+ "description": "UMF extension kind extensionKindValidation",
1598
+ "type": "object",
1599
+ "required": [
1600
+ "valid",
1601
+ "complete",
1602
+ "diagnostics"
1603
+ ],
1604
+ "properties": {
1605
+ "valid": {
1606
+ "type": "boolean"
1607
+ },
1608
+ "complete": {
1609
+ "type": "boolean"
1610
+ },
1611
+ "diagnostics": {
1612
+ "type": "array",
1613
+ "items": {
1614
+ "$ref": "#/$defs/extensionKindDiagnostic"
1615
+ }
1616
+ }
1617
+ },
1618
+ "additionalProperties": false
1619
+ },
1620
+ "extensionKindEntry": {
1621
+ "description": "UMF extension kind extensionKindEntry",
1622
+ "type": "object",
1623
+ "required": [
1624
+ "reference",
1625
+ "owner",
1626
+ "payloadPath",
1627
+ "definition"
1628
+ ],
1629
+ "properties": {
1630
+ "reference": {
1631
+ "$ref": "#/$defs/extensionKindReference"
1632
+ },
1633
+ "owner": {
1634
+ "oneOf": [
1635
+ {
1636
+ "type": "object",
1637
+ "required": [
1638
+ "scope"
1639
+ ],
1640
+ "properties": {
1641
+ "scope": {
1642
+ "const": "document"
1643
+ }
1644
+ },
1645
+ "additionalProperties": false
1646
+ },
1647
+ {
1648
+ "type": "object",
1649
+ "required": [
1650
+ "scope",
1651
+ "module"
1652
+ ],
1653
+ "properties": {
1654
+ "scope": {
1655
+ "const": "module"
1656
+ },
1657
+ "module": {
1658
+ "type": "string",
1659
+ "minLength": 1
1660
+ }
1661
+ },
1662
+ "additionalProperties": false
1663
+ },
1664
+ {
1665
+ "type": "object",
1666
+ "required": [
1667
+ "scope",
1668
+ "module",
1669
+ "element"
1670
+ ],
1671
+ "properties": {
1672
+ "scope": {
1673
+ "const": "element"
1674
+ },
1675
+ "module": {
1676
+ "type": "string",
1677
+ "minLength": 1
1678
+ },
1679
+ "element": {
1680
+ "type": "string",
1681
+ "minLength": 1
1682
+ }
1683
+ },
1684
+ "additionalProperties": false
1685
+ }
1686
+ ]
1687
+ },
1688
+ "payloadPath": {
1689
+ "type": "string",
1690
+ "minLength": 1
1691
+ },
1692
+ "definition": {
1693
+ "$ref": "#/$defs/extensionKindDefinition"
1694
+ }
1695
+ },
1696
+ "additionalProperties": false
1697
+ },
1698
+ "extensionKindCoverage": {
1699
+ "description": "UMF extension kind extensionKindCoverage",
1700
+ "type": "object",
1701
+ "required": [
1702
+ "owner",
1703
+ "extension",
1704
+ "version",
1705
+ "payloadPath",
1706
+ "status",
1707
+ "diagnostics"
1708
+ ],
1709
+ "properties": {
1710
+ "owner": {
1711
+ "oneOf": [
1712
+ {
1713
+ "type": "object",
1714
+ "required": [
1715
+ "scope"
1716
+ ],
1717
+ "properties": {
1718
+ "scope": {
1719
+ "const": "document"
1720
+ }
1721
+ },
1722
+ "additionalProperties": false
1723
+ },
1724
+ {
1725
+ "type": "object",
1726
+ "required": [
1727
+ "scope",
1728
+ "module"
1729
+ ],
1730
+ "properties": {
1731
+ "scope": {
1732
+ "const": "module"
1733
+ },
1734
+ "module": {
1735
+ "type": "string",
1736
+ "minLength": 1
1737
+ }
1738
+ },
1739
+ "additionalProperties": false
1740
+ },
1741
+ {
1742
+ "type": "object",
1743
+ "required": [
1744
+ "scope",
1745
+ "module",
1746
+ "element"
1747
+ ],
1748
+ "properties": {
1749
+ "scope": {
1750
+ "const": "element"
1751
+ },
1752
+ "module": {
1753
+ "type": "string",
1754
+ "minLength": 1
1755
+ },
1756
+ "element": {
1757
+ "type": "string",
1758
+ "minLength": 1
1759
+ }
1760
+ },
1761
+ "additionalProperties": false
1762
+ }
1763
+ ]
1764
+ },
1765
+ "extension": {
1766
+ "type": "string",
1767
+ "minLength": 1
1768
+ },
1769
+ "version": {
1770
+ "anyOf": [
1771
+ {
1772
+ "type": "string",
1773
+ "minLength": 1
1774
+ },
1775
+ {
1776
+ "type": "null"
1777
+ }
1778
+ ]
1779
+ },
1780
+ "payloadPath": {
1781
+ "type": "string",
1782
+ "minLength": 1
1783
+ },
1784
+ "status": {
1785
+ "enum": [
1786
+ "resolved",
1787
+ "absent-catalog",
1788
+ "unavailable",
1789
+ "unsupported-catalog",
1790
+ "invalid"
1791
+ ]
1792
+ },
1793
+ "diagnostics": {
1794
+ "type": "array",
1795
+ "items": {
1796
+ "$ref": "#/$defs/extensionKindDiagnostic"
1797
+ }
1798
+ }
1799
+ },
1800
+ "additionalProperties": false
1801
+ },
1802
+ "extensionKindListResult": {
1803
+ "description": "UMF extension kind extensionKindListResult",
1804
+ "type": "object",
1805
+ "required": [
1806
+ "definitions",
1807
+ "packages",
1808
+ "complete"
1809
+ ],
1810
+ "properties": {
1811
+ "definitions": {
1812
+ "type": "array",
1813
+ "items": {
1814
+ "type": "object",
1815
+ "required": [
1816
+ "reference",
1817
+ "definition"
1818
+ ],
1819
+ "properties": {
1820
+ "reference": {
1821
+ "$ref": "#/$defs/extensionKindReference"
1822
+ },
1823
+ "definition": {
1824
+ "$ref": "#/$defs/extensionKindDefinition"
1825
+ }
1826
+ },
1827
+ "additionalProperties": false
1828
+ }
1829
+ },
1830
+ "packages": {
1831
+ "type": "array",
1832
+ "items": {
1833
+ "type": "object",
1834
+ "required": [
1835
+ "extension",
1836
+ "version",
1837
+ "catalog",
1838
+ "diagnostics"
1839
+ ],
1840
+ "properties": {
1841
+ "extension": {
1842
+ "type": "string",
1843
+ "minLength": 1
1844
+ },
1845
+ "version": {
1846
+ "type": "string",
1847
+ "minLength": 1
1848
+ },
1849
+ "catalog": {
1850
+ "enum": [
1851
+ "available",
1852
+ "absent",
1853
+ "unsupported"
1854
+ ]
1855
+ },
1856
+ "diagnostics": {
1857
+ "type": "array",
1858
+ "items": {
1859
+ "$ref": "#/$defs/extensionKindDiagnostic"
1860
+ }
1861
+ }
1862
+ },
1863
+ "additionalProperties": false
1864
+ }
1865
+ },
1866
+ "complete": {
1867
+ "type": "boolean"
1868
+ }
1869
+ },
1870
+ "additionalProperties": false
1871
+ },
1872
+ "extensionKindInspection": {
1873
+ "description": "UMF extension kind extensionKindInspection",
1874
+ "type": "object",
1875
+ "required": [
1876
+ "source",
1877
+ "sourceValidation",
1878
+ "entries",
1879
+ "coverage",
1880
+ "complete"
1881
+ ],
1882
+ "properties": {
1883
+ "source": {},
1884
+ "sourceValidation": {
1885
+ "$ref": "#/$defs/extensionKindValidation"
1886
+ },
1887
+ "entries": {
1888
+ "type": "array",
1889
+ "items": {
1890
+ "$ref": "#/$defs/extensionKindEntry"
1891
+ }
1892
+ },
1893
+ "coverage": {
1894
+ "type": "array",
1895
+ "items": {
1896
+ "$ref": "#/$defs/extensionKindCoverage"
1897
+ }
1898
+ },
1899
+ "complete": {
1900
+ "type": "boolean"
1901
+ }
1902
+ },
1903
+ "additionalProperties": false
1904
+ }
1905
+ },
1906
+ "$comment": "Generated from spec/metamodel/umf.yaml; model fe838a63f66d5f959468ad0ed0e1ea202be1a89536bfc91bcb4a6c2d54ab383f; compiler f4bf9751145f3be097eef0f8373e65da356f519b54d153c0227af5882e1c545c"
1907
+ }