@toolproof-core/schema 1.0.9 → 1.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/generated/artifacts/constants.d.ts +121 -0
  2. package/dist/generated/artifacts/constants.js +121 -0
  3. package/dist/generated/artifacts/mappings.d.ts +23 -0
  4. package/dist/generated/artifacts/mappings.js +23 -0
  5. package/dist/generated/normalized/Genesis.json +117 -78
  6. package/dist/generated/resources/Genesis.json +489 -264
  7. package/dist/generated/schemas/Genesis.json +94 -61
  8. package/dist/generated/schemas/standalone/Job.json +9 -8
  9. package/dist/generated/schemas/standalone/RawStrategy.json +86 -110
  10. package/dist/generated/schemas/standalone/ResourceType.json +4 -4
  11. package/dist/generated/schemas/standalone/RunnableStrategy.json +115 -139
  12. package/dist/generated/schemas/standalone/StrategyRun.json +93 -117
  13. package/dist/generated/types/standalone/Resource_Genesis.d.ts +1 -1
  14. package/dist/generated/types/standalone/Resource_Job.d.ts +1 -1
  15. package/dist/generated/types/standalone/Resource_RawStrategy.d.ts +1 -1
  16. package/dist/generated/types/standalone/Resource_ResourceType.d.ts +1 -1
  17. package/dist/generated/types/standalone/Resource_RunnableStrategy.d.ts +1 -1
  18. package/dist/generated/types/types.d.ts +247 -239
  19. package/dist/index.d.ts +6 -3
  20. package/dist/index.js +5 -2
  21. package/dist/scripts/_lib/config.d.ts +3 -5
  22. package/dist/scripts/_lib/config.js +8 -14
  23. package/dist/scripts/generateConstantsAndMappings.d.ts +31 -0
  24. package/dist/scripts/generateConstantsAndMappings.js +243 -0
  25. package/dist/scripts/generateDependencies.js +1 -1
  26. package/dist/scripts/generateStandaloneType.js +2 -1
  27. package/dist/scripts/generateTerminals.js +2 -2
  28. package/dist/scripts/generateTypes.js +183 -5
  29. package/dist/scripts/wrapResourceTypesWithResourceShells.js +7 -3
  30. package/package.json +9 -10
  31. package/src/Genesis.json +1873 -1833
  32. package/src/generated/artifacts/constants.ts +122 -0
  33. package/src/generated/{dependencies → artifacts}/dependencyMap.json +282 -280
  34. package/src/generated/artifacts/mappings.ts +24 -0
  35. package/src/generated/{dependencies → artifacts}/terminals.json +13 -11
  36. package/src/generated/normalized/Genesis.json +1785 -1746
  37. package/src/generated/resources/Genesis.json +2833 -2608
  38. package/src/generated/schemas/Genesis.json +1348 -1315
  39. package/src/generated/schemas/standalone/Job.json +195 -194
  40. package/src/generated/schemas/standalone/RawStrategy.json +86 -110
  41. package/src/generated/schemas/standalone/ResourceType.json +106 -106
  42. package/src/generated/schemas/standalone/RunnableStrategy.json +645 -669
  43. package/src/generated/schemas/standalone/StrategyRun.json +913 -937
  44. package/src/generated/types/standalone/Resource_Genesis.d.ts +3 -3
  45. package/src/generated/types/standalone/Resource_Job.d.ts +3 -3
  46. package/src/generated/types/standalone/Resource_RawStrategy.d.ts +3 -3
  47. package/src/generated/types/standalone/Resource_ResourceType.d.ts +3 -3
  48. package/src/generated/types/standalone/Resource_RunnableStrategy.d.ts +3 -3
  49. package/src/generated/types/types.d.ts +717 -709
  50. package/src/index.ts +77 -70
  51. package/src/scripts/_lib/config.ts +207 -215
  52. package/src/scripts/extractSchemasFromResourceTypeShells.ts +261 -261
  53. package/src/scripts/generateConstantsAndMappings.ts +309 -0
  54. package/src/scripts/generateDependencies.ts +121 -121
  55. package/src/scripts/generateSchemaShims.ts +127 -127
  56. package/src/scripts/generateStandaloneSchema.ts +185 -185
  57. package/src/scripts/generateStandaloneType.ts +129 -127
  58. package/src/scripts/generateTerminals.ts +73 -73
  59. package/src/scripts/generateTypes.ts +733 -531
  60. package/src/scripts/normalizeAnchorsToPointers.ts +141 -141
  61. package/src/scripts/wrapResourceTypesWithResourceShells.ts +86 -82
  62. package/dist/generated/constants/constants.d.ts +0 -60
  63. package/dist/generated/constants/constants.js +0 -60
  64. package/dist/scripts/generateConstants.d.ts +0 -12
  65. package/dist/scripts/generateConstants.js +0 -179
  66. package/src/generated/constants/constants.ts +0 -61
  67. package/src/scripts/generateConstants.ts +0 -217
