perttool 0.5.0 → 0.5.2

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 (41) hide show
  1. package/CHANGELOG.md +39 -1
  2. package/README.md +66 -28
  3. package/dist/cli.js +41 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/command/actuals-discovery.d.ts.map +1 -1
  6. package/dist/command/actuals-discovery.js +92 -13
  7. package/dist/command/actuals-discovery.js.map +1 -1
  8. package/dist/history/git-probe.d.ts +4 -0
  9. package/dist/history/git-probe.d.ts.map +1 -1
  10. package/dist/history/git-probe.js +23 -14
  11. package/dist/history/git-probe.js.map +1 -1
  12. package/dist/index.d.ts +2 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +1 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/schema/registry.d.ts +53 -0
  17. package/dist/schema/registry.d.ts.map +1 -0
  18. package/dist/schema/registry.js +346 -0
  19. package/dist/schema/registry.js.map +1 -0
  20. package/dist/version.d.ts +1 -1
  21. package/dist/version.js +1 -1
  22. package/package.json +5 -2
  23. package/schemas/Perttool.AgentGuidanceResult.v1.schema.json +607 -0
  24. package/schemas/Perttool.AnalysisResult.v4.schema.json +790 -0
  25. package/schemas/Perttool.CheckResult.v3.schema.json +203 -0
  26. package/schemas/Perttool.CliError.v1.schema.json +119 -0
  27. package/schemas/Perttool.CommandHelpResult.v1.schema.json +377 -0
  28. package/schemas/Perttool.Common.v1.schema.json +1893 -0
  29. package/schemas/Perttool.ExportResult.v1.schema.json +96 -0
  30. package/schemas/Perttool.FormatResult.v1.schema.json +82 -0
  31. package/schemas/Perttool.GuideResult.v1.schema.json +138 -0
  32. package/schemas/Perttool.ImportResult.v1.schema.json +111 -0
  33. package/schemas/Perttool.InitResult.v1.schema.json +70 -0
  34. package/schemas/Perttool.MutationResult.v3.schema.json +194 -0
  35. package/schemas/Perttool.NextResult.v5.schema.json +1264 -0
  36. package/schemas/Perttool.OverrideDecision.v1.schema.json +402 -0
  37. package/schemas/Perttool.ProjectHistoryResult.v1.schema.json +283 -0
  38. package/schemas/Perttool.ProjectResult.v3.schema.json +217 -0
  39. package/schemas/Perttool.SchemaResult.v1.schema.json +137 -0
  40. package/schemas/Perttool.UnitMigrationResult.v3.schema.json +343 -0
  41. package/schemas/Perttool.VelocityObservationResult.v1.schema.json +301 -0
