@toolproof-core/schema 1.0.0

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