package/src/Genesis.json CHANGED
@@ -1,1834 +1,1874 @@
1
- {
2
- "identity": "TYPE-Genesis",
3
- "name": "Genesis",
4
- "description": "dummy-description",
5
- "nucleusSchema": {
6
- "$comment": "This file defines all schemas used internally by ToolProof.",
7
- "$anchor": "Genesis",
8
- "$id": "https://schemas.toolproof.com/v2/Genesis.json",
9
- "$schema": "https://json-schema.org/draft/2020-12/schema",
10
- "$defs": {
11
- "Name": {
12
- "identity": "TYPE-Name",
13
- "name": "Name",
14
- "description": "dummy-description",
15
- "nucleusSchema": {
16
- "$anchor": "Name",
17
- "$schema": "https://json-schema.org/draft/2020-12/schema",
18
- "type": "string",
19
- "minLength": 1,
20
- "pattern": "^(?:[A-Z][^0-9]*|[a-z]+/[a-z.+&-]+)$",
21
- "$comment": "Validation is intercepted by an AI Agent that verifies the name against Toolproof's naming conventions.",
22
- "semanticValidation": "Ajv custom keyword to verify name."
23
- }
24
- },
25
- "NameFacet": {
26
- "identity": "TYPE-NameFacet",
27
- "name": "NameFacet",
28
- "description": "dummy-description",
29
- "nucleusSchema": {
30
- "$anchor": "NameFacet",
31
- "$schema": "https://json-schema.org/draft/2020-12/schema",
32
- "type": "object",
33
- "required": [
34
- "name"
35
- ],
36
- "properties": {
37
- "name": {
38
- "$ref": "#Name"
39
- }
40
- }
41
- }
42
- },
43
- "Description": {
44
- "identity": "TYPE-Description",
45
- "name": "Description",
46
- "description": "dummy-description",
47
- "nucleusSchema": {
48
- "$anchor": "Description",
49
- "$schema": "https://json-schema.org/draft/2020-12/schema",
50
- "type": "string",
51
- "minLength": 1,
52
- "$comment": "Validation is intercepted by an AI Agent that verifies the description against Toolproof's documentation standards.",
53
- "semanticValidation": "Ajv custom keyword to verify description."
54
- }
55
- },
56
- "DescriptionFacet": {
57
- "identity": "TYPE-DescriptionFacet",
58
- "name": "DescriptionFacet",
59
- "description": "dummy-description",
60
- "nucleusSchema": {
61
- "$anchor": "DescriptionFacet",
62
- "$schema": "https://json-schema.org/draft/2020-12/schema",
63
- "type": "object",
64
- "required": [
65
- "description"
66
- ],
67
- "properties": {
68
- "description": {
69
- "$ref": "#Description"
70
- }
71
- }
72
- }
73
- },
74
- "DocumentationFacet": {
75
- "identity": "TYPE-DocumentationFacet",
76
- "name": "DocumentationFacet",
77
- "description": "dummy-description",
78
- "nucleusSchema": {
79
- "$anchor": "DocumentationFacet",
80
- "$schema": "https://json-schema.org/draft/2020-12/schema",
81
- "type": "object",
82
- "allOf": [
83
- {
84
- "$ref": "#NameFacet"
85
- },
86
- {
87
- "$ref": "#DescriptionFacet"
88
- }
89
- ]
90
- }
91
- },
92
- "Uri": {
93
- "identity": "TYPE-Uri",
94
- "name": "Uri",
95
- "description": "dummy-description",
96
- "nucleusSchema": {
97
- "$anchor": "Uri",
98
- "$schema": "https://json-schema.org/draft/2020-12/schema",
99
- "type": "string",
100
- "format": "uri"
101
- }
102
- },
103
- "ResourceTypeIdentity": {
104
- "identity": "TYPE-ResourceTypeIdentity",
105
- "name": "ResourceTypeIdentity",
106
- "description": "dummy-description",
107
- "nucleusSchema": {
108
- "$anchor": "ResourceTypeIdentity",
109
- "$schema": "https://json-schema.org/draft/2020-12/schema",
110
- "type": "string",
111
- "pattern": "^TYPE-.+$"
112
- }
113
- },
114
- "ResourceType": {
115
- "identity": "TYPE-ResourceType",
116
- "name": "ResourceType",
117
- "description": "dummy-description",
118
- "nucleusSchema": {
119
- "$anchor": "ResourceType",
120
- "$schema": "https://json-schema.org/draft/2020-12/schema",
121
- "type": "object",
122
- "required": [
123
- "identity",
124
- "nucleusSchema"
125
- ],
126
- "properties": {
127
- "identity": {
128
- "$ref": "#ResourceTypeIdentity"
129
- },
130
- "nucleusSchema": true,
131
- "embeddingUriMap": {
132
- "type": "object",
133
- "propertyNames": {
134
- "type": "string",
135
- "pattern": "^EMBEDDING-.+$"
136
- },
137
- "additionalProperties": {
138
- "$ref": "#Uri"
139
- },
140
- "minProperties": 1,
141
- "$comment": "A ResourceType may specify a set of embedding models that convert the raw data (or one of its alternative representations) into vector embeddings. The build process enforces that the keys of this map are members of a set of predefined embedding models."
142
- },
143
- "generatorUriMap": {
144
- "type": "object",
145
- "propertyNames": {
146
- "type": "string",
147
- "pattern": "^GENERATOR-.+$"
148
- },
149
- "additionalProperties": {
150
- "$ref": "#Uri"
151
- },
152
- "minProperties": 1,
153
- "$comment": "A ResourceType may specify a set of generators that generate different representations of its instances from the raw file. A ToolProof Resource is always backed by a raw file. This is also true for the Resources (of type ResourceType) defined in this file! The build process enforces that the keys of this map are members of a set of predefined generators. GENERATOR-Json is an identifier for a generator that generates JSON data from the raw file. If the raw file is a JSON file, GENERATOR-Json is an implicit identity operation (i.e. an operation that does nothing) and must not be present in the map. A ResourceType may also specify other generators, such as GENERATOR-LeanTerm, which generates an instance (or 'term' in Lean jargon) of a corresponding Lean type from the raw file. ResourceTypes that specify GENERATOR-LeanTerm must also specify a corresponding GENERATOR-LeanType. While the term-version runs when data instances enter the ecosystem, the type-version runs when the ResourceType itself enters the ecosystem."
154
- }
155
- },
156
- "allOf": [
157
- {
158
- "$ref": "#DocumentationFacet"
159
- }
160
- ]
161
- }
162
- },
163
- "ResourceRoleIdentity": {
164
- "identity": "TYPE-ResourceRoleIdentity",
165
- "name": "ResourceRoleIdentity",
166
- "description": "dummy-description",
167
- "nucleusSchema": {
168
- "$anchor": "ResourceRoleIdentity",
169
- "$schema": "https://json-schema.org/draft/2020-12/schema",
170
- "type": "string",
171
- "pattern": "^ROLE-.+$"
172
- }
173
- },
174
- "ResourceRoleValue": {
175
- "identity": "TYPE-ResourceRoleValue",
176
- "name": "ResourceRoleValue",
177
- "description": "dummy-description",
178
- "nucleusSchema": {
179
- "$anchor": "ResourceRoleValue",
180
- "$schema": "https://json-schema.org/draft/2020-12/schema",
181
- "type": "object",
182
- "allOf": [
183
- {
184
- "$comment": "A ResourceRole does not have a self-contained identity, as it is always defined in the context of a RoleMap. ResourceRoleValue uses the Value suffix to mean 'the value stored in this map' (RoleMap.additionalProperties).",
185
- "required": [
186
- "resourceTypeHandle"
187
- ],
188
- "properties": {
189
- "resourceTypeHandle": {
190
- "$ref": "#ResourceTypeIdentity"
191
- }
192
- }
193
- },
194
- {
195
- "$ref": "#DocumentationFacet"
196
- }
197
- ]
198
- },
199
- "unevaluatedProperties": false
200
- },
201
- "RoleMap": {
202
- "identity": "TYPE-RoleMap",
203
- "name": "RoleMap",
204
- "description": "dummy-description",
205
- "nucleusSchema": {
206
- "$anchor": "RoleMap",
207
- "$schema": "https://json-schema.org/draft/2020-12/schema",
208
- "type": "object",
209
- "propertyNames": {
210
- "$ref": "#ResourceRoleIdentity"
211
- },
212
- "additionalProperties": {
213
- "$ref": "#ResourceRoleValue"
214
- }
215
- }
216
- },
217
- "Error": {
218
- "identity": "TYPE-Error",
219
- "name": "Error",
220
- "description": "dummy-description",
221
- "nucleusSchema": {
222
- "$anchor": "Error",
223
- "$schema": "https://json-schema.org/draft/2020-12/schema",
224
- "type": "object",
225
- "allOf": [
226
- {
227
- "$ref": "#DocumentationFacet"
228
- },
229
- {
230
- "properties": {
231
- "details": {
232
- "type": "object"
233
- }
234
- }
235
- }
236
- ],
237
- "unevaluatedProperties": false
238
- }
239
- },
240
- "Roles": {
241
- "identity": "TYPE-Roles",
242
- "name": "Roles",
243
- "description": "dummy-description",
244
- "nucleusSchema": {
245
- "$anchor": "Roles",
246
- "$schema": "https://json-schema.org/draft/2020-12/schema",
247
- "type": "object",
248
- "required": [
249
- "inputMap",
250
- "outputMap"
251
- ],
252
- "properties": {
253
- "inputMap": {
254
- "$ref": "#RoleMap"
255
- },
256
- "outputMap": {
257
- "allOf": [
258
- {
259
- "$ref": "#RoleMap"
260
- },
261
- {
262
- "required": [
263
- "ROLE-ErrorOutput"
264
- ],
265
- "properties": {
266
- "ROLE-ErrorOutput": {
267
- "type": "object",
268
- "allOf": [
269
- {
270
- "$ref": "#ResourceRoleValue"
271
- },
272
- {
273
- "required": [
274
- "resourceTypeHandle",
275
- "name",
276
- "description"
277
- ],
278
- "properties": {
279
- "resourceTypeHandle": {
280
- "const": "TYPE-Error"
281
- },
282
- "name": {
283
- "const": "ErrorOutput"
284
- },
285
- "description": {
286
- "const": "Represents error outputs from job runs."
287
- }
288
- }
289
- }
290
- ]
291
- }
292
- }
293
- }
294
- ]
295
- }
296
- },
297
- "unevaluatedProperties": false
298
- }
299
- },
300
- "RolesFacet": {
301
- "identity": "TYPE-RolesFacet",
302
- "name": "RolesFacet",
303
- "description": "dummy-description",
304
- "nucleusSchema": {
305
- "$anchor": "RolesFacet",
306
- "$schema": "https://json-schema.org/draft/2020-12/schema",
307
- "type": "object",
308
- "required": [
309
- "roles"
310
- ],
311
- "properties": {
312
- "roles": {
313
- "$ref": "#Roles"
314
- }
315
- }
316
- }
317
- },
318
- "JobIdentity": {
319
- "identity": "TYPE-JobIdentity",
320
- "name": "JobIdentity",
321
- "description": "dummy-description",
322
- "nucleusSchema": {
323
- "$anchor": "JobIdentity",
324
- "$schema": "https://json-schema.org/draft/2020-12/schema",
325
- "type": "string",
326
- "pattern": "^JOB-.+$"
327
- }
328
- },
329
- "Job": {
330
- "identity": "TYPE-Job",
331
- "name": "Job",
332
- "description": "dummy-description",
333
- "nucleusSchema": {
334
- "$anchor": "Job",
335
- "$schema": "https://json-schema.org/draft/2020-12/schema",
336
- "type": "object",
337
- "required": [
338
- "identity",
339
- "implementationUri"
340
- ],
341
- "properties": {
342
- "identity": {
343
- "$ref": "#JobIdentity"
344
- },
345
- "implementationUri": {
346
- "$ref": "#Uri"
347
- }
348
- },
349
- "allOf": [
350
- {
351
- "$ref": "#DocumentationFacet"
352
- },
353
- {
354
- "$ref": "#RolesFacet"
355
- }
356
- ],
357
- "unevaluatedProperties": false
358
- }
359
- },
360
- "RoleBindingArray": {
361
- "identity": "TYPE-RoleBindingArray",
362
- "name": "RoleBindingArray",
363
- "description": "dummy-description",
364
- "nucleusSchema": {
365
- "$anchor": "RoleBindingArray",
366
- "$schema": "https://json-schema.org/draft/2020-12/schema",
367
- "type": "array",
368
- "items": {
369
- "$ref": "#ResourceRoleIdentity"
370
- }
371
- }
372
- },
373
- "RoleBindings": {
374
- "identity": "TYPE-RoleBindings",
375
- "name": "RoleBindings",
376
- "description": "dummy-description",
377
- "nucleusSchema": {
378
- "$anchor": "RoleBindings",
379
- "$schema": "https://json-schema.org/draft/2020-12/schema",
380
- "type": "object",
381
- "required": [
382
- "inputBindings",
383
- "outputBindings"
384
- ],
385
- "properties": {
386
- "inputBindings": {
387
- "$ref": "#RoleBindingArray"
388
- },
389
- "outputBindings": {
390
- "$ref": "#RoleBindingArray"
391
- }
392
- }
393
- },
394
- "unevaluatedProperties": false
395
- },
396
- "RoleBindingsFacet": {
397
- "identity": "TYPE-RoleBindingsFacet",
398
- "name": "RoleBindingsFacet",
399
- "description": "dummy-description",
400
- "nucleusSchema": {
401
- "$anchor": "RoleBindingsFacet",
402
- "$schema": "https://json-schema.org/draft/2020-12/schema",
403
- "type": "object",
404
- "required": [
405
- "roleBindings"
406
- ],
407
- "properties": {
408
- "roleBindings": {
409
- "$ref": "#RoleBindings"
410
- }
411
- }
412
- }
413
- },
414
- "StepKind": {
415
- "identity": "TYPE-StepKind",
416
- "name": "StepKind",
417
- "description": "dummy-description",
418
- "nucleusSchema": {
419
- "$anchor": "StepKind",
420
- "$schema": "https://json-schema.org/draft/2020-12/schema",
421
- "type": "string",
422
- "enum": [
423
- "job",
424
- "branch",
425
- "while",
426
- "for"
427
- ]
428
- }
429
- },
430
- "StepKindFacet": {
431
- "identity": "TYPE-StepKindFacet",
432
- "name": "StepKindFacet",
433
- "description": "dummy-description",
434
- "nucleusSchema": {
435
- "$anchor": "StepKindFacet",
436
- "$schema": "https://json-schema.org/draft/2020-12/schema",
437
- "type": "object",
438
- "required": [
439
- "stepKind"
440
- ],
441
- "properties": {
442
- "stepKind": {
443
- "$ref": "#StepKind"
444
- }
445
- }
446
- }
447
- },
448
- "JobStepIdentity": {
449
- "identity": "TYPE-JobStepIdentity",
450
- "name": "JobStepIdentity",
451
- "description": "dummy-description",
452
- "nucleusSchema": {
453
- "$anchor": "JobStepIdentity",
454
- "$schema": "https://json-schema.org/draft/2020-12/schema",
455
- "type": "string",
456
- "pattern": "^JOB_STEP-.+$"
457
- }
458
- },
459
- "JobStep": {
460
- "identity": "TYPE-JobStep",
461
- "name": "JobStep",
462
- "description": "dummy-description",
463
- "nucleusSchema": {
464
- "$anchor": "JobStep",
465
- "$schema": "https://json-schema.org/draft/2020-12/schema",
466
- "type": "object",
467
- "required": [
468
- "identity",
469
- "stepKind",
470
- "jobHandle"
471
- ],
472
- "properties": {
473
- "identity": {
474
- "$ref": "#JobStepIdentity"
475
- },
476
- "stepKind": {
477
- "const": "job"
478
- },
479
- "jobHandle": {
480
- "$ref": "#JobIdentity"
481
- }
482
- },
483
- "allOf": [
484
- {
485
- "$ref": "#StepKindFacet"
486
- },
487
- {
488
- "$comment": "This will be overlayed dynamically to specify roleBindings corresponding to the roles of the underlying job.",
489
- "$ref": "#RoleBindingsFacet"
490
- }
491
- ]
492
- }
493
- },
494
- "Conditional": {
495
- "identity": "TYPE-Conditional",
496
- "name": "Conditional",
497
- "description": "dummy-description",
498
- "nucleusSchema": {
499
- "$anchor": "Conditional",
500
- "$schema": "https://json-schema.org/draft/2020-12/schema",
501
- "type": "object",
502
- "required": [
503
- "when",
504
- "what"
505
- ],
506
- "properties": {
507
- "when": {
508
- "$ref": "#JobStep"
509
- },
510
- "what": {
511
- "$ref": "#JobStep"
512
- }
513
- },
514
- "unevaluatedProperties": false
515
- }
516
- },
517
- "BranchStepIdentity": {
518
- "identity": "TYPE-BranchStepIdentity",
519
- "name": "BranchStepIdentity",
520
- "description": "dummy-description",
521
- "nucleusSchema": {
522
- "$anchor": "BranchStepIdentity",
523
- "$schema": "https://json-schema.org/draft/2020-12/schema",
524
- "type": "string",
525
- "pattern": "^BRANCH_STEP-.+$"
526
- }
527
- },
528
- "BranchStep": {
529
- "identity": "TYPE-BranchStep",
530
- "name": "BranchStep",
531
- "description": "dummy-description",
532
- "nucleusSchema": {
533
- "$anchor": "BranchStep",
534
- "$schema": "https://json-schema.org/draft/2020-12/schema",
535
- "type": "object",
536
- "required": [
537
- "identity",
538
- "stepKind",
539
- "cases"
540
- ],
541
- "properties": {
542
- "identity": {
543
- "$ref": "#BranchStepIdentity"
544
- },
545
- "stepKind": {
546
- "const": "branch"
547
- },
548
- "cases": {
549
- "type": "array",
550
- "items": {
551
- "$ref": "#Conditional"
552
- },
553
- "minItems": 1,
554
- "uniqueItems": true
555
- }
556
- },
557
- "allOf": [
558
- {
559
- "$ref": "#StepKindFacet"
560
- }
561
- ]
562
- }
563
- },
564
- "WhileStepIdentity": {
565
- "identity": "TYPE-WhileStepIdentity",
566
- "name": "WhileStepIdentity",
567
- "description": "dummy-description",
568
- "nucleusSchema": {
569
- "$anchor": "WhileStepIdentity",
570
- "$schema": "https://json-schema.org/draft/2020-12/schema",
571
- "type": "string",
572
- "pattern": "^WHILE_STEP-.+$"
573
- }
574
- },
575
- "WhileStep": {
576
- "identity": "TYPE-WhileStep",
577
- "name": "WhileStep",
578
- "description": "dummy-description",
579
- "nucleusSchema": {
580
- "$anchor": "WhileStep",
581
- "$schema": "https://json-schema.org/draft/2020-12/schema",
582
- "type": "object",
583
- "required": [
584
- "identity",
585
- "stepKind",
586
- "case"
587
- ],
588
- "properties": {
589
- "identity": {
590
- "$ref": "#WhileStepIdentity"
591
- },
592
- "stepKind": {
593
- "const": "while"
594
- },
595
- "case": {
596
- "$ref": "#Conditional"
597
- }
598
- },
599
- "allOf": [
600
- {
601
- "$ref": "#StepKindFacet"
602
- }
603
- ]
604
- }
605
- },
606
- "ForStepIdentity": {
607
- "identity": "TYPE-ForStepIdentity",
608
- "name": "ForStepIdentity",
609
- "description": "dummy-description",
610
- "nucleusSchema": {
611
- "$anchor": "ForStepIdentity",
612
- "$schema": "https://json-schema.org/draft/2020-12/schema",
613
- "type": "string",
614
- "pattern": "^FOR_STEP-.+$"
615
- }
616
- },
617
- "ForStep": {
618
- "identity": "TYPE-ForStep",
619
- "name": "ForStep",
620
- "description": "dummy-description",
621
- "nucleusSchema": {
622
- "$anchor": "ForStep",
623
- "$schema": "https://json-schema.org/draft/2020-12/schema",
624
- "type": "object",
625
- "required": [
626
- "identity",
627
- "stepKind",
628
- "case"
629
- ],
630
- "properties": {
631
- "identity": {
632
- "$ref": "#ForStepIdentity"
633
- },
634
- "stepKind": {
635
- "const": "for"
636
- },
637
- "case": {
638
- "$ref": "#Conditional"
639
- }
640
- },
641
- "allOf": [
642
- {
643
- "$ref": "#StepKindFacet"
644
- }
645
- ]
646
- }
647
- },
648
- "StepIdentity": {
649
- "identity": "TYPE-StepIdentity",
650
- "name": "StepIdentity",
651
- "description": "dummy-description",
652
- "nucleusSchema": {
653
- "$anchor": "StepIdentity",
654
- "$schema": "https://json-schema.org/draft/2020-12/schema",
655
- "type": "object",
656
- "oneOf": [
657
- {
658
- "$ref": "#JobStepIdentity"
659
- },
660
- {
661
- "$ref": "#BranchStepIdentity"
662
- },
663
- {
664
- "$ref": "#WhileStepIdentity"
665
- },
666
- {
667
- "$ref": "#ForStepIdentity"
668
- }
669
- ]
670
- }
671
- },
672
- "Step": {
673
- "identity": "TYPE-Step",
674
- "name": "Step",
675
- "description": "dummy-description",
676
- "nucleusSchema": {
677
- "$anchor": "Step",
678
- "$schema": "https://json-schema.org/draft/2020-12/schema",
679
- "type": "object",
680
- "oneOf": [
681
- {
682
- "$ref": "#JobStep"
683
- },
684
- {
685
- "$ref": "#BranchStep"
686
- },
687
- {
688
- "$ref": "#WhileStep"
689
- },
690
- {
691
- "$ref": "#ForStep"
692
- }
693
- ],
694
- "unevaluatedProperties": false
695
- }
696
- },
697
- "CreationContext": {
698
- "identity": "TYPE-CreationContext",
699
- "name": "CreationContext",
700
- "description": "dummy-description",
701
- "nucleusSchema": {
702
- "$anchor": "CreationContext",
703
- "$schema": "https://json-schema.org/draft/2020-12/schema",
704
- "type": "object",
705
- "required": [
706
- "resourceRoleHandle",
707
- "jobStepHandle"
708
- ],
709
- "properties": {
710
- "resourceRoleHandle": {
711
- "$ref": "#ResourceRoleIdentity"
712
- },
713
- "jobStepHandle": {
714
- "$ref": "#JobStepIdentity"
715
- }
716
- }
717
- }
718
- },
719
- "CreationContextFacet": {
720
- "identity": "TYPE-CreationContextFacet",
721
- "name": "CreationContextFacet",
722
- "description": "dummy-description",
723
- "nucleusSchema": {
724
- "$anchor": "CreationContextFacet",
725
- "$schema": "https://json-schema.org/draft/2020-12/schema",
726
- "type": "object",
727
- "required": [
728
- "creationContext"
729
- ],
730
- "properties": {
731
- "creationContext": {
732
- "$ref": "#CreationContext"
733
- }
734
- }
735
- }
736
- },
737
- "ResourceIdentity": {
738
- "identity": "TYPE-ResourceIdentity",
739
- "name": "ResourceIdentity",
740
- "description": "dummy-description",
741
- "nucleusSchema": {
742
- "$anchor": "ResourceIdentity",
743
- "$schema": "https://json-schema.org/draft/2020-12/schema",
744
- "type": "string",
745
- "pattern": "^RESOURCE-.+$"
746
- }
747
- },
748
- "ResourceShellBase": {
749
- "identity": "TYPE-ResourceShellBase",
750
- "name": "ResourceShellBase",
751
- "description": "dummy-description",
752
- "nucleusSchema": {
753
- "$anchor": "ResourceShellBase",
754
- "$schema": "https://json-schema.org/draft/2020-12/schema",
755
- "type": "object",
756
- "required": [
757
- "identity",
758
- "resourceTypeHandle",
759
- "resourceKind"
760
- ],
761
- "properties": {
762
- "identity": {
763
- "$ref": "#ResourceIdentity"
764
- },
765
- "resourceTypeHandle": {
766
- "$ref": "#ResourceTypeIdentity"
767
- },
768
- "resourceKind": {
769
- "$ref": "#ResourceKind"
770
- }
771
- }
772
- }
773
- },
774
- "ResourceKind": {
775
- "identity": "TYPE-ResourceKind",
776
- "name": "ResourceKind",
777
- "description": "dummy-description",
778
- "nucleusSchema": {
779
- "$anchor": "ResourceKind",
780
- "$schema": "https://json-schema.org/draft/2020-12/schema",
781
- "type": "string",
782
- "enum": [
783
- "missing",
784
- "inputPotential",
785
- "outputPotential",
786
- "materialized"
787
- ]
788
- }
789
- },
790
- "ResourceKindFacet": {
791
- "identity": "TYPE-ResourceKindFacet",
792
- "name": "ResourceKindFacet",
793
- "description": "dummy-description",
794
- "nucleusSchema": {
795
- "$anchor": "ResourceKindFacet",
796
- "$schema": "https://json-schema.org/draft/2020-12/schema",
797
- "type": "object",
798
- "required": [
799
- "resourceKind"
800
- ],
801
- "properties": {
802
- "resourceKind": {
803
- "$ref": "#ResourceKind"
804
- }
805
- }
806
- }
807
- },
808
- "ShellMissing": {
809
- "identity": "TYPE-ShellMissing",
810
- "name": "ShellMissing",
811
- "description": "dummy-description",
812
- "nucleusSchema": {
813
- "$anchor": "ShellMissing",
814
- "$schema": "https://json-schema.org/draft/2020-12/schema",
815
- "type": "object",
816
- "properties": {
817
- "resourceKind": {
818
- "const": "missing"
819
- }
820
- },
821
- "allOf": [
822
- {
823
- "$ref": "#ResourceShellBase"
824
- },
825
- {
826
- "$ref": "#ResourceKindFacet"
827
- }
828
- ],
829
- "unevaluatedProperties": false
830
- }
831
- },
832
- "ShellInputPotential": {
833
- "identity": "TYPE-ShellInputPotential",
834
- "name": "ShellInputPotential",
835
- "description": "dummy-description",
836
- "nucleusSchema": {
837
- "$anchor": "ShellInputPotential",
838
- "$schema": "https://json-schema.org/draft/2020-12/schema",
839
- "type": "object",
840
- "properties": {
841
- "resourceKind": {
842
- "const": "inputPotential"
843
- }
844
- },
845
- "allOf": [
846
- {
847
- "$ref": "#ResourceShellBase"
848
- },
849
- {
850
- "$ref": "#CreationContextFacet"
851
- },
852
- {
853
- "$ref": "#ResourceKindFacet"
854
- }
855
- ],
856
- "unevaluatedProperties": false
857
- }
858
- },
859
- "ShellOutputPotential": {
860
- "identity": "TYPE-ShellOutputPotential",
861
- "name": "ShellOutputPotential",
862
- "description": "dummy-description",
863
- "nucleusSchema": {
864
- "$anchor": "ShellOutputPotential",
865
- "$schema": "https://json-schema.org/draft/2020-12/schema",
866
- "type": "object",
867
- "properties": {
868
- "resourceKind": {
869
- "const": "outputPotential"
870
- }
871
- },
872
- "allOf": [
873
- {
874
- "$ref": "#ResourceShellBase"
875
- },
876
- {
877
- "$ref": "#CreationContextFacet"
878
- },
879
- {
880
- "$ref": "#ResourceKindFacet"
881
- }
882
- ],
883
- "unevaluatedProperties": false
884
- }
885
- },
886
- "Timestamp": {
887
- "identity": "TYPE-Timestamp",
888
- "name": "Timestamp",
889
- "description": "dummy-description",
890
- "nucleusSchema": {
891
- "$anchor": "Timestamp",
892
- "$schema": "https://json-schema.org/draft/2020-12/schema",
893
- "type": "string",
894
- "format": "date-time"
895
- }
896
- },
897
- "TimestampFacet": {
898
- "identity": "TYPE-TimestampFacet",
899
- "name": "TimestampFacet",
900
- "description": "dummy-description",
901
- "nucleusSchema": {
902
- "$anchor": "TimestampFacet",
903
- "$schema": "https://json-schema.org/draft/2020-12/schema",
904
- "type": "object",
905
- "required": [
906
- "timestamp"
907
- ],
908
- "properties": {
909
- "timestamp": {
910
- "$ref": "#Timestamp"
911
- }
912
- }
913
- }
914
- },
915
- "Path": {
916
- "identity": "TYPE-Path",
917
- "name": "Path",
918
- "description": "dummy-description",
919
- "nucleusSchema": {
920
- "$anchor": "Path",
921
- "$schema": "https://json-schema.org/draft/2020-12/schema",
922
- "type": "string",
923
- "format": "uri-reference"
924
- }
925
- },
926
- "PathFacet": {
927
- "identity": "TYPE-PathFacet",
928
- "name": "PathFacet",
929
- "description": "dummy-description",
930
- "nucleusSchema": {
931
- "$anchor": "PathFacet",
932
- "$schema": "https://json-schema.org/draft/2020-12/schema",
933
- "type": "object",
934
- "required": [
935
- "path"
936
- ],
937
- "properties": {
938
- "path": {
939
- "$ref": "#Path"
940
- }
941
- }
942
- }
943
- },
944
- "ShellMaterializedBase": {
945
- "identity": "TYPE-ShellMaterializedBase",
946
- "name": "ShellMaterializedBase",
947
- "description": "dummy-description",
948
- "nucleusSchema": {
949
- "$anchor": "ShellMaterializedBase",
950
- "$schema": "https://json-schema.org/draft/2020-12/schema",
951
- "type": "object",
952
- "required": [
953
- "version"
954
- ],
955
- "properties": {
956
- "version": {
957
- "const": 1
958
- },
959
- "resourceKind": {
960
- "const": "materialized"
961
- }
962
- },
963
- "allOf": [
964
- {
965
- "$ref": "#ResourceShellBase"
966
- },
967
- {
968
- "$ref": "#CreationContextFacet"
969
- },
970
- {
971
- "$ref": "#ResourceKindFacet"
972
- },
973
- {
974
- "$ref": "#TimestampFacet"
975
- },
976
- {
977
- "$ref": "#PathFacet"
978
- }
979
- ]
980
- }
981
- },
982
- "ShellMaterialized": {
983
- "identity": "TYPE-ShellMaterialized",
984
- "name": "ShellMaterialized",
985
- "description": "dummy-description",
986
- "nucleusSchema": {
987
- "$anchor": "ShellMaterialized",
988
- "$schema": "https://json-schema.org/draft/2020-12/schema",
989
- "type": "object",
990
- "$ref": "#ShellMaterializedBase",
991
- "unevaluatedProperties": false
992
- }
993
- },
994
- "ResourceMissing": {
995
- "identity": "TYPE-ResourceMissing",
996
- "name": "ResourceMissing",
997
- "description": "dummy-description",
998
- "nucleusSchema": {
999
- "$anchor": "ResourceMissing",
1000
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1001
- "type": "object",
1002
- "$ref": "#ShellMissing",
1003
- "unevaluatedProperties": false
1004
- }
1005
- },
1006
- "ResourceInputPotential": {
1007
- "identity": "TYPE-ResourceInputPotential",
1008
- "name": "ResourceInputPotential",
1009
- "description": "dummy-description",
1010
- "nucleusSchema": {
1011
- "$anchor": "ResourceInputPotential",
1012
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1013
- "type": "object",
1014
- "$ref": "#ShellInputPotential",
1015
- "unevaluatedProperties": false
1016
- }
1017
- },
1018
- "ResourceOutputPotential": {
1019
- "identity": "TYPE-ResourceOutputPotential",
1020
- "name": "ResourceOutputPotential",
1021
- "description": "dummy-description",
1022
- "nucleusSchema": {
1023
- "$anchor": "ResourceOutputPotential",
1024
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1025
- "type": "object",
1026
- "$ref": "#ShellOutputPotential",
1027
- "unevaluatedProperties": false
1028
- }
1029
- },
1030
- "JsonData": {
1031
- "identity": "TYPE-JsonData",
1032
- "name": "JsonData",
1033
- "description": "dummy-description",
1034
- "nucleusSchema": {
1035
- "$anchor": "JsonData",
1036
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1037
- "oneOf": [
1038
- {
1039
- "type": "null"
1040
- },
1041
- {
1042
- "type": "boolean"
1043
- },
1044
- {
1045
- "type": "number"
1046
- },
1047
- {
1048
- "type": "string"
1049
- },
1050
- {
1051
- "type": "array",
1052
- "items": {
1053
- "$ref": "#JsonData"
1054
- }
1055
- },
1056
- {
1057
- "type": "object",
1058
- "additionalProperties": {
1059
- "$ref": "#JsonData"
1060
- }
1061
- }
1062
- ]
1063
- }
1064
- },
1065
- "Nucleus": {
1066
- "identity": "TYPE-Nucleus",
1067
- "name": "Nucleus",
1068
- "description": "dummy-description",
1069
- "nucleusSchema": {
1070
- "$anchor": "Nucleus",
1071
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1072
- "type": "object",
1073
- "additionalProperties": {
1074
- "$ref": "#JsonData"
1075
- }
1076
- }
1077
- },
1078
- "NucleusFacet": {
1079
- "identity": "TYPE-NucleusFacet",
1080
- "name": "NucleusFacet",
1081
- "description": "dummy-description",
1082
- "nucleusSchema": {
1083
- "$anchor": "NucleusFacet",
1084
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1085
- "type": "object",
1086
- "required": [
1087
- "nucleus"
1088
- ],
1089
- "properties": {
1090
- "nucleus": {
1091
- "$ref": "#Nucleus"
1092
- }
1093
- }
1094
- }
1095
- },
1096
- "ResourceMaterialized": {
1097
- "identity": "TYPE-ResourceMaterialized",
1098
- "name": "ResourceMaterialized",
1099
- "description": "dummy-description",
1100
- "nucleusSchema": {
1101
- "$anchor": "ResourceMaterialized",
1102
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1103
- "type": "object",
1104
- "allOf": [
1105
- {
1106
- "$ref": "#ShellMaterializedBase"
1107
- },
1108
- {
1109
- "$comment": "This will be overlayed dynamically to match the data structure of the underlying ResourceType's nucleusSchema.",
1110
- "$ref": "#NucleusFacet"
1111
- }
1112
- ],
1113
- "unevaluatedProperties": false
1114
- }
1115
- },
1116
- "Resource": {
1117
- "identity": "TYPE-Resource",
1118
- "name": "Resource",
1119
- "description": "dummy-description",
1120
- "nucleusSchema": {
1121
- "$anchor": "Resource",
1122
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1123
- "type": "object",
1124
- "oneOf": [
1125
- {
1126
- "$ref": "#ResourceMissing"
1127
- },
1128
- {
1129
- "$ref": "#ResourceInputPotential"
1130
- },
1131
- {
1132
- "$ref": "#ResourceOutputPotential"
1133
- },
1134
- {
1135
- "$ref": "#ResourceMaterialized"
1136
- }
1137
- ],
1138
- "unevaluatedProperties": false
1139
- }
1140
- },
1141
- "JobStepSocket": {
1142
- "identity": "TYPE-JobStepSocket",
1143
- "name": "JobStepSocket",
1144
- "description": "dummy-description",
1145
- "nucleusSchema": {
1146
- "$anchor": "JobStepSocket",
1147
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1148
- "type": "object",
1149
- "propertyNames": {
1150
- "$ref": "#ResourceRoleIdentity"
1151
- },
1152
- "additionalProperties": {
1153
- "$ref": "#Resource"
1154
- }
1155
- }
1156
- },
1157
- "StrategyState": {
1158
- "identity": "TYPE-StrategyState",
1159
- "name": "StrategyState",
1160
- "description": "dummy-description",
1161
- "nucleusSchema": {
1162
- "$anchor": "StrategyState",
1163
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1164
- "type": "object",
1165
- "propertyNames": {
1166
- "$ref": "#JobStepIdentity"
1167
- },
1168
- "additionalProperties": {
1169
- "$ref": "#JobStepSocket"
1170
- }
1171
- }
1172
- },
1173
- "StrategyStateFacet": {
1174
- "identity": "TYPE-StrategyStateFacet",
1175
- "name": "StrategyStateFacet",
1176
- "description": "dummy-description",
1177
- "nucleusSchema": {
1178
- "$anchor": "StrategyStateFacet",
1179
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1180
- "type": "object",
1181
- "required": [
1182
- "strategyState"
1183
- ],
1184
- "properties": {
1185
- "strategyState": {
1186
- "$ref": "#StrategyState"
1187
- }
1188
- }
1189
- }
1190
- },
1191
- "StepArray": {
1192
- "identity": "TYPE-StepArray",
1193
- "name": "StepArray",
1194
- "description": "dummy-description",
1195
- "nucleusSchema": {
1196
- "$anchor": "StepArray",
1197
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1198
- "type": "array",
1199
- "items": {
1200
- "$ref": "#Step"
1201
- },
1202
- "uniqueItems": true
1203
- }
1204
- },
1205
- "StepsFacet": {
1206
- "identity": "TYPE-StepsFacet",
1207
- "name": "StepsFacet",
1208
- "description": "dummy-description",
1209
- "nucleusSchema": {
1210
- "$anchor": "StepsFacet",
1211
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1212
- "type": "object",
1213
- "required": [
1214
- "steps"
1215
- ],
1216
- "properties": {
1217
- "steps": {
1218
- "$ref": "#StepArray"
1219
- }
1220
- }
1221
- }
1222
- },
1223
- "RawStrategy": {
1224
- "identity": "TYPE-RawStrategy",
1225
- "name": "RawStrategy",
1226
- "description": "dummy-description",
1227
- "nucleusSchema": {
1228
- "$anchor": "RawStrategy",
1229
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1230
- "type": "object",
1231
- "allOf": [
1232
- {
1233
- "$ref": "#StepsFacet"
1234
- },
1235
- {
1236
- "$ref": "#StrategyStateFacet"
1237
- }
1238
- ],
1239
- "unevaluatedProperties": false
1240
- }
1241
- },
1242
- "RunnableStrategyIdentity": {
1243
- "identity": "TYPE-RunnableStrategyIdentity",
1244
- "name": "RunnableStrategyIdentity",
1245
- "description": "dummy-description",
1246
- "nucleusSchema": {
1247
- "$anchor": "RunnableStrategyIdentity",
1248
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1249
- "type": "string",
1250
- "pattern": "^RUNNABLE_STRATEGY-.+$"
1251
- }
1252
- },
1253
- "RunnableStrategyStatus": {
1254
- "identity": "TYPE-RunnableStrategyStatus",
1255
- "name": "RunnableStrategyStatus",
1256
- "description": "dummy-description",
1257
- "nucleusSchema": {
1258
- "$anchor": "RunnableStrategyStatus",
1259
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1260
- "type": "string",
1261
- "enum": [
1262
- "pending",
1263
- "running",
1264
- "completed",
1265
- "failed",
1266
- "cancelled"
1267
- ]
1268
- }
1269
- },
1270
- "RunnableStrategyContext": {
1271
- "identity": "TYPE-RunnableStrategyContext",
1272
- "name": "RunnableStrategyContext",
1273
- "description": "dummy-description",
1274
- "nucleusSchema": {
1275
- "$anchor": "RunnableStrategyContext",
1276
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1277
- "type": "object",
1278
- "required": [
1279
- "status"
1280
- ],
1281
- "properties": {
1282
- "status": {
1283
- "$ref": "#RunnableStrategyStatus"
1284
- },
1285
- "startedAt": {
1286
- "$ref": "#Timestamp"
1287
- },
1288
- "completedAt": {
1289
- "$ref": "#Timestamp"
1290
- }
1291
- },
1292
- "unevaluatedProperties": false
1293
- }
1294
- },
1295
- "StrategyThreadIdentity": {
1296
- "identity": "TYPE-StrategyThreadIdentity",
1297
- "name": "StrategyThreadIdentity",
1298
- "description": "dummy-description",
1299
- "nucleusSchema": {
1300
- "$anchor": "StrategyThreadIdentity",
1301
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1302
- "type": "string",
1303
- "pattern": "^STRATEGY_THREAD-.+$"
1304
- }
1305
- },
1306
- "StrategyThreadMap": {
1307
- "identity": "TYPE-StrategyThreadMap",
1308
- "name": "StrategyThreadMap",
1309
- "description": "dummy-description",
1310
- "nucleusSchema": {
1311
- "$anchor": "StrategyThreadMap",
1312
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1313
- "type": "object",
1314
- "propertyNames": {
1315
- "$ref": "#StrategyThreadIdentity"
1316
- },
1317
- "additionalProperties": {
1318
- "$ref": "#StepArray"
1319
- },
1320
- "$comment": "Each thread contains an array of steps, allowing for sequential execution within a thread while supporting parallel execution across multiple threads."
1321
- }
1322
- },
1323
- "StrategyThreadMapFacet": {
1324
- "identity": "TYPE-StrategyThreadMapFacet",
1325
- "name": "StrategyThreadMapFacet",
1326
- "description": "dummy-description",
1327
- "nucleusSchema": {
1328
- "$anchor": "StrategyThreadMapFacet",
1329
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1330
- "type": "object",
1331
- "required": [
1332
- "strategyThreadMap"
1333
- ],
1334
- "properties": {
1335
- "strategyThreadMap": {
1336
- "$ref": "#StrategyThreadMap"
1337
- }
1338
- }
1339
- }
1340
- },
1341
- "RunnableStrategy": {
1342
- "identity": "TYPE-RunnableStrategy",
1343
- "name": "RunnableStrategy",
1344
- "description": "dummy-description",
1345
- "nucleusSchema": {
1346
- "$anchor": "RunnableStrategy",
1347
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1348
- "type": "object",
1349
- "required": [
1350
- "identity",
1351
- "runnableStrategyContext"
1352
- ],
1353
- "properties": {
1354
- "identity": {
1355
- "$ref": "#RunnableStrategyIdentity"
1356
- },
1357
- "runnableStrategyContext": {
1358
- "$ref": "#RunnableStrategyContext"
1359
- }
1360
- },
1361
- "allOf": [
1362
- {
1363
- "$comment": "The Engine runs jobs specified by steps in strategyThreadMap. The Engine also injects repeted steps when encountering loops.",
1364
- "$ref": "#StrategyThreadMapFacet"
1365
- },
1366
- {
1367
- "$comment": "The Engine updates strategyState with materialized Resources upon job completions and runtime-provided input events. It also inserts inputPotential and outputPotential Resources upon step injections.",
1368
- "$ref": "#StrategyStateFacet"
1369
- }
1370
- ],
1371
- "unevaluatedProperties": false
1372
- }
1373
- },
1374
- "StrategyStateDelta": {
1375
- "identity": "TYPE-StrategyStateDelta",
1376
- "name": "StrategyStateDelta",
1377
- "description": "dummy-description",
1378
- "nucleusSchema": {
1379
- "$anchor": "StrategyStateDelta",
1380
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1381
- "type": "object",
1382
- "required": [
1383
- "strategyStateUpdate"
1384
- ],
1385
- "properties": {
1386
- "strategyStateUpdate": {
1387
- "$ref": "#StrategyState"
1388
- }
1389
- }
1390
- }
1391
- },
1392
- "RunnableStrategyUpdate": {
1393
- "identity": "TYPE-RunnableStrategyUpdate",
1394
- "name": "RunnableStrategyUpdate",
1395
- "description": "dummy-description",
1396
- "nucleusSchema": {
1397
- "$anchor": "RunnableStrategyUpdate",
1398
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1399
- "type": "object",
1400
- "required": [
1401
- "runnableStrategyHandle"
1402
- ],
1403
- "properties": {
1404
- "runnableStrategyHandle": {
1405
- "$ref": "#RunnableStrategyIdentity"
1406
- }
1407
- },
1408
- "allOf": [
1409
- {
1410
- "$ref": "#StrategyStateDelta"
1411
- }
1412
- ],
1413
- "unevaluatedProperties": false
1414
- }
1415
- },
1416
- "RunEventCounters": {
1417
- "identity": "TYPE-RunEventCounters",
1418
- "name": "RunEventCounters",
1419
- "description": "dummy-description",
1420
- "nucleusSchema": {
1421
- "$anchor": "RunEventCounters",
1422
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1423
- "type": "object",
1424
- "properties": {
1425
- "stepCounterAfter": {
1426
- "type": "integer"
1427
- },
1428
- "iterationCounterAfter": {
1429
- "type": "integer"
1430
- }
1431
- }
1432
- }
1433
- },
1434
- "RunEventStepMetadata": {
1435
- "identity": "TYPE-RunEventStepMetadata",
1436
- "name": "RunEventStepMetadata",
1437
- "description": "dummy-description",
1438
- "nucleusSchema": {
1439
- "$anchor": "RunEventStepMetadata",
1440
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1441
- "type": "object",
1442
- "required": [
1443
- "stepHandle",
1444
- "stepKind",
1445
- "threadStepIndex"
1446
- ],
1447
- "properties": {
1448
- "stepHandle": {
1449
- "$ref": "#StepIdentity"
1450
- },
1451
- "stepKind": {
1452
- "$ref": "#StepKind"
1453
- },
1454
- "threadStepIndex": {
1455
- "type": "integer"
1456
- }
1457
- }
1458
- }
1459
- },
1460
- "RunEventUpdates": {
1461
- "identity": "TYPE-RunEventUpdates",
1462
- "name": "RunEventUpdates",
1463
- "description": "dummy-description",
1464
- "nucleusSchema": {
1465
- "$anchor": "RunEventUpdates",
1466
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1467
- "type": "object",
1468
- "properties": {
1469
- "stepsMutation": {
1470
- "type": "object",
1471
- "required": [
1472
- "insertAt",
1473
- "inserted"
1474
- ],
1475
- "properties": {
1476
- "insertAt": {
1477
- "type": "integer"
1478
- },
1479
- "inserted": {
1480
- "$ref": "#StepArray"
1481
- }
1482
- }
1483
- },
1484
- "interruptData": {
1485
- "$comment": "Kept permissive; the engine may evolve interrupt payloads.",
1486
- "type": [
1487
- "object",
1488
- "null"
1489
- ]
1490
- }
1491
- },
1492
- "allOf": [
1493
- {
1494
- "$ref": "#StrategyStateDelta"
1495
- }
1496
- ]
1497
- }
1498
- },
1499
- "RunEventKind": {
1500
- "identity": "TYPE-RunEventKind",
1501
- "name": "RunEventKind",
1502
- "description": "dummy-description",
1503
- "nucleusSchema": {
1504
- "$anchor": "RunEventKind",
1505
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1506
- "type": "string",
1507
- "enum": [
1508
- "graph_start",
1509
- "tick",
1510
- "interrupt",
1511
- "graph_end"
1512
- ]
1513
- }
1514
- },
1515
- "RunEventBase": {
1516
- "identity": "TYPE-RunEventBase",
1517
- "name": "RunEventBase",
1518
- "description": "dummy-description",
1519
- "nucleusSchema": {
1520
- "$anchor": "RunEventBase",
1521
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1522
- "type": "object",
1523
- "required": [
1524
- "runEventKind",
1525
- "runnableStrategyHandle",
1526
- "strategyThreadHandle",
1527
- "createdAt",
1528
- "nodeName",
1529
- "eventSeq"
1530
- ],
1531
- "properties": {
1532
- "runEventKind": {
1533
- "$ref": "#RunEventKind"
1534
- },
1535
- "runnableStrategyHandle": {
1536
- "$ref": "#RunnableStrategyIdentity"
1537
- },
1538
- "strategyThreadHandle": {
1539
- "$ref": "#StrategyThreadIdentity"
1540
- },
1541
- "createdAt": {
1542
- "$ref": "#Timestamp"
1543
- },
1544
- "nodeName": {
1545
- "type": "string"
1546
- },
1547
- "eventSeq": {
1548
- "type": "integer"
1549
- },
1550
- "counters": {
1551
- "$ref": "#RunEventCounters"
1552
- },
1553
- "stepMetadata": {
1554
- "$ref": "#RunEventStepMetadata"
1555
- },
1556
- "updates": {
1557
- "$ref": "#RunEventUpdates"
1558
- }
1559
- }
1560
- }
1561
- },
1562
- "GraphStartRunEvent": {
1563
- "identity": "TYPE-GraphStartRunEvent",
1564
- "name": "GraphStartRunEvent",
1565
- "description": "dummy-description",
1566
- "nucleusSchema": {
1567
- "$anchor": "GraphStartRunEvent",
1568
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1569
- "allOf": [
1570
- {
1571
- "$ref": "#RunEventBase"
1572
- },
1573
- {
1574
- "type": "object",
1575
- "required": [
1576
- "runnableStrategySeed"
1577
- ],
1578
- "properties": {
1579
- "runEventKind": {
1580
- "const": "graph_start"
1581
- },
1582
- "runnableStrategySeed": {
1583
- "$ref": "#RunnableStrategy"
1584
- }
1585
- }
1586
- }
1587
- ]
1588
- }
1589
- },
1590
- "TickRunEvent": {
1591
- "identity": "TYPE-TickRunEvent",
1592
- "name": "TickRunEvent",
1593
- "description": "dummy-description",
1594
- "nucleusSchema": {
1595
- "$anchor": "TickRunEvent",
1596
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1597
- "allOf": [
1598
- {
1599
- "$ref": "#RunEventBase"
1600
- },
1601
- {
1602
- "type": "object",
1603
- "properties": {
1604
- "runEventKind": {
1605
- "const": "tick"
1606
- }
1607
- }
1608
- }
1609
- ]
1610
- }
1611
- },
1612
- "InterruptRunEvent": {
1613
- "identity": "TYPE-InterruptRunEvent",
1614
- "name": "InterruptRunEvent",
1615
- "description": "dummy-description",
1616
- "nucleusSchema": {
1617
- "$anchor": "InterruptRunEvent",
1618
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1619
- "allOf": [
1620
- {
1621
- "$ref": "#RunEventBase"
1622
- },
1623
- {
1624
- "type": "object",
1625
- "properties": {
1626
- "runEventKind": {
1627
- "const": "interrupt"
1628
- }
1629
- }
1630
- }
1631
- ]
1632
- }
1633
- },
1634
- "GraphEndRunEvent": {
1635
- "identity": "TYPE-GraphEndRunEvent",
1636
- "name": "GraphEndRunEvent",
1637
- "description": "dummy-description",
1638
- "nucleusSchema": {
1639
- "$anchor": "GraphEndRunEvent",
1640
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1641
- "allOf": [
1642
- {
1643
- "$ref": "#RunEventBase"
1644
- },
1645
- {
1646
- "type": "object",
1647
- "properties": {
1648
- "runEventKind": {
1649
- "const": "graph_end"
1650
- }
1651
- }
1652
- }
1653
- ]
1654
- }
1655
- },
1656
- "RunEvent": {
1657
- "identity": "TYPE-RunEvent",
1658
- "name": "RunEvent",
1659
- "description": "dummy-description",
1660
- "nucleusSchema": {
1661
- "$anchor": "RunEvent",
1662
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1663
- "type": "object",
1664
- "oneOf": [
1665
- {
1666
- "$ref": "#GraphStartRunEvent"
1667
- },
1668
- {
1669
- "$ref": "#TickRunEvent"
1670
- },
1671
- {
1672
- "$ref": "#InterruptRunEvent"
1673
- },
1674
- {
1675
- "$ref": "#GraphEndRunEvent"
1676
- }
1677
- ]
1678
- }
1679
- },
1680
- "StrategyRunIdentity": {
1681
- "identity": "TYPE-StrategyRunIdentity",
1682
- "name": "StrategyRunIdentity",
1683
- "description": "dummy-description",
1684
- "nucleusSchema": {
1685
- "$anchor": "StrategyRunIdentity",
1686
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1687
- "type": "string",
1688
- "pattern": "^STRATEGY_RUN-.+$"
1689
- }
1690
- },
1691
- "StrategyRun": {
1692
- "identity": "TYPE-StrategyRun",
1693
- "name": "StrategyRun",
1694
- "description": "dummy-description",
1695
- "nucleusSchema": {
1696
- "$anchor": "StrategyRun",
1697
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1698
- "type": "object",
1699
- "required": [
1700
- "identity",
1701
- "runnableStrategyHandle",
1702
- "recordedAt",
1703
- "runEvents"
1704
- ],
1705
- "properties": {
1706
- "identity": {
1707
- "$ref": "#StrategyRunIdentity"
1708
- },
1709
- "runnableStrategyHandle": {
1710
- "$comment": "Could be derived from the first event but useful for indexing.",
1711
- "$ref": "#RunnableStrategyIdentity"
1712
- },
1713
- "recordedAt": {
1714
- "$ref": "#Timestamp"
1715
- },
1716
- "runEvents": {
1717
- "type": "array",
1718
- "items": {
1719
- "$ref": "#RunEvent"
1720
- }
1721
- }
1722
- },
1723
- "unevaluatedProperties": false
1724
- }
1725
- },
1726
- "GoalIdentity": {
1727
- "identity": "TYPE-GoalIdentity",
1728
- "name": "GoalIdentity",
1729
- "description": "dummy-description",
1730
- "nucleusSchema": {
1731
- "$anchor": "GoalIdentity",
1732
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1733
- "type": "string",
1734
- "pattern": "^GOAL-.+$"
1735
- }
1736
- },
1737
- "Goal": {
1738
- "identity": "TYPE-Goal",
1739
- "name": "Goal",
1740
- "description": "dummy-description",
1741
- "nucleusSchema": {
1742
- "$anchor": "Goal",
1743
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1744
- "type": "object",
1745
- "required": [
1746
- "identity",
1747
- "target"
1748
- ],
1749
- "properties": {
1750
- "identity": {
1751
- "$ref": "#GoalIdentity"
1752
- },
1753
- "target": {
1754
- "type": "integer",
1755
- "minimum": 0
1756
- },
1757
- "disallowedJobs": {
1758
- "type": "array",
1759
- "items": {
1760
- "$ref": "#JobIdentity"
1761
- }
1762
- },
1763
- "disallowedSequences": {
1764
- "type": "array",
1765
- "items": {
1766
- "type": "array",
1767
- "items": {
1768
- "$ref": "#JobIdentity"
1769
- }
1770
- }
1771
- },
1772
- "minSteps": {
1773
- "type": "integer",
1774
- "minimum": 1
1775
- },
1776
- "maxSteps": {
1777
- "type": "integer",
1778
- "minimum": 1
1779
- }
1780
- },
1781
- "unevaluatedProperties": false
1782
- }
1783
- },
1784
- "Natural": {
1785
- "identity": "TYPE-Natural",
1786
- "name": "Natural",
1787
- "description": "dummy-description",
1788
- "nucleusSchema": {
1789
- "$anchor": "Natural",
1790
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1791
- "type": "object",
1792
- "required": [
1793
- "identity"
1794
- ],
1795
- "properties": {
1796
- "identity": {
1797
- "$ref": "#/$defs/NaturalIdentity"
1798
- }
1799
- },
1800
- "$defs": {
1801
- "NaturalIdentity": {
1802
- "type": "integer"
1803
- }
1804
- },
1805
- "additionalProperties": false
1806
- }
1807
- },
1808
- "Boolean": {
1809
- "identity": "TYPE-Boolean",
1810
- "name": "Boolean",
1811
- "description": "dummy-description",
1812
- "nucleusSchema": {
1813
- "$anchor": "Boolean",
1814
- "$schema": "https://json-schema.org/draft/2020-12/schema",
1815
- "type": "object",
1816
- "required": [
1817
- "identity"
1818
- ],
1819
- "properties": {
1820
- "identity": {
1821
- "$ref": "#/$defs/BooleanIdentity"
1822
- }
1823
- },
1824
- "$defs": {
1825
- "BooleanIdentity": {
1826
- "type": "boolean"
1827
- }
1828
- },
1829
- "additionalProperties": false
1830
- }
1831
- }
1832
- }
1833
- }
1
+ {
2
+ "identity": "TYPE-Genesis",
3
+ "name": "Genesis",
4
+ "description": "dummy-description",
5
+ "nucleusSchema": {
6
+ "$comment": "This file defines all schemas used internally by ToolProof.",
7
+ "$anchor": "Genesis",
8
+ "$id": "https://schemas.toolproof.com/v1/Genesis.json",
9
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
10
+ "$defs": {
11
+ "Name": {
12
+ "identity": "TYPE-Name",
13
+ "name": "Name",
14
+ "description": "dummy-description",
15
+ "nucleusSchema": {
16
+ "$anchor": "Name",
17
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
18
+ "type": "string",
19
+ "minLength": 1,
20
+ "pattern": "^(?:[A-Z][^0-9]*|[a-z]+/[a-z.+&-]+)$",
21
+ "$comment": "Validation is intercepted by an AI Agent that verifies the name against Toolproof's naming conventions.",
22
+ "semanticValidation": "Ajv custom keyword to verify name."
23
+ }
24
+ },
25
+ "NameFacet": {
26
+ "identity": "TYPE-NameFacet",
27
+ "name": "NameFacet",
28
+ "description": "dummy-description",
29
+ "nucleusSchema": {
30
+ "$anchor": "NameFacet",
31
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
32
+ "type": "object",
33
+ "required": [
34
+ "name"
35
+ ],
36
+ "properties": {
37
+ "name": {
38
+ "$ref": "#Name"
39
+ }
40
+ }
41
+ }
42
+ },
43
+ "Description": {
44
+ "identity": "TYPE-Description",
45
+ "name": "Description",
46
+ "description": "dummy-description",
47
+ "nucleusSchema": {
48
+ "$anchor": "Description",
49
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
50
+ "type": "string",
51
+ "minLength": 1,
52
+ "$comment": "Validation is intercepted by an AI Agent that verifies the description against Toolproof's documentation standards.",
53
+ "semanticValidation": "Ajv custom keyword to verify description."
54
+ }
55
+ },
56
+ "DescriptionFacet": {
57
+ "identity": "TYPE-DescriptionFacet",
58
+ "name": "DescriptionFacet",
59
+ "description": "dummy-description",
60
+ "nucleusSchema": {
61
+ "$anchor": "DescriptionFacet",
62
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
63
+ "type": "object",
64
+ "required": [
65
+ "description"
66
+ ],
67
+ "properties": {
68
+ "description": {
69
+ "$ref": "#Description"
70
+ }
71
+ }
72
+ }
73
+ },
74
+ "DocumentationFacet": {
75
+ "identity": "TYPE-DocumentationFacet",
76
+ "name": "DocumentationFacet",
77
+ "description": "dummy-description",
78
+ "nucleusSchema": {
79
+ "$anchor": "DocumentationFacet",
80
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
81
+ "type": "object",
82
+ "allOf": [
83
+ {
84
+ "$ref": "#NameFacet"
85
+ },
86
+ {
87
+ "$ref": "#DescriptionFacet"
88
+ }
89
+ ]
90
+ }
91
+ },
92
+ "Uri": {
93
+ "identity": "TYPE-Uri",
94
+ "name": "Uri",
95
+ "description": "dummy-description",
96
+ "nucleusSchema": {
97
+ "$anchor": "Uri",
98
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
99
+ "type": "string",
100
+ "format": "uri"
101
+ }
102
+ },
103
+ "ResourceTypeIdentity": {
104
+ "identity": "TYPE-ResourceTypeIdentity",
105
+ "name": "ResourceTypeIdentity",
106
+ "description": "dummy-description",
107
+ "nucleusSchema": {
108
+ "$anchor": "ResourceTypeIdentity",
109
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
110
+ "type": "string",
111
+ "pattern": "^TYPE-.+$"
112
+ }
113
+ },
114
+ "ResourceType": {
115
+ "identity": "TYPE-ResourceType",
116
+ "name": "ResourceType",
117
+ "description": "dummy-description",
118
+ "nucleusSchema": {
119
+ "$anchor": "ResourceType",
120
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
121
+ "type": "object",
122
+ "required": [
123
+ "identity",
124
+ "nucleusSchema"
125
+ ],
126
+ "properties": {
127
+ "identity": {
128
+ "$ref": "#ResourceTypeIdentity"
129
+ },
130
+ "nucleusSchema": true,
131
+ "embeddingUriDict": {
132
+ "type": "object",
133
+ "propertyNames": {
134
+ "type": "string",
135
+ "pattern": "^EMBEDDING-.+$"
136
+ },
137
+ "additionalProperties": {
138
+ "$ref": "#Uri"
139
+ },
140
+ "minProperties": 1,
141
+ "$comment": "A ResourceType may specify a set of embedding models that convert the raw data (or one of its alternative representations) into vector embeddings. The build process enforces that the keys of this dict are members of a set of predefined embedding models."
142
+ },
143
+ "generatorUriDict": {
144
+ "type": "object",
145
+ "propertyNames": {
146
+ "type": "string",
147
+ "pattern": "^GENERATOR-.+$"
148
+ },
149
+ "additionalProperties": {
150
+ "$ref": "#Uri"
151
+ },
152
+ "minProperties": 1,
153
+ "$comment": "A ResourceType may specify a set of generators that generate different representations of its instances from the raw file. A ToolProof Resource is always backed by a raw file. This is also true for the Resources (of type ResourceType) defined in this file! The build process enforces that the keys of this dict are members of a set of predefined generators. GENERATOR-Json is an identifier for a generator that generates JSON data from the raw file. If the raw file is a JSON file, GENERATOR-Json is an implicit identity operation (i.e. an operation that does nothing) and must not be present in the dict. A ResourceType may also specify other generators, such as GENERATOR-LeanTerm, which generates an instance (or 'term' in Lean jargon) of a corresponding Lean type from the raw file. ResourceTypes that specify GENERATOR-LeanTerm must also specify a corresponding GENERATOR-LeanType. While the term-version runs when data instances enter the ecosystem, the type-version runs when the ResourceType itself enters the ecosystem."
154
+ }
155
+ },
156
+ "allOf": [
157
+ {
158
+ "$ref": "#DocumentationFacet"
159
+ }
160
+ ]
161
+ }
162
+ },
163
+ "ResourceRoleIdentity": {
164
+ "identity": "TYPE-ResourceRoleIdentity",
165
+ "name": "ResourceRoleIdentity",
166
+ "description": "dummy-description",
167
+ "nucleusSchema": {
168
+ "$anchor": "ResourceRoleIdentity",
169
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
170
+ "type": "string",
171
+ "pattern": "^ROLE-.+$"
172
+ }
173
+ },
174
+ "ResourceRoleValue": {
175
+ "identity": "TYPE-ResourceRoleValue",
176
+ "name": "ResourceRoleValue",
177
+ "description": "dummy-description",
178
+ "nucleusSchema": {
179
+ "$anchor": "ResourceRoleValue",
180
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
181
+ "type": "object",
182
+ "allOf": [
183
+ {
184
+ "required": [
185
+ "resourceTypeHandle"
186
+ ],
187
+ "properties": {
188
+ "resourceTypeHandle": {
189
+ "$ref": "#ResourceTypeIdentity"
190
+ }
191
+ }
192
+ },
193
+ {
194
+ "$ref": "#DocumentationFacet"
195
+ }
196
+ ]
197
+ },
198
+ "unevaluatedProperties": false
199
+ },
200
+ "ResourceRole": {
201
+ "identity": "TYPE-ResourceRole",
202
+ "name": "ResourceRole",
203
+ "description": "dummy-description",
204
+ "nucleusSchema": {
205
+ "$anchor": "ResourceRole",
206
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
207
+ "type": "object",
208
+ "allOf": [
209
+ {
210
+ "type": "object",
211
+ "required": [
212
+ "identity"
213
+ ],
214
+ "properties": {
215
+ "identity": {
216
+ "$ref": "#ResourceRoleIdentity"
217
+ }
218
+ }
219
+ },
220
+ {
221
+ "$ref": "#ResourceRoleValue"
222
+ }
223
+ ]
224
+ },
225
+ "unevaluatedProperties": false
226
+ },
227
+ "RoleDict": {
228
+ "identity": "TYPE-RoleDict",
229
+ "name": "RoleDict",
230
+ "description": "dummy-description",
231
+ "nucleusSchema": {
232
+ "$anchor": "RoleDict",
233
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
234
+ "type": "object",
235
+ "propertyNames": {
236
+ "$ref": "#ResourceRoleIdentity"
237
+ },
238
+ "additionalProperties": {
239
+ "$ref": "#ResourceRoleValue"
240
+ }
241
+ }
242
+ },
243
+ "Error": {
244
+ "identity": "TYPE-Error",
245
+ "name": "Error",
246
+ "description": "dummy-description",
247
+ "nucleusSchema": {
248
+ "$anchor": "Error",
249
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
250
+ "type": "object",
251
+ "allOf": [
252
+ {
253
+ "$ref": "#DocumentationFacet"
254
+ },
255
+ {
256
+ "properties": {
257
+ "details": {
258
+ "type": "object"
259
+ }
260
+ }
261
+ }
262
+ ],
263
+ "unevaluatedProperties": false
264
+ }
265
+ },
266
+ "Roles": {
267
+ "identity": "TYPE-Roles",
268
+ "name": "Roles",
269
+ "description": "dummy-description",
270
+ "nucleusSchema": {
271
+ "$anchor": "Roles",
272
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
273
+ "type": "object",
274
+ "required": [
275
+ "inputDict",
276
+ "outputDict"
277
+ ],
278
+ "properties": {
279
+ "inputDict": {
280
+ "$ref": "#RoleDict"
281
+ },
282
+ "outputDict": {
283
+ "allOf": [
284
+ {
285
+ "$ref": "#RoleDict"
286
+ },
287
+ {
288
+ "type": "object",
289
+ "required": [
290
+ "ROLE-ErrorOutput"
291
+ ],
292
+ "properties": {
293
+ "ROLE-ErrorOutput": {
294
+ "type": "object",
295
+ "allOf": [
296
+ {
297
+ "$ref": "#ResourceRoleValue"
298
+ },
299
+ {
300
+ "required": [
301
+ "resourceTypeHandle",
302
+ "name",
303
+ "description"
304
+ ],
305
+ "properties": {
306
+ "resourceTypeHandle": {
307
+ "const": "TYPE-Error"
308
+ },
309
+ "name": {
310
+ "const": "ErrorOutput"
311
+ },
312
+ "description": {
313
+ "const": "Represents error outputs from job runs."
314
+ }
315
+ }
316
+ }
317
+ ]
318
+ }
319
+ }
320
+ }
321
+ ]
322
+ }
323
+ },
324
+ "unevaluatedProperties": false
325
+ }
326
+ },
327
+ "RolesFacet": {
328
+ "identity": "TYPE-RolesFacet",
329
+ "name": "RolesFacet",
330
+ "description": "dummy-description",
331
+ "nucleusSchema": {
332
+ "$anchor": "RolesFacet",
333
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
334
+ "type": "object",
335
+ "required": [
336
+ "roles"
337
+ ],
338
+ "properties": {
339
+ "roles": {
340
+ "$ref": "#Roles"
341
+ }
342
+ }
343
+ }
344
+ },
345
+ "JobIdentity": {
346
+ "identity": "TYPE-JobIdentity",
347
+ "name": "JobIdentity",
348
+ "description": "dummy-description",
349
+ "nucleusSchema": {
350
+ "$anchor": "JobIdentity",
351
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
352
+ "type": "string",
353
+ "pattern": "^JOB-.+$"
354
+ }
355
+ },
356
+ "Job": {
357
+ "identity": "TYPE-Job",
358
+ "name": "Job",
359
+ "description": "dummy-description",
360
+ "nucleusSchema": {
361
+ "$anchor": "Job",
362
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
363
+ "type": "object",
364
+ "required": [
365
+ "identity",
366
+ "implementationUri"
367
+ ],
368
+ "properties": {
369
+ "identity": {
370
+ "$ref": "#JobIdentity"
371
+ },
372
+ "implementationUri": {
373
+ "$comment": "Instances of a ResourceType that requires implementationUri are 'executable' ResourceTypes. TYPE-Job is the canonical executable ResourceType in the ecosystem.",
374
+ "$ref": "#Uri"
375
+ }
376
+ },
377
+ "allOf": [
378
+ {
379
+ "$ref": "#DocumentationFacet"
380
+ },
381
+ {
382
+ "$ref": "#RolesFacet"
383
+ }
384
+ ],
385
+ "unevaluatedProperties": false
386
+ }
387
+ },
388
+ "RoleBindingArray": {
389
+ "identity": "TYPE-RoleBindingArray",
390
+ "name": "RoleBindingArray",
391
+ "description": "dummy-description",
392
+ "nucleusSchema": {
393
+ "$anchor": "RoleBindingArray",
394
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
395
+ "type": "array",
396
+ "items": {
397
+ "$ref": "#ResourceRoleIdentity"
398
+ }
399
+ }
400
+ },
401
+ "RoleBindings": {
402
+ "identity": "TYPE-RoleBindings",
403
+ "name": "RoleBindings",
404
+ "description": "dummy-description",
405
+ "nucleusSchema": {
406
+ "$anchor": "RoleBindings",
407
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
408
+ "type": "object",
409
+ "required": [
410
+ "inputBindings",
411
+ "outputBindings"
412
+ ],
413
+ "properties": {
414
+ "inputBindings": {
415
+ "$ref": "#RoleBindingArray"
416
+ },
417
+ "outputBindings": {
418
+ "$ref": "#RoleBindingArray"
419
+ }
420
+ }
421
+ },
422
+ "unevaluatedProperties": false
423
+ },
424
+ "RoleBindingsFacet": {
425
+ "identity": "TYPE-RoleBindingsFacet",
426
+ "name": "RoleBindingsFacet",
427
+ "description": "dummy-description",
428
+ "nucleusSchema": {
429
+ "$anchor": "RoleBindingsFacet",
430
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
431
+ "type": "object",
432
+ "required": [
433
+ "roleBindings"
434
+ ],
435
+ "properties": {
436
+ "roleBindings": {
437
+ "$ref": "#RoleBindings"
438
+ }
439
+ }
440
+ }
441
+ },
442
+ "StepKind": {
443
+ "identity": "TYPE-StepKind",
444
+ "name": "StepKind",
445
+ "description": "dummy-description",
446
+ "nucleusSchema": {
447
+ "$anchor": "StepKind",
448
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
449
+ "type": "string",
450
+ "enum": [
451
+ "job",
452
+ "branch",
453
+ "while",
454
+ "for"
455
+ ]
456
+ }
457
+ },
458
+ "StepKindFacet": {
459
+ "identity": "TYPE-StepKindFacet",
460
+ "name": "StepKindFacet",
461
+ "description": "dummy-description",
462
+ "nucleusSchema": {
463
+ "$anchor": "StepKindFacet",
464
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
465
+ "type": "object",
466
+ "required": [
467
+ "stepKind"
468
+ ],
469
+ "properties": {
470
+ "stepKind": {
471
+ "$ref": "#StepKind"
472
+ }
473
+ }
474
+ }
475
+ },
476
+ "JobStepIdentity": {
477
+ "identity": "TYPE-JobStepIdentity",
478
+ "name": "JobStepIdentity",
479
+ "description": "dummy-description",
480
+ "nucleusSchema": {
481
+ "$anchor": "JobStepIdentity",
482
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
483
+ "type": "string",
484
+ "pattern": "^JOB_STEP-.+$"
485
+ }
486
+ },
487
+ "JobStep": {
488
+ "identity": "TYPE-JobStep",
489
+ "name": "JobStep",
490
+ "description": "dummy-description",
491
+ "nucleusSchema": {
492
+ "$anchor": "JobStep",
493
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
494
+ "type": "object",
495
+ "required": [
496
+ "identity",
497
+ "stepKind",
498
+ "jobHandle"
499
+ ],
500
+ "properties": {
501
+ "identity": {
502
+ "$ref": "#JobStepIdentity"
503
+ },
504
+ "stepKind": {
505
+ "const": "job"
506
+ },
507
+ "jobHandle": {
508
+ "$ref": "#JobIdentity"
509
+ }
510
+ },
511
+ "allOf": [
512
+ {
513
+ "$ref": "#StepKindFacet"
514
+ },
515
+ {
516
+ "$comment": "This will be overlayed dynamically to specify roleBindings corresponding to the roles of the underlying job.",
517
+ "$ref": "#RoleBindingsFacet"
518
+ }
519
+ ]
520
+ }
521
+ },
522
+ "Conditional": {
523
+ "identity": "TYPE-Conditional",
524
+ "name": "Conditional",
525
+ "description": "dummy-description",
526
+ "nucleusSchema": {
527
+ "$anchor": "Conditional",
528
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
529
+ "type": "object",
530
+ "required": [
531
+ "when",
532
+ "what"
533
+ ],
534
+ "properties": {
535
+ "when": {
536
+ "$ref": "#JobStep"
537
+ },
538
+ "what": {
539
+ "$ref": "#JobStep"
540
+ }
541
+ },
542
+ "unevaluatedProperties": false
543
+ }
544
+ },
545
+ "BranchStepIdentity": {
546
+ "identity": "TYPE-BranchStepIdentity",
547
+ "name": "BranchStepIdentity",
548
+ "description": "dummy-description",
549
+ "nucleusSchema": {
550
+ "$anchor": "BranchStepIdentity",
551
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
552
+ "type": "string",
553
+ "pattern": "^BRANCH_STEP-.+$"
554
+ }
555
+ },
556
+ "BranchStep": {
557
+ "identity": "TYPE-BranchStep",
558
+ "name": "BranchStep",
559
+ "description": "dummy-description",
560
+ "nucleusSchema": {
561
+ "$anchor": "BranchStep",
562
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
563
+ "type": "object",
564
+ "required": [
565
+ "identity",
566
+ "stepKind",
567
+ "cases"
568
+ ],
569
+ "properties": {
570
+ "identity": {
571
+ "$ref": "#BranchStepIdentity"
572
+ },
573
+ "stepKind": {
574
+ "const": "branch"
575
+ },
576
+ "cases": {
577
+ "type": "array",
578
+ "items": {
579
+ "$ref": "#Conditional"
580
+ },
581
+ "minItems": 1,
582
+ "uniqueItems": true
583
+ }
584
+ },
585
+ "allOf": [
586
+ {
587
+ "$ref": "#StepKindFacet"
588
+ }
589
+ ]
590
+ }
591
+ },
592
+ "WhileStepIdentity": {
593
+ "identity": "TYPE-WhileStepIdentity",
594
+ "name": "WhileStepIdentity",
595
+ "description": "dummy-description",
596
+ "nucleusSchema": {
597
+ "$anchor": "WhileStepIdentity",
598
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
599
+ "type": "string",
600
+ "pattern": "^WHILE_STEP-.+$"
601
+ }
602
+ },
603
+ "WhileStep": {
604
+ "identity": "TYPE-WhileStep",
605
+ "name": "WhileStep",
606
+ "description": "dummy-description",
607
+ "nucleusSchema": {
608
+ "$anchor": "WhileStep",
609
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
610
+ "type": "object",
611
+ "required": [
612
+ "identity",
613
+ "stepKind",
614
+ "case"
615
+ ],
616
+ "properties": {
617
+ "identity": {
618
+ "$ref": "#WhileStepIdentity"
619
+ },
620
+ "stepKind": {
621
+ "const": "while"
622
+ },
623
+ "case": {
624
+ "$ref": "#Conditional"
625
+ }
626
+ },
627
+ "allOf": [
628
+ {
629
+ "$ref": "#StepKindFacet"
630
+ }
631
+ ]
632
+ }
633
+ },
634
+ "ForStepIdentity": {
635
+ "identity": "TYPE-ForStepIdentity",
636
+ "name": "ForStepIdentity",
637
+ "description": "dummy-description",
638
+ "nucleusSchema": {
639
+ "$anchor": "ForStepIdentity",
640
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
641
+ "type": "string",
642
+ "pattern": "^FOR_STEP-.+$"
643
+ }
644
+ },
645
+ "ForStep": {
646
+ "identity": "TYPE-ForStep",
647
+ "name": "ForStep",
648
+ "description": "dummy-description",
649
+ "nucleusSchema": {
650
+ "$anchor": "ForStep",
651
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
652
+ "type": "object",
653
+ "required": [
654
+ "identity",
655
+ "stepKind",
656
+ "case"
657
+ ],
658
+ "properties": {
659
+ "identity": {
660
+ "$ref": "#ForStepIdentity"
661
+ },
662
+ "stepKind": {
663
+ "const": "for"
664
+ },
665
+ "case": {
666
+ "$ref": "#Conditional"
667
+ }
668
+ },
669
+ "allOf": [
670
+ {
671
+ "$ref": "#StepKindFacet"
672
+ }
673
+ ]
674
+ }
675
+ },
676
+ "StepIdentity": {
677
+ "identity": "TYPE-StepIdentity",
678
+ "name": "StepIdentity",
679
+ "description": "dummy-description",
680
+ "nucleusSchema": {
681
+ "$anchor": "StepIdentity",
682
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
683
+ "type": "object",
684
+ "oneOf": [
685
+ {
686
+ "$ref": "#JobStepIdentity"
687
+ },
688
+ {
689
+ "$ref": "#BranchStepIdentity"
690
+ },
691
+ {
692
+ "$ref": "#WhileStepIdentity"
693
+ },
694
+ {
695
+ "$ref": "#ForStepIdentity"
696
+ }
697
+ ]
698
+ }
699
+ },
700
+ "Step": {
701
+ "identity": "TYPE-Step",
702
+ "name": "Step",
703
+ "description": "dummy-description",
704
+ "nucleusSchema": {
705
+ "$anchor": "Step",
706
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
707
+ "type": "object",
708
+ "oneOf": [
709
+ {
710
+ "$ref": "#JobStep"
711
+ },
712
+ {
713
+ "$ref": "#BranchStep"
714
+ },
715
+ {
716
+ "$ref": "#WhileStep"
717
+ },
718
+ {
719
+ "$ref": "#ForStep"
720
+ }
721
+ ],
722
+ "unevaluatedProperties": false
723
+ }
724
+ },
725
+ "CreationContext": {
726
+ "identity": "TYPE-CreationContext",
727
+ "name": "CreationContext",
728
+ "description": "dummy-description",
729
+ "nucleusSchema": {
730
+ "$anchor": "CreationContext",
731
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
732
+ "type": "object",
733
+ "required": [
734
+ "resourceRoleHandle",
735
+ "jobStepHandle"
736
+ ],
737
+ "properties": {
738
+ "resourceRoleHandle": {
739
+ "$ref": "#ResourceRoleIdentity"
740
+ },
741
+ "jobStepHandle": {
742
+ "$ref": "#JobStepIdentity"
743
+ }
744
+ }
745
+ }
746
+ },
747
+ "CreationContextFacet": {
748
+ "identity": "TYPE-CreationContextFacet",
749
+ "name": "CreationContextFacet",
750
+ "description": "dummy-description",
751
+ "nucleusSchema": {
752
+ "$anchor": "CreationContextFacet",
753
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
754
+ "type": "object",
755
+ "required": [
756
+ "creationContext"
757
+ ],
758
+ "properties": {
759
+ "creationContext": {
760
+ "$ref": "#CreationContext"
761
+ }
762
+ }
763
+ }
764
+ },
765
+ "ResourceIdentity": {
766
+ "identity": "TYPE-ResourceIdentity",
767
+ "name": "ResourceIdentity",
768
+ "description": "dummy-description",
769
+ "nucleusSchema": {
770
+ "$anchor": "ResourceIdentity",
771
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
772
+ "type": "string",
773
+ "pattern": "^RESOURCE-.+$"
774
+ }
775
+ },
776
+ "ResourceShellBase": {
777
+ "identity": "TYPE-ResourceShellBase",
778
+ "name": "ResourceShellBase",
779
+ "description": "dummy-description",
780
+ "nucleusSchema": {
781
+ "$anchor": "ResourceShellBase",
782
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
783
+ "type": "object",
784
+ "required": [
785
+ "identity",
786
+ "resourceTypeHandle",
787
+ "resourceShellKind"
788
+ ],
789
+ "properties": {
790
+ "identity": {
791
+ "$ref": "#ResourceIdentity"
792
+ },
793
+ "resourceTypeHandle": {
794
+ "$ref": "#ResourceTypeIdentity"
795
+ },
796
+ "resourceShellKind": {
797
+ "$ref": "#ResourceShellKind"
798
+ }
799
+ }
800
+ }
801
+ },
802
+ "ResourceShellKind": {
803
+ "identity": "TYPE-ResourceShellKind",
804
+ "name": "ResourceShellKind",
805
+ "description": "dummy-description",
806
+ "nucleusSchema": {
807
+ "$anchor": "ResourceShellKind",
808
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
809
+ "type": "string",
810
+ "enum": [
811
+ "missing",
812
+ "inputPotential",
813
+ "outputPotential",
814
+ "materialized"
815
+ ]
816
+ }
817
+ },
818
+ "ResourceShellKindFacet": {
819
+ "identity": "TYPE-ResourceShellKindFacet",
820
+ "name": "ResourceShellKindFacet",
821
+ "description": "dummy-description",
822
+ "nucleusSchema": {
823
+ "$anchor": "ResourceShellKindFacet",
824
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
825
+ "type": "object",
826
+ "required": [
827
+ "resourceShellKind"
828
+ ],
829
+ "properties": {
830
+ "resourceShellKind": {
831
+ "$ref": "#ResourceShellKind"
832
+ }
833
+ }
834
+ }
835
+ },
836
+ "ShellMissing": {
837
+ "identity": "TYPE-ShellMissing",
838
+ "name": "ShellMissing",
839
+ "description": "dummy-description",
840
+ "nucleusSchema": {
841
+ "$anchor": "ShellMissing",
842
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
843
+ "type": "object",
844
+ "required": [
845
+ "resourceShellKind"
846
+ ],
847
+ "properties": {
848
+ "resourceShellKind": {
849
+ "const": "missing"
850
+ }
851
+ },
852
+ "allOf": [
853
+ {
854
+ "$ref": "#ResourceShellBase"
855
+ },
856
+ {
857
+ "$ref": "#ResourceShellKindFacet"
858
+ }
859
+ ],
860
+ "unevaluatedProperties": false
861
+ }
862
+ },
863
+ "ShellInputPotential": {
864
+ "identity": "TYPE-ShellInputPotential",
865
+ "name": "ShellInputPotential",
866
+ "description": "dummy-description",
867
+ "nucleusSchema": {
868
+ "$anchor": "ShellInputPotential",
869
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
870
+ "type": "object",
871
+ "required": [
872
+ "resourceShellKind"
873
+ ],
874
+ "properties": {
875
+ "resourceShellKind": {
876
+ "const": "inputPotential"
877
+ }
878
+ },
879
+ "allOf": [
880
+ {
881
+ "$ref": "#ResourceShellBase"
882
+ },
883
+ {
884
+ "$ref": "#CreationContextFacet"
885
+ },
886
+ {
887
+ "$ref": "#ResourceShellKindFacet"
888
+ }
889
+ ],
890
+ "unevaluatedProperties": false
891
+ }
892
+ },
893
+ "ShellOutputPotential": {
894
+ "identity": "TYPE-ShellOutputPotential",
895
+ "name": "ShellOutputPotential",
896
+ "description": "dummy-description",
897
+ "nucleusSchema": {
898
+ "$anchor": "ShellOutputPotential",
899
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
900
+ "type": "object",
901
+ "required": [
902
+ "resourceShellKind"
903
+ ],
904
+ "properties": {
905
+ "resourceShellKind": {
906
+ "const": "outputPotential"
907
+ }
908
+ },
909
+ "allOf": [
910
+ {
911
+ "$ref": "#ResourceShellBase"
912
+ },
913
+ {
914
+ "$ref": "#CreationContextFacet"
915
+ },
916
+ {
917
+ "$ref": "#ResourceShellKindFacet"
918
+ }
919
+ ],
920
+ "unevaluatedProperties": false
921
+ }
922
+ },
923
+ "Timestamp": {
924
+ "identity": "TYPE-Timestamp",
925
+ "name": "Timestamp",
926
+ "description": "dummy-description",
927
+ "nucleusSchema": {
928
+ "$anchor": "Timestamp",
929
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
930
+ "type": "string",
931
+ "format": "date-time"
932
+ }
933
+ },
934
+ "TimestampFacet": {
935
+ "identity": "TYPE-TimestampFacet",
936
+ "name": "TimestampFacet",
937
+ "description": "dummy-description",
938
+ "nucleusSchema": {
939
+ "$anchor": "TimestampFacet",
940
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
941
+ "type": "object",
942
+ "required": [
943
+ "timestamp"
944
+ ],
945
+ "properties": {
946
+ "timestamp": {
947
+ "$ref": "#Timestamp"
948
+ }
949
+ }
950
+ }
951
+ },
952
+ "Path": {
953
+ "identity": "TYPE-Path",
954
+ "name": "Path",
955
+ "description": "dummy-description",
956
+ "nucleusSchema": {
957
+ "$anchor": "Path",
958
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
959
+ "type": "string",
960
+ "format": "uri-reference"
961
+ }
962
+ },
963
+ "PathFacet": {
964
+ "identity": "TYPE-PathFacet",
965
+ "name": "PathFacet",
966
+ "description": "dummy-description",
967
+ "nucleusSchema": {
968
+ "$anchor": "PathFacet",
969
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
970
+ "type": "object",
971
+ "required": [
972
+ "path"
973
+ ],
974
+ "properties": {
975
+ "path": {
976
+ "$ref": "#Path"
977
+ }
978
+ }
979
+ }
980
+ },
981
+ "ShellMaterializedBase": {
982
+ "identity": "TYPE-ShellMaterializedBase",
983
+ "name": "ShellMaterializedBase",
984
+ "description": "dummy-description",
985
+ "nucleusSchema": {
986
+ "$anchor": "ShellMaterializedBase",
987
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
988
+ "type": "object",
989
+ "required": [
990
+ "version",
991
+ "resourceShellKind"
992
+ ],
993
+ "properties": {
994
+ "version": {
995
+ "const": 1
996
+ },
997
+ "resourceShellKind": {
998
+ "const": "materialized"
999
+ }
1000
+ },
1001
+ "allOf": [
1002
+ {
1003
+ "$ref": "#ResourceShellBase"
1004
+ },
1005
+ {
1006
+ "$ref": "#CreationContextFacet"
1007
+ },
1008
+ {
1009
+ "$ref": "#ResourceShellKindFacet"
1010
+ },
1011
+ {
1012
+ "$ref": "#TimestampFacet"
1013
+ },
1014
+ {
1015
+ "$ref": "#PathFacet"
1016
+ }
1017
+ ]
1018
+ }
1019
+ },
1020
+ "ShellMaterialized": {
1021
+ "identity": "TYPE-ShellMaterialized",
1022
+ "name": "ShellMaterialized",
1023
+ "description": "dummy-description",
1024
+ "nucleusSchema": {
1025
+ "$anchor": "ShellMaterialized",
1026
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1027
+ "type": "object",
1028
+ "$ref": "#ShellMaterializedBase",
1029
+ "unevaluatedProperties": false
1030
+ }
1031
+ },
1032
+ "ResourceMissing": {
1033
+ "identity": "TYPE-ResourceMissing",
1034
+ "name": "ResourceMissing",
1035
+ "description": "dummy-description",
1036
+ "nucleusSchema": {
1037
+ "$anchor": "ResourceMissing",
1038
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1039
+ "type": "object",
1040
+ "$ref": "#ShellMissing",
1041
+ "unevaluatedProperties": false
1042
+ }
1043
+ },
1044
+ "ResourceInputPotential": {
1045
+ "identity": "TYPE-ResourceInputPotential",
1046
+ "name": "ResourceInputPotential",
1047
+ "description": "dummy-description",
1048
+ "nucleusSchema": {
1049
+ "$anchor": "ResourceInputPotential",
1050
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1051
+ "type": "object",
1052
+ "$ref": "#ShellInputPotential",
1053
+ "unevaluatedProperties": false
1054
+ }
1055
+ },
1056
+ "ResourceOutputPotential": {
1057
+ "identity": "TYPE-ResourceOutputPotential",
1058
+ "name": "ResourceOutputPotential",
1059
+ "description": "dummy-description",
1060
+ "nucleusSchema": {
1061
+ "$anchor": "ResourceOutputPotential",
1062
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1063
+ "type": "object",
1064
+ "$ref": "#ShellOutputPotential",
1065
+ "unevaluatedProperties": false
1066
+ }
1067
+ },
1068
+ "ResourcePotential": {
1069
+ "identity": "TYPE-ResourcePotential",
1070
+ "name": "ResourcePotential",
1071
+ "description": "dummy-description",
1072
+ "nucleusSchema": {
1073
+ "$anchor": "ResourcePotential",
1074
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1075
+ "type": "object",
1076
+ "oneOf": [
1077
+ {
1078
+ "$ref": "#ResourceMissing"
1079
+ },
1080
+ {
1081
+ "$ref": "#ResourceInputPotential"
1082
+ },
1083
+ {
1084
+ "$ref": "#ResourceOutputPotential"
1085
+ }
1086
+ ],
1087
+ "unevaluatedProperties": false
1088
+ }
1089
+ },
1090
+ "JsonData": {
1091
+ "identity": "TYPE-JsonData",
1092
+ "name": "JsonData",
1093
+ "description": "dummy-description",
1094
+ "nucleusSchema": {
1095
+ "$anchor": "JsonData",
1096
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1097
+ "oneOf": [
1098
+ {
1099
+ "type": "null"
1100
+ },
1101
+ {
1102
+ "type": "boolean"
1103
+ },
1104
+ {
1105
+ "type": "number"
1106
+ },
1107
+ {
1108
+ "type": "string"
1109
+ },
1110
+ {
1111
+ "type": "array",
1112
+ "items": {
1113
+ "$ref": "#JsonData"
1114
+ }
1115
+ },
1116
+ {
1117
+ "type": "object",
1118
+ "additionalProperties": {
1119
+ "$ref": "#JsonData"
1120
+ }
1121
+ }
1122
+ ]
1123
+ }
1124
+ },
1125
+ "Nucleus": {
1126
+ "identity": "TYPE-Nucleus",
1127
+ "name": "Nucleus",
1128
+ "description": "dummy-description",
1129
+ "nucleusSchema": {
1130
+ "$anchor": "Nucleus",
1131
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1132
+ "type": "object",
1133
+ "additionalProperties": {
1134
+ "$ref": "#JsonData"
1135
+ }
1136
+ }
1137
+ },
1138
+ "NucleusFacet": {
1139
+ "identity": "TYPE-NucleusFacet",
1140
+ "name": "NucleusFacet",
1141
+ "description": "dummy-description",
1142
+ "nucleusSchema": {
1143
+ "$anchor": "NucleusFacet",
1144
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1145
+ "type": "object",
1146
+ "required": [
1147
+ "nucleus"
1148
+ ],
1149
+ "properties": {
1150
+ "nucleus": true
1151
+ }
1152
+ }
1153
+ },
1154
+ "Resource": {
1155
+ "identity": "TYPE-Resource",
1156
+ "name": "Resource",
1157
+ "description": "dummy-description",
1158
+ "nucleusSchema": {
1159
+ "$anchor": "Resource",
1160
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1161
+ "type": "object",
1162
+ "allOf": [
1163
+ {
1164
+ "$ref": "#ShellMaterializedBase"
1165
+ },
1166
+ {
1167
+ "$comment": "This will be overlayed dynamically to match the data structure of the underlying ResourceType's nucleusSchema.",
1168
+ "$ref": "#NucleusFacet"
1169
+ }
1170
+ ],
1171
+ "unevaluatedProperties": false
1172
+ }
1173
+ },
1174
+ "JobStepSocket": {
1175
+ "identity": "TYPE-JobStepSocket",
1176
+ "name": "JobStepSocket",
1177
+ "description": "dummy-description",
1178
+ "nucleusSchema": {
1179
+ "$anchor": "JobStepSocket",
1180
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1181
+ "type": "object",
1182
+ "propertyNames": {
1183
+ "$ref": "#ResourceRoleIdentity"
1184
+ },
1185
+ "additionalProperties": {
1186
+ "oneOf": [
1187
+ {
1188
+ "$ref": "#ResourcePotential"
1189
+ },
1190
+ {
1191
+ "$ref": "#Resource"
1192
+ }
1193
+ ]
1194
+ }
1195
+ }
1196
+ },
1197
+ "StrategyState": {
1198
+ "identity": "TYPE-StrategyState",
1199
+ "name": "StrategyState",
1200
+ "description": "dummy-description",
1201
+ "nucleusSchema": {
1202
+ "$anchor": "StrategyState",
1203
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1204
+ "type": "object",
1205
+ "propertyNames": {
1206
+ "$ref": "#JobStepIdentity"
1207
+ },
1208
+ "additionalProperties": {
1209
+ "$ref": "#JobStepSocket"
1210
+ }
1211
+ }
1212
+ },
1213
+ "StrategyStateFacet": {
1214
+ "identity": "TYPE-StrategyStateFacet",
1215
+ "name": "StrategyStateFacet",
1216
+ "description": "dummy-description",
1217
+ "nucleusSchema": {
1218
+ "$anchor": "StrategyStateFacet",
1219
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1220
+ "type": "object",
1221
+ "required": [
1222
+ "strategyState"
1223
+ ],
1224
+ "properties": {
1225
+ "strategyState": {
1226
+ "$ref": "#StrategyState"
1227
+ }
1228
+ }
1229
+ }
1230
+ },
1231
+ "StepArray": {
1232
+ "identity": "TYPE-StepArray",
1233
+ "name": "StepArray",
1234
+ "description": "dummy-description",
1235
+ "nucleusSchema": {
1236
+ "$anchor": "StepArray",
1237
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1238
+ "type": "array",
1239
+ "items": {
1240
+ "$ref": "#Step"
1241
+ },
1242
+ "uniqueItems": true
1243
+ }
1244
+ },
1245
+ "StepsFacet": {
1246
+ "identity": "TYPE-StepsFacet",
1247
+ "name": "StepsFacet",
1248
+ "description": "dummy-description",
1249
+ "nucleusSchema": {
1250
+ "$anchor": "StepsFacet",
1251
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1252
+ "type": "object",
1253
+ "required": [
1254
+ "steps"
1255
+ ],
1256
+ "properties": {
1257
+ "steps": {
1258
+ "$ref": "#StepArray"
1259
+ }
1260
+ }
1261
+ }
1262
+ },
1263
+ "RawStrategy": {
1264
+ "identity": "TYPE-RawStrategy",
1265
+ "name": "RawStrategy",
1266
+ "description": "dummy-description",
1267
+ "nucleusSchema": {
1268
+ "$anchor": "RawStrategy",
1269
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1270
+ "type": "object",
1271
+ "allOf": [
1272
+ {
1273
+ "$ref": "#StepsFacet"
1274
+ },
1275
+ {
1276
+ "$ref": "#StrategyStateFacet"
1277
+ }
1278
+ ],
1279
+ "unevaluatedProperties": false
1280
+ }
1281
+ },
1282
+ "RunnableStrategyIdentity": {
1283
+ "identity": "TYPE-RunnableStrategyIdentity",
1284
+ "name": "RunnableStrategyIdentity",
1285
+ "description": "dummy-description",
1286
+ "nucleusSchema": {
1287
+ "$anchor": "RunnableStrategyIdentity",
1288
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1289
+ "type": "string",
1290
+ "pattern": "^RUNNABLE_STRATEGY-.+$"
1291
+ }
1292
+ },
1293
+ "RunnableStrategyStatus": {
1294
+ "identity": "TYPE-RunnableStrategyStatus",
1295
+ "name": "RunnableStrategyStatus",
1296
+ "description": "dummy-description",
1297
+ "nucleusSchema": {
1298
+ "$anchor": "RunnableStrategyStatus",
1299
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1300
+ "type": "string",
1301
+ "enum": [
1302
+ "pending",
1303
+ "running",
1304
+ "completed",
1305
+ "failed",
1306
+ "cancelled"
1307
+ ]
1308
+ }
1309
+ },
1310
+ "RunnableStrategyContext": {
1311
+ "identity": "TYPE-RunnableStrategyContext",
1312
+ "name": "RunnableStrategyContext",
1313
+ "description": "dummy-description",
1314
+ "nucleusSchema": {
1315
+ "$anchor": "RunnableStrategyContext",
1316
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1317
+ "type": "object",
1318
+ "required": [
1319
+ "status"
1320
+ ],
1321
+ "properties": {
1322
+ "status": {
1323
+ "$ref": "#RunnableStrategyStatus"
1324
+ },
1325
+ "startedAt": {
1326
+ "$ref": "#Timestamp"
1327
+ },
1328
+ "completedAt": {
1329
+ "$ref": "#Timestamp"
1330
+ }
1331
+ },
1332
+ "unevaluatedProperties": false
1333
+ }
1334
+ },
1335
+ "StrategyThreadIdentity": {
1336
+ "identity": "TYPE-StrategyThreadIdentity",
1337
+ "name": "StrategyThreadIdentity",
1338
+ "description": "dummy-description",
1339
+ "nucleusSchema": {
1340
+ "$anchor": "StrategyThreadIdentity",
1341
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1342
+ "type": "string",
1343
+ "pattern": "^STRATEGY_THREAD-.+$"
1344
+ }
1345
+ },
1346
+ "StrategyThreadDict": {
1347
+ "identity": "TYPE-StrategyThreadDict",
1348
+ "name": "StrategyThreadDict",
1349
+ "description": "dummy-description",
1350
+ "nucleusSchema": {
1351
+ "$anchor": "StrategyThreadDict",
1352
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1353
+ "type": "object",
1354
+ "propertyNames": {
1355
+ "$ref": "#StrategyThreadIdentity"
1356
+ },
1357
+ "additionalProperties": {
1358
+ "$ref": "#StepArray"
1359
+ },
1360
+ "$comment": "Each thread contains an array of steps, allowing for sequential execution within a thread while supporting parallel execution across multiple threads."
1361
+ }
1362
+ },
1363
+ "StrategyThreadDictFacet": {
1364
+ "identity": "TYPE-StrategyThreadDictFacet",
1365
+ "name": "StrategyThreadDictFacet",
1366
+ "description": "dummy-description",
1367
+ "nucleusSchema": {
1368
+ "$anchor": "StrategyThreadDictFacet",
1369
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1370
+ "type": "object",
1371
+ "required": [
1372
+ "strategyThreadDict"
1373
+ ],
1374
+ "properties": {
1375
+ "strategyThreadDict": {
1376
+ "$ref": "#StrategyThreadDict"
1377
+ }
1378
+ }
1379
+ }
1380
+ },
1381
+ "RunnableStrategy": {
1382
+ "identity": "TYPE-RunnableStrategy",
1383
+ "name": "RunnableStrategy",
1384
+ "description": "dummy-description",
1385
+ "nucleusSchema": {
1386
+ "$anchor": "RunnableStrategy",
1387
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1388
+ "type": "object",
1389
+ "required": [
1390
+ "identity",
1391
+ "runnableStrategyContext"
1392
+ ],
1393
+ "properties": {
1394
+ "identity": {
1395
+ "$ref": "#RunnableStrategyIdentity"
1396
+ },
1397
+ "runnableStrategyContext": {
1398
+ "$ref": "#RunnableStrategyContext"
1399
+ }
1400
+ },
1401
+ "allOf": [
1402
+ {
1403
+ "$comment": "The Engine runs jobs specified by steps in strategyThreadDict. The Engine also injects repeted steps when encountering loops.",
1404
+ "$ref": "#StrategyThreadDictFacet"
1405
+ },
1406
+ {
1407
+ "$comment": "The Engine updates strategyState with materialized Resources upon job completions and runtime-provided input events. It also inserts inputPotential and outputPotential Resources upon step injections.",
1408
+ "$ref": "#StrategyStateFacet"
1409
+ }
1410
+ ],
1411
+ "unevaluatedProperties": false
1412
+ }
1413
+ },
1414
+ "StrategyStateDelta": {
1415
+ "identity": "TYPE-StrategyStateDelta",
1416
+ "name": "StrategyStateDelta",
1417
+ "description": "dummy-description",
1418
+ "nucleusSchema": {
1419
+ "$anchor": "StrategyStateDelta",
1420
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1421
+ "type": "object",
1422
+ "required": [
1423
+ "strategyStateUpdate"
1424
+ ],
1425
+ "properties": {
1426
+ "strategyStateUpdate": {
1427
+ "$ref": "#StrategyState"
1428
+ }
1429
+ }
1430
+ }
1431
+ },
1432
+ "RunnableStrategyUpdate": {
1433
+ "identity": "TYPE-RunnableStrategyUpdate",
1434
+ "name": "RunnableStrategyUpdate",
1435
+ "description": "dummy-description",
1436
+ "nucleusSchema": {
1437
+ "$anchor": "RunnableStrategyUpdate",
1438
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1439
+ "type": "object",
1440
+ "required": [
1441
+ "runnableStrategyHandle"
1442
+ ],
1443
+ "properties": {
1444
+ "runnableStrategyHandle": {
1445
+ "$ref": "#RunnableStrategyIdentity"
1446
+ }
1447
+ },
1448
+ "allOf": [
1449
+ {
1450
+ "$ref": "#StrategyStateDelta"
1451
+ }
1452
+ ],
1453
+ "unevaluatedProperties": false
1454
+ }
1455
+ },
1456
+ "RunEventCounters": {
1457
+ "identity": "TYPE-RunEventCounters",
1458
+ "name": "RunEventCounters",
1459
+ "description": "dummy-description",
1460
+ "nucleusSchema": {
1461
+ "$anchor": "RunEventCounters",
1462
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1463
+ "type": "object",
1464
+ "properties": {
1465
+ "stepCounterAfter": {
1466
+ "type": "integer"
1467
+ },
1468
+ "iterationCounterAfter": {
1469
+ "type": "integer"
1470
+ }
1471
+ }
1472
+ }
1473
+ },
1474
+ "RunEventStepMetadata": {
1475
+ "identity": "TYPE-RunEventStepMetadata",
1476
+ "name": "RunEventStepMetadata",
1477
+ "description": "dummy-description",
1478
+ "nucleusSchema": {
1479
+ "$anchor": "RunEventStepMetadata",
1480
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1481
+ "type": "object",
1482
+ "required": [
1483
+ "stepHandle",
1484
+ "stepKind",
1485
+ "threadStepIndex"
1486
+ ],
1487
+ "properties": {
1488
+ "stepHandle": {
1489
+ "$ref": "#StepIdentity"
1490
+ },
1491
+ "stepKind": {
1492
+ "$ref": "#StepKind"
1493
+ },
1494
+ "threadStepIndex": {
1495
+ "type": "integer"
1496
+ }
1497
+ }
1498
+ }
1499
+ },
1500
+ "RunEventUpdates": {
1501
+ "identity": "TYPE-RunEventUpdates",
1502
+ "name": "RunEventUpdates",
1503
+ "description": "dummy-description",
1504
+ "nucleusSchema": {
1505
+ "$anchor": "RunEventUpdates",
1506
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1507
+ "type": "object",
1508
+ "properties": {
1509
+ "stepsMutation": {
1510
+ "type": "object",
1511
+ "required": [
1512
+ "insertAt",
1513
+ "inserted"
1514
+ ],
1515
+ "properties": {
1516
+ "insertAt": {
1517
+ "type": "integer"
1518
+ },
1519
+ "inserted": {
1520
+ "$ref": "#StepArray"
1521
+ }
1522
+ }
1523
+ },
1524
+ "interruptData": {
1525
+ "$comment": "Kept permissive; the engine may evolve interrupt payloads.",
1526
+ "type": [
1527
+ "object",
1528
+ "null"
1529
+ ]
1530
+ }
1531
+ },
1532
+ "allOf": [
1533
+ {
1534
+ "$ref": "#StrategyStateDelta"
1535
+ }
1536
+ ]
1537
+ }
1538
+ },
1539
+ "RunEventKind": {
1540
+ "identity": "TYPE-RunEventKind",
1541
+ "name": "RunEventKind",
1542
+ "description": "dummy-description",
1543
+ "nucleusSchema": {
1544
+ "$anchor": "RunEventKind",
1545
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1546
+ "type": "string",
1547
+ "enum": [
1548
+ "graph_start",
1549
+ "tick",
1550
+ "interrupt",
1551
+ "graph_end"
1552
+ ]
1553
+ }
1554
+ },
1555
+ "RunEventBase": {
1556
+ "identity": "TYPE-RunEventBase",
1557
+ "name": "RunEventBase",
1558
+ "description": "dummy-description",
1559
+ "nucleusSchema": {
1560
+ "$anchor": "RunEventBase",
1561
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1562
+ "type": "object",
1563
+ "required": [
1564
+ "runEventKind",
1565
+ "runnableStrategyHandle",
1566
+ "strategyThreadHandle",
1567
+ "createdAt",
1568
+ "nodeName",
1569
+ "eventSeq"
1570
+ ],
1571
+ "properties": {
1572
+ "runEventKind": {
1573
+ "$ref": "#RunEventKind"
1574
+ },
1575
+ "runnableStrategyHandle": {
1576
+ "$ref": "#RunnableStrategyIdentity"
1577
+ },
1578
+ "strategyThreadHandle": {
1579
+ "$ref": "#StrategyThreadIdentity"
1580
+ },
1581
+ "createdAt": {
1582
+ "$ref": "#Timestamp"
1583
+ },
1584
+ "nodeName": {
1585
+ "type": "string"
1586
+ },
1587
+ "eventSeq": {
1588
+ "type": "integer"
1589
+ },
1590
+ "counters": {
1591
+ "$ref": "#RunEventCounters"
1592
+ },
1593
+ "stepMetadata": {
1594
+ "$ref": "#RunEventStepMetadata"
1595
+ },
1596
+ "updates": {
1597
+ "$ref": "#RunEventUpdates"
1598
+ }
1599
+ }
1600
+ }
1601
+ },
1602
+ "GraphStartRunEvent": {
1603
+ "identity": "TYPE-GraphStartRunEvent",
1604
+ "name": "GraphStartRunEvent",
1605
+ "description": "dummy-description",
1606
+ "nucleusSchema": {
1607
+ "$anchor": "GraphStartRunEvent",
1608
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1609
+ "allOf": [
1610
+ {
1611
+ "$ref": "#RunEventBase"
1612
+ },
1613
+ {
1614
+ "type": "object",
1615
+ "required": [
1616
+ "runnableStrategySeed"
1617
+ ],
1618
+ "properties": {
1619
+ "runEventKind": {
1620
+ "const": "graph_start"
1621
+ },
1622
+ "runnableStrategySeed": {
1623
+ "$ref": "#RunnableStrategy"
1624
+ }
1625
+ }
1626
+ }
1627
+ ]
1628
+ }
1629
+ },
1630
+ "TickRunEvent": {
1631
+ "identity": "TYPE-TickRunEvent",
1632
+ "name": "TickRunEvent",
1633
+ "description": "dummy-description",
1634
+ "nucleusSchema": {
1635
+ "$anchor": "TickRunEvent",
1636
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1637
+ "allOf": [
1638
+ {
1639
+ "$ref": "#RunEventBase"
1640
+ },
1641
+ {
1642
+ "type": "object",
1643
+ "properties": {
1644
+ "runEventKind": {
1645
+ "const": "tick"
1646
+ }
1647
+ }
1648
+ }
1649
+ ]
1650
+ }
1651
+ },
1652
+ "InterruptRunEvent": {
1653
+ "identity": "TYPE-InterruptRunEvent",
1654
+ "name": "InterruptRunEvent",
1655
+ "description": "dummy-description",
1656
+ "nucleusSchema": {
1657
+ "$anchor": "InterruptRunEvent",
1658
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1659
+ "allOf": [
1660
+ {
1661
+ "$ref": "#RunEventBase"
1662
+ },
1663
+ {
1664
+ "type": "object",
1665
+ "properties": {
1666
+ "runEventKind": {
1667
+ "const": "interrupt"
1668
+ }
1669
+ }
1670
+ }
1671
+ ]
1672
+ }
1673
+ },
1674
+ "GraphEndRunEvent": {
1675
+ "identity": "TYPE-GraphEndRunEvent",
1676
+ "name": "GraphEndRunEvent",
1677
+ "description": "dummy-description",
1678
+ "nucleusSchema": {
1679
+ "$anchor": "GraphEndRunEvent",
1680
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1681
+ "allOf": [
1682
+ {
1683
+ "$ref": "#RunEventBase"
1684
+ },
1685
+ {
1686
+ "type": "object",
1687
+ "properties": {
1688
+ "runEventKind": {
1689
+ "const": "graph_end"
1690
+ }
1691
+ }
1692
+ }
1693
+ ]
1694
+ }
1695
+ },
1696
+ "RunEvent": {
1697
+ "identity": "TYPE-RunEvent",
1698
+ "name": "RunEvent",
1699
+ "description": "dummy-description",
1700
+ "nucleusSchema": {
1701
+ "$anchor": "RunEvent",
1702
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1703
+ "type": "object",
1704
+ "oneOf": [
1705
+ {
1706
+ "$ref": "#GraphStartRunEvent"
1707
+ },
1708
+ {
1709
+ "$ref": "#TickRunEvent"
1710
+ },
1711
+ {
1712
+ "$ref": "#InterruptRunEvent"
1713
+ },
1714
+ {
1715
+ "$ref": "#GraphEndRunEvent"
1716
+ }
1717
+ ]
1718
+ }
1719
+ },
1720
+ "StrategyRunIdentity": {
1721
+ "identity": "TYPE-StrategyRunIdentity",
1722
+ "name": "StrategyRunIdentity",
1723
+ "description": "dummy-description",
1724
+ "nucleusSchema": {
1725
+ "$anchor": "StrategyRunIdentity",
1726
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1727
+ "type": "string",
1728
+ "pattern": "^STRATEGY_RUN-.+$"
1729
+ }
1730
+ },
1731
+ "StrategyRun": {
1732
+ "identity": "TYPE-StrategyRun",
1733
+ "name": "StrategyRun",
1734
+ "description": "dummy-description",
1735
+ "nucleusSchema": {
1736
+ "$anchor": "StrategyRun",
1737
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1738
+ "type": "object",
1739
+ "required": [
1740
+ "identity",
1741
+ "runnableStrategyHandle",
1742
+ "recordedAt",
1743
+ "runEvents"
1744
+ ],
1745
+ "properties": {
1746
+ "identity": {
1747
+ "$ref": "#StrategyRunIdentity"
1748
+ },
1749
+ "runnableStrategyHandle": {
1750
+ "$comment": "Could be derived from the first event but useful for indexing.",
1751
+ "$ref": "#RunnableStrategyIdentity"
1752
+ },
1753
+ "recordedAt": {
1754
+ "$ref": "#Timestamp"
1755
+ },
1756
+ "runEvents": {
1757
+ "type": "array",
1758
+ "items": {
1759
+ "$ref": "#RunEvent"
1760
+ }
1761
+ }
1762
+ },
1763
+ "unevaluatedProperties": false
1764
+ }
1765
+ },
1766
+ "GoalIdentity": {
1767
+ "identity": "TYPE-GoalIdentity",
1768
+ "name": "GoalIdentity",
1769
+ "description": "dummy-description",
1770
+ "nucleusSchema": {
1771
+ "$anchor": "GoalIdentity",
1772
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1773
+ "type": "string",
1774
+ "pattern": "^GOAL-.+$"
1775
+ }
1776
+ },
1777
+ "Goal": {
1778
+ "identity": "TYPE-Goal",
1779
+ "name": "Goal",
1780
+ "description": "dummy-description",
1781
+ "nucleusSchema": {
1782
+ "$anchor": "Goal",
1783
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1784
+ "type": "object",
1785
+ "required": [
1786
+ "identity",
1787
+ "target"
1788
+ ],
1789
+ "properties": {
1790
+ "identity": {
1791
+ "$ref": "#GoalIdentity"
1792
+ },
1793
+ "target": {
1794
+ "type": "integer",
1795
+ "minimum": 0
1796
+ },
1797
+ "disallowedJobs": {
1798
+ "type": "array",
1799
+ "items": {
1800
+ "$ref": "#JobIdentity"
1801
+ }
1802
+ },
1803
+ "disallowedSequences": {
1804
+ "type": "array",
1805
+ "items": {
1806
+ "type": "array",
1807
+ "items": {
1808
+ "$ref": "#JobIdentity"
1809
+ }
1810
+ }
1811
+ },
1812
+ "minSteps": {
1813
+ "type": "integer",
1814
+ "minimum": 1
1815
+ },
1816
+ "maxSteps": {
1817
+ "type": "integer",
1818
+ "minimum": 1
1819
+ }
1820
+ },
1821
+ "unevaluatedProperties": false
1822
+ }
1823
+ },
1824
+ "Natural": {
1825
+ "identity": "TYPE-Natural",
1826
+ "name": "Natural",
1827
+ "description": "dummy-description",
1828
+ "nucleusSchema": {
1829
+ "$anchor": "Natural",
1830
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1831
+ "type": "object",
1832
+ "required": [
1833
+ "identity"
1834
+ ],
1835
+ "properties": {
1836
+ "identity": {
1837
+ "$ref": "#/$defs/NaturalIdentity"
1838
+ }
1839
+ },
1840
+ "$defs": {
1841
+ "NaturalIdentity": {
1842
+ "type": "integer"
1843
+ }
1844
+ },
1845
+ "additionalProperties": false
1846
+ }
1847
+ },
1848
+ "Boolean": {
1849
+ "identity": "TYPE-Boolean",
1850
+ "name": "Boolean",
1851
+ "description": "dummy-description",
1852
+ "nucleusSchema": {
1853
+ "$anchor": "Boolean",
1854
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1855
+ "type": "object",
1856
+ "required": [
1857
+ "identity"
1858
+ ],
1859
+ "properties": {
1860
+ "identity": {
1861
+ "$ref": "#/$defs/BooleanIdentity"
1862
+ }
1863
+ },
1864
+ "$defs": {
1865
+ "BooleanIdentity": {
1866
+ "type": "boolean"
1867
+ }
1868
+ },
1869
+ "additionalProperties": false
1870
+ }
1871
+ }
1872
+ }
1873
+ }
1834
1874
  }