@@ -0,0 +1,790 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://github.com/mako10k/perttool/schemas/Perttool.AnalysisResult.v4.schema.json",
4
+ "title": "Perttool.AnalysisResult.v4",
5
+ "$defs": {
6
+ "taskStatus": {
7
+ "enum": [
8
+ "planned",
9
+ "active",
10
+ "blocked",
11
+ "suspended",
12
+ "done"
13
+ ]
14
+ },
15
+ "precedencePath": {
16
+ "type": "object",
17
+ "required": [
18
+ "edge_ids",
19
+ "task_ids",
20
+ "gate_ids",
21
+ "variance"
22
+ ],
23
+ "properties": {
24
+ "edge_ids": {
25
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
26
+ },
27
+ "task_ids": {
28
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
29
+ },
30
+ "gate_ids": {
31
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
32
+ },
33
+ "variance": {
34
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
35
+ }
36
+ },
37
+ "additionalProperties": false
38
+ },
39
+ "precedence": {
40
+ "type": "object",
41
+ "required": [
42
+ "makespan",
43
+ "conditional_on_blocks_resolved",
44
+ "blocked_task_ids",
45
+ "conditional_on_suspensions_resumed",
46
+ "suspended_task_ids",
47
+ "milestones",
48
+ "edges",
49
+ "critical"
50
+ ],
51
+ "properties": {
52
+ "makespan": {
53
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
54
+ },
55
+ "conditional_on_blocks_resolved": {
56
+ "type": "boolean"
57
+ },
58
+ "blocked_task_ids": {
59
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
60
+ },
61
+ "conditional_on_suspensions_resumed": {
62
+ "type": "boolean"
63
+ },
64
+ "suspended_task_ids": {
65
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
66
+ },
67
+ "milestones": {
68
+ "type": "array",
69
+ "items": {
70
+ "type": "object",
71
+ "required": [
72
+ "id",
73
+ "earliest",
74
+ "latest",
75
+ "slack"
76
+ ],
77
+ "properties": {
78
+ "id": {
79
+ "type": "string"
80
+ },
81
+ "earliest": {
82
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
83
+ },
84
+ "latest": {
85
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
86
+ },
87
+ "slack": {
88
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
89
+ }
90
+ },
91
+ "additionalProperties": false
92
+ }
93
+ },
94
+ "edges": {
95
+ "type": "array",
96
+ "items": {
97
+ "type": "object",
98
+ "required": [
99
+ "id",
100
+ "source",
101
+ "target",
102
+ "kind",
103
+ "status",
104
+ "expected",
105
+ "variance",
106
+ "es",
107
+ "ef",
108
+ "ls",
109
+ "lf",
110
+ "total_float",
111
+ "free_float",
112
+ "is_critical",
113
+ "is_driving"
114
+ ],
115
+ "properties": {
116
+ "id": {
117
+ "type": "string"
118
+ },
119
+ "source": {
120
+ "type": "string"
121
+ },
122
+ "target": {
123
+ "type": "string"
124
+ },
125
+ "kind": {
126
+ "enum": [
127
+ "task",
128
+ "gate"
129
+ ]
130
+ },
131
+ "status": {
132
+ "oneOf": [
133
+ {
134
+ "$ref": "#/$defs/taskStatus"
135
+ },
136
+ {
137
+ "type": "null"
138
+ }
139
+ ]
140
+ },
141
+ "expected": {
142
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
143
+ },
144
+ "variance": {
145
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
146
+ },
147
+ "es": {
148
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
149
+ },
150
+ "ef": {
151
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
152
+ },
153
+ "ls": {
154
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
155
+ },
156
+ "lf": {
157
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
158
+ },
159
+ "total_float": {
160
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
161
+ },
162
+ "free_float": {
163
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
164
+ },
165
+ "is_critical": {
166
+ "type": "boolean"
167
+ },
168
+ "is_driving": {
169
+ "type": "boolean"
170
+ }
171
+ },
172
+ "additionalProperties": false
173
+ }
174
+ },
175
+ "critical": {
176
+ "type": "object",
177
+ "required": [
178
+ "milestone_ids",
179
+ "task_ids",
180
+ "gate_ids",
181
+ "driving_edge_ids",
182
+ "representative_path",
183
+ "path_count",
184
+ "paths",
185
+ "paths_truncated"
186
+ ],
187
+ "properties": {
188
+ "milestone_ids": {
189
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
190
+ },
191
+ "task_ids": {
192
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
193
+ },
194
+ "gate_ids": {
195
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
196
+ },
197
+ "driving_edge_ids": {
198
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
199
+ },
200
+ "representative_path": {
201
+ "$ref": "#/$defs/precedencePath"
202
+ },
203
+ "path_count": {
204
+ "type": "string",
205
+ "pattern": "^[0-9]+$"
206
+ },
207
+ "paths": {
208
+ "type": "array",
209
+ "items": {
210
+ "$ref": "#/$defs/precedencePath"
211
+ }
212
+ },
213
+ "paths_truncated": {
214
+ "type": "boolean"
215
+ }
216
+ },
217
+ "additionalProperties": false
218
+ }
219
+ },
220
+ "additionalProperties": false
221
+ },
222
+ "schedulePath": {
223
+ "type": "object",
224
+ "required": [
225
+ "task_ids",
226
+ "constraints",
227
+ "connector_ids"
228
+ ],
229
+ "properties": {
230
+ "task_ids": {
231
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
232
+ },
233
+ "constraints": {
234
+ "type": "array",
235
+ "items": {
236
+ "type": "object",
237
+ "required": [
238
+ "from_task_id",
239
+ "to_task_id",
240
+ "kind",
241
+ "resource_arc_id"
242
+ ],
243
+ "properties": {
244
+ "from_task_id": {
245
+ "type": "string"
246
+ },
247
+ "to_task_id": {
248
+ "type": "string"
249
+ },
250
+ "kind": {
251
+ "enum": [
252
+ "precedence",
253
+ "gate",
254
+ "resource"
255
+ ]
256
+ },
257
+ "resource_arc_id": {
258
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
259
+ }
260
+ },
261
+ "additionalProperties": false
262
+ }
263
+ },
264
+ "connector_ids": {
265
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
266
+ }
267
+ },
268
+ "additionalProperties": false
269
+ },
270
+ "resource": {
271
+ "type": "object",
272
+ "required": [
273
+ "algorithm",
274
+ "conditional_on_blocks_resolved",
275
+ "blocked_task_ids",
276
+ "conditional_on_suspensions_resumed",
277
+ "suspended_task_ids",
278
+ "capacities",
279
+ "precedence_lower_bound",
280
+ "makespan",
281
+ "resource_delay",
282
+ "tasks",
283
+ "resources",
284
+ "resource_arcs",
285
+ "constraint_graph_replay",
286
+ "schedule_critical"
287
+ ],
288
+ "properties": {
289
+ "algorithm": {
290
+ "type": "object",
291
+ "required": [
292
+ "id",
293
+ "version",
294
+ "optimal"
295
+ ],
296
+ "properties": {
297
+ "id": {
298
+ "const": "parallel-sgs"
299
+ },
300
+ "version": {
301
+ "const": 1
302
+ },
303
+ "optimal": {
304
+ "const": false
305
+ }
306
+ },
307
+ "additionalProperties": false
308
+ },
309
+ "conditional_on_blocks_resolved": {
310
+ "type": "boolean"
311
+ },
312
+ "blocked_task_ids": {
313
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
314
+ },
315
+ "conditional_on_suspensions_resumed": {
316
+ "type": "boolean"
317
+ },
318
+ "suspended_task_ids": {
319
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
320
+ },
321
+ "capacities": {
322
+ "type": "array",
323
+ "items": {
324
+ "type": "object",
325
+ "required": [
326
+ "id",
327
+ "declared",
328
+ "override",
329
+ "effective"
330
+ ],
331
+ "properties": {
332
+ "id": {
333
+ "type": "string"
334
+ },
335
+ "declared": {
336
+ "type": "integer",
337
+ "minimum": 1
338
+ },
339
+ "override": {
340
+ "type": [
341
+ "integer",
342
+ "null"
343
+ ],
344
+ "minimum": 1
345
+ },
346
+ "effective": {
347
+ "type": "integer",
348
+ "minimum": 1
349
+ }
350
+ },
351
+ "additionalProperties": false
352
+ }
353
+ },
354
+ "precedence_lower_bound": {
355
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
356
+ },
357
+ "makespan": {
358
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
359
+ },
360
+ "resource_delay": {
361
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
362
+ },
363
+ "tasks": {
364
+ "type": "array",
365
+ "items": {
366
+ "type": "object",
367
+ "required": [
368
+ "id",
369
+ "status",
370
+ "expected",
371
+ "variance",
372
+ "eligible_time",
373
+ "start",
374
+ "finish",
375
+ "resource_wait",
376
+ "requirements",
377
+ "priority_key",
378
+ "conditional_blocked"
379
+ ],
380
+ "properties": {
381
+ "id": {
382
+ "type": "string"
383
+ },
384
+ "status": {
385
+ "$ref": "#/$defs/taskStatus"
386
+ },
387
+ "expected": {
388
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
389
+ },
390
+ "variance": {
391
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
392
+ },
393
+ "eligible_time": {
394
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
395
+ },
396
+ "start": {
397
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
398
+ },
399
+ "finish": {
400
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
401
+ },
402
+ "resource_wait": {
403
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
404
+ },
405
+ "requirements": {
406
+ "type": "array",
407
+ "items": {
408
+ "type": "object",
409
+ "required": [
410
+ "resource_id",
411
+ "units"
412
+ ],
413
+ "properties": {
414
+ "resource_id": {
415
+ "type": "string"
416
+ },
417
+ "units": {
418
+ "type": "integer",
419
+ "minimum": 1
420
+ }
421
+ },
422
+ "additionalProperties": false
423
+ }
424
+ },
425
+ "priority_key": {
426
+ "type": "object",
427
+ "required": [
428
+ "priority",
429
+ "precedence_total_float",
430
+ "expected",
431
+ "task_id"
432
+ ],
433
+ "properties": {
434
+ "priority": {
435
+ "type": "integer"
436
+ },
437
+ "precedence_total_float": {
438
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
439
+ },
440
+ "expected": {
441
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
442
+ },
443
+ "task_id": {
444
+ "type": "string"
445
+ }
446
+ },
447
+ "additionalProperties": false
448
+ },
449
+ "conditional_blocked": {
450
+ "type": "boolean"
451
+ }
452
+ },
453
+ "additionalProperties": false
454
+ }
455
+ },
456
+ "resources": {
457
+ "type": "array",
458
+ "items": {
459
+ "type": "object",
460
+ "required": [
461
+ "id",
462
+ "capacity",
463
+ "amount_time",
464
+ "utilization",
465
+ "peak_usage",
466
+ "last_release",
467
+ "timeline"
468
+ ],
469
+ "properties": {
470
+ "id": {
471
+ "type": "string"
472
+ },
473
+ "capacity": {
474
+ "type": "integer",
475
+ "minimum": 1
476
+ },
477
+ "amount_time": {
478
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
479
+ },
480
+ "utilization": {
481
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
482
+ },
483
+ "peak_usage": {
484
+ "type": "integer",
485
+ "minimum": 0
486
+ },
487
+ "last_release": {
488
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
489
+ },
490
+ "timeline": {
491
+ "type": "array",
492
+ "items": {
493
+ "type": "object",
494
+ "required": [
495
+ "task_id",
496
+ "start",
497
+ "finish",
498
+ "units"
499
+ ],
500
+ "properties": {
501
+ "task_id": {
502
+ "type": "string"
503
+ },
504
+ "start": {
505
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
506
+ },
507
+ "finish": {
508
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
509
+ },
510
+ "units": {
511
+ "type": "integer",
512
+ "minimum": 1
513
+ }
514
+ },
515
+ "additionalProperties": false
516
+ }
517
+ }
518
+ },
519
+ "additionalProperties": false
520
+ }
521
+ },
522
+ "resource_arcs": {
523
+ "type": "array",
524
+ "items": {
525
+ "type": "object",
526
+ "required": [
527
+ "id",
528
+ "from_task_id",
529
+ "to_task_id",
530
+ "at_time",
531
+ "wait_from",
532
+ "resources",
533
+ "schedule_float",
534
+ "is_critical",
535
+ "is_driving"
536
+ ],
537
+ "properties": {
538
+ "id": {
539
+ "type": "string"
540
+ },
541
+ "from_task_id": {
542
+ "type": "string"
543
+ },
544
+ "to_task_id": {
545
+ "type": "string"
546
+ },
547
+ "at_time": {
548
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
549
+ },
550
+ "wait_from": {
551
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
552
+ },
553
+ "resources": {
554
+ "type": "array",
555
+ "items": {
556
+ "type": "object",
557
+ "required": [
558
+ "resource_id",
559
+ "contributed_units"
560
+ ],
561
+ "properties": {
562
+ "resource_id": {
563
+ "type": "string"
564
+ },
565
+ "contributed_units": {
566
+ "type": "integer",
567
+ "minimum": 1
568
+ }
569
+ },
570
+ "additionalProperties": false
571
+ }
572
+ },
573
+ "schedule_float": {
574
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
575
+ },
576
+ "is_critical": {
577
+ "type": "boolean"
578
+ },
579
+ "is_driving": {
580
+ "type": "boolean"
581
+ }
582
+ },
583
+ "additionalProperties": false
584
+ }
585
+ },
586
+ "constraint_graph_replay": {
587
+ "type": "object",
588
+ "required": [
589
+ "ok"
590
+ ],
591
+ "properties": {
592
+ "ok": {
593
+ "const": true
594
+ }
595
+ },
596
+ "additionalProperties": false
597
+ },
598
+ "schedule_critical": {
599
+ "type": "object",
600
+ "required": [
601
+ "task_ids",
602
+ "resource_arc_ids",
603
+ "driving_constraint_ids",
604
+ "representative_path",
605
+ "path_count",
606
+ "paths",
607
+ "paths_truncated"
608
+ ],
609
+ "properties": {
610
+ "task_ids": {
611
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
612
+ },
613
+ "resource_arc_ids": {
614
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
615
+ },
616
+ "driving_constraint_ids": {
617
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
618
+ },
619
+ "representative_path": {
620
+ "$ref": "#/$defs/schedulePath"
621
+ },
622
+ "path_count": {
623
+ "type": "string",
624
+ "pattern": "^[0-9]+$"
625
+ },
626
+ "paths": {
627
+ "type": "array",
628
+ "items": {
629
+ "$ref": "#/$defs/schedulePath"
630
+ }
631
+ },
632
+ "paths_truncated": {
633
+ "type": "boolean"
634
+ }
635
+ },
636
+ "additionalProperties": false
637
+ }
638
+ },
639
+ "additionalProperties": false
640
+ }
641
+ },
642
+ "type": "object",
643
+ "required": [
644
+ "schema_version",
645
+ "cli_contract_version",
646
+ "tool_version",
647
+ "operation",
648
+ "ok",
649
+ "document_id",
650
+ "source",
651
+ "source_digest",
652
+ "diagnostics",
653
+ "diagnostics_truncated",
654
+ "grammar_version",
655
+ "task_actuals",
656
+ "mode",
657
+ "precision",
658
+ "precedence",
659
+ "resource",
660
+ "temporal"
661
+ ],
662
+ "properties": {
663
+ "schema_version": {
664
+ "const": "Perttool.AnalysisResult.v4"
665
+ },
666
+ "cli_contract_version": {
667
+ "const": 6
668
+ },
669
+ "tool_version": {
670
+ "type": "string"
671
+ },
672
+ "operation": {
673
+ "const": "dag.analyze"
674
+ },
675
+ "ok": {
676
+ "type": "boolean"
677
+ },
678
+ "document_id": {
679
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
680
+ },
681
+ "source": {
682
+ "type": "string"
683
+ },
684
+ "source_digest": {
685
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/digest"
686
+ },
687
+ "diagnostics": {
688
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/diagnostics"
689
+ },
690
+ "diagnostics_truncated": {
691
+ "type": "boolean"
692
+ },
693
+ "grammar_version": {
694
+ "type": [
695
+ "integer",
696
+ "null"
697
+ ],
698
+ "minimum": 1,
699
+ "maximum": 5
700
+ },
701
+ "task_actuals": {
702
+ "type": "array",
703
+ "items": {
704
+ "type": "object",
705
+ "required": [
706
+ "task_id",
707
+ "status",
708
+ "coverage"
709
+ ],
710
+ "properties": {
711
+ "task_id": {
712
+ "type": "string"
713
+ },
714
+ "status": {
715
+ "$ref": "#/$defs/taskStatus"
716
+ },
717
+ "coverage": {
718
+ "enum": [
719
+ "complete",
720
+ "open",
721
+ "finish_only",
722
+ "unrecorded",
723
+ "unavailable"
724
+ ]
725
+ }
726
+ },
727
+ "additionalProperties": false
728
+ }
729
+ },
730
+ "mode": {
731
+ "enum": [
732
+ "precedence",
733
+ "resource",
734
+ "both"
735
+ ]
736
+ },
737
+ "precision": {
738
+ "type": "integer",
739
+ "minimum": 0,
740
+ "maximum": 9
741
+ },
742
+ "duration_unit": {
743
+ "enum": [
744
+ "day",
745
+ "hour",
746
+ "point"
747
+ ]
748
+ },
749
+ "critical_epsilon": {
750
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/displayedRational"
751
+ },
752
+ "velocity": {
753
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableVelocity"
754
+ },
755
+ "velocity_forecast": {
756
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableVelocityForecast"
757
+ },
758
+ "precedence": {
759
+ "oneOf": [
760
+ {
761
+ "$ref": "#/$defs/precedence"
762
+ },
763
+ {
764
+ "type": "null"
765
+ }
766
+ ]
767
+ },
768
+ "resource": {
769
+ "oneOf": [
770
+ {
771
+ "$ref": "#/$defs/resource"
772
+ },
773
+ {
774
+ "type": "null"
775
+ }
776
+ ]
777
+ },
778
+ "temporal": {
779
+ "oneOf": [
780
+ {
781
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/temporalAnalysis"
782
+ },
783
+ {
784
+ "type": "null"
785
+ }
786
+ ]
787
+ }
788
+ },
789
+ "additionalProperties": false
790
+ }