@toolproof-core/genesis 1.0.49 → 1.0.50

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 (93) hide show
  1. package/dist/src/implementations/tools.d.ts +100 -0
  2. package/dist/src/implementations/tools.js +135 -0
  3. package/dist/src/index.d.ts +5 -4
  4. package/dist/src/index.js +4 -3
  5. package/dist/src/utils/resourceTypes.d.ts +2 -1
  6. package/dist/src/utils/resourceTypes.js +22 -6
  7. package/dist/src/utils/schemaRefNormalization.js +3 -3
  8. package/dist/src/utils/standaloneTypes.js +2 -2
  9. package/dist/src/utils/timestampedResources.d.ts +16 -0
  10. package/dist/src/utils/timestampedResources.js +17 -0
  11. package/dist/src/utils/typeGenerationPostProcess.js +2 -2
  12. package/dist/src/utils/zodCodegen.js +3 -3
  13. package/generated-src/declarations/booleans.json +4 -0
  14. package/generated-src/declarations/booleans.ts +2 -0
  15. package/generated-src/declarations/naturals.json +13 -0
  16. package/generated-src/declarations/naturals.ts +2 -0
  17. package/generated-src/{resourceTypes → declarations}/resourceTypes.json +176 -39
  18. package/generated-src/declarations/resourceTypes.ts +2 -0
  19. package/generated-src/declarations/tools.json +705 -0
  20. package/generated-src/declarations/tools.ts +2 -0
  21. package/generated-src/implementations/tools.ts +214 -0
  22. package/generated-src/{derived → lookups}/constants.ts +4 -5
  23. package/generated-src/metadata/Core.json +51 -114
  24. package/generated-src/metadata/dependencyMap.json +16 -2
  25. package/generated-src/metadata/terminals.json +3 -4
  26. package/generated-src/schemas/schemas.json +198 -29
  27. package/generated-src/schemas/standalone/Resource.json +4 -8
  28. package/generated-src/schemas/standalone/ResourceType.json +21 -5
  29. package/generated-src/schemas/standalone/Strategy.json +4 -8
  30. package/generated-src/schemas/standalone/StrategyTrace.json +4 -8
  31. package/generated-src/schemas/standalone/Suite.json +646 -0
  32. package/generated-src/schemas/standalone/Suite.ts +2 -0
  33. package/generated-src/schemas/standalone/Tool.json +48 -23
  34. package/generated-src/schemas/zod/Resource.ts +2 -2
  35. package/generated-src/schemas/zod/ResourceType.ts +1 -1
  36. package/generated-src/schemas/zod/Strategy.ts +3 -3
  37. package/generated-src/schemas/zod/StrategyTrace.ts +3 -3
  38. package/generated-src/schemas/zod/Suite.ts +44 -0
  39. package/generated-src/schemas/zod/Tool.ts +7 -2
  40. package/generated-src/schemas/zod/index.ts +1 -0
  41. package/{src/genesis/resources → generated-src/timestampedResources}/booleans.json +19 -23
  42. package/generated-src/timestampedResources/booleans.ts +2 -0
  43. package/{src/genesis/resources → generated-src/timestampedResources}/naturals.json +100 -111
  44. package/generated-src/timestampedResources/naturals.ts +2 -0
  45. package/generated-src/{resources → timestampedResources}/resourceTypes.json +202 -66
  46. package/generated-src/timestampedResources/resourceTypes.ts +2 -0
  47. package/{src/genesis/resources → generated-src/timestampedResources}/tools.json +824 -839
  48. package/generated-src/timestampedResources/tools.ts +2 -0
  49. package/generated-src/types/standalone/BooleanResource.d.ts +2 -2
  50. package/generated-src/types/standalone/ErrorResource.d.ts +2 -2
  51. package/generated-src/types/standalone/GoalResource.d.ts +2 -2
  52. package/generated-src/types/standalone/NaturalResource.d.ts +2 -2
  53. package/generated-src/types/standalone/ResourceResource.d.ts +2 -2
  54. package/generated-src/types/standalone/ResourceTypeResource.d.ts +2 -2
  55. package/generated-src/types/standalone/StrategyResource.d.ts +2 -2
  56. package/generated-src/types/standalone/StrategyTraceResource.d.ts +2 -2
  57. package/generated-src/types/standalone/SuiteResource.d.ts +3 -0
  58. package/generated-src/types/standalone/SuiteResource.js +1 -0
  59. package/generated-src/types/standalone/ToolResource.d.ts +2 -2
  60. package/generated-src/types/types.d.ts +57 -14
  61. package/package.json +18 -13
  62. package/src/declarations/booleans.json +4 -0
  63. package/src/declarations/naturals.json +13 -0
  64. package/src/{genesis → declarations/resourceTypes}/resourceTypeShells.json +52 -46
  65. package/src/{genesis → declarations/resourceTypes}/schemas.json +1838 -1669
  66. package/src/declarations/tools.json +705 -0
  67. package/src/implementations/tools.ts +214 -0
  68. package/src/index.ts +131 -110
  69. package/src/utils/constantsAndMappings.ts +194 -194
  70. package/src/utils/coreProjection.ts +52 -52
  71. package/src/utils/resourceTypes.ts +70 -38
  72. package/src/utils/schemaDependencies.ts +114 -114
  73. package/src/utils/schemaObjectNormalization.ts +70 -70
  74. package/src/utils/schemaRefNormalization.ts +82 -82
  75. package/src/utils/schemaShims.ts +16 -16
  76. package/src/utils/standaloneSchemas.ts +113 -113
  77. package/src/utils/standaloneTypes.ts +27 -27
  78. package/src/utils/standaloneZodSchemas.ts +71 -71
  79. package/src/utils/timestampedResources.ts +42 -0
  80. package/src/utils/typeGeneration.ts +30 -30
  81. package/src/utils/typeGenerationPostProcess.ts +245 -245
  82. package/src/utils/typeGenerationPreflight.ts +118 -118
  83. package/src/utils/zodCodegen.ts +548 -548
  84. package/toolproof.json +19 -0
  85. package/dist/src/genesis/resources/implementations/foo.d.ts +0 -1
  86. package/dist/src/genesis/resources/implementations/foo.js +0 -184
  87. package/dist/src/utils/resources.d.ts +0 -5
  88. package/dist/src/utils/resources.js +0 -17
  89. package/generated-src/resourceTypes/resourceTypes.ts +0 -2
  90. package/generated-src/resources/resourceTypes.ts +0 -2
  91. package/src/genesis/resources/implementations/foo.ts +0 -183
  92. package/src/utils/resources.ts +0 -26
  93. /package/generated-src/{derived → lookups}/mappings.ts +0 -0
@@ -1,840 +1,825 @@
1
- [
2
- {
3
- "id": "RESOURCE-Identity",
4
- "resourceTypeHandle": "TYPE-Tool",
5
- "provenance": {
6
- "resourceProvenanceKind": "genesis"
7
- },
8
- "version": 1,
9
- "timestamp": "2025-11-30T00:00:00.000Z",
10
- "value": {
11
- "handle": "TOOL-Identity",
12
- "name": "Identity",
13
- "symbol": "id",
14
- "description": "dummy-description",
15
- "isTemplate": true,
16
- "instantiationRoleSpec": {
17
- "inputRoleValueByName": {
18
- "In": {
19
- "typeRef": {
20
- "roleSchema": {
21
- "$ref": "#OperandType"
22
- }
23
- },
24
- "containerKind": "scalar"
25
- }
26
- },
27
- "outputRoleValueByName": {
28
- "Out": {
29
- "typeRef": {
30
- "roleSchema": {
31
- "$ref": "#OperandType"
32
- }
33
- },
34
- "containerKind": "scalar"
35
- }
36
- }
37
- },
38
- "roleSpec": {
39
- "inputRoleValueByName": {
40
- "GenericAssignmentByRoleName": {
41
- "typeRef": {
42
- "resourceTypeHandle": "TYPE-ResourceType"
43
- },
44
- "containerKind": "map",
45
- "mapKeys": [
46
- "OperandType"
47
- ]
48
- },
49
- "InstantiationToolHandleBySpecializationKey": {
50
- "typeRef": {
51
- "resourceTypeHandle": "TYPE-Tool"
52
- },
53
- "containerKind": "map"
54
- }
55
- },
56
- "outputRoleValueByName": {
57
- "InstantiationTool": {
58
- "typeRef": {
59
- "resourceTypeHandle": "TYPE-Tool"
60
- },
61
- "containerKind": "scalar"
62
- }
63
- }
64
- }
65
- }
66
- },
67
- {
68
- "id": "RESOURCE-Add",
69
- "resourceTypeHandle": "TYPE-Tool",
70
- "provenance": {
71
- "resourceProvenanceKind": "genesis"
72
- },
73
- "version": 1,
74
- "timestamp": "2025-11-30T00:00:00.000Z",
75
- "value": {
76
- "handle": "TOOL-Add",
77
- "name": "Add",
78
- "symbol": "+",
79
- "description": "dummy-description",
80
- "isTemplate": true,
81
- "instantiationRoleSpec": {
82
- "inputRoleValueByName": {
83
- "AddendOne": {
84
- "typeRef": {
85
- "roleSchema": {
86
- "$ref": "#OperandType"
87
- }
88
- },
89
- "containerKind": "scalar"
90
- },
91
- "AddendTwo": {
92
- "typeRef": {
93
- "roleSchema": {
94
- "$ref": "#OperandType"
95
- }
96
- },
97
- "containerKind": "scalar"
98
- }
99
- },
100
- "outputRoleValueByName": {
101
- "Sum": {
102
- "typeRef": {
103
- "roleSchema": {
104
- "$ref": "#OperandType"
105
- }
106
- },
107
- "containerKind": "scalar"
108
- }
109
- }
110
- },
111
- "roleSpec": {
112
- "inputRoleValueByName": {
113
- "GenericAssignmentByRoleName": {
114
- "typeRef": {
115
- "resourceTypeHandle": "TYPE-ResourceType"
116
- },
117
- "containerKind": "map",
118
- "mapKeys": [
119
- "OperandType"
120
- ]
121
- },
122
- "InstantiationToolHandleBySpecializationKey": {
123
- "typeRef": {
124
- "resourceTypeHandle": "TYPE-Tool"
125
- },
126
- "containerKind": "map"
127
- }
128
- },
129
- "outputRoleValueByName": {
130
- "InstantiationTool": {
131
- "typeRef": {
132
- "resourceTypeHandle": "TYPE-Tool"
133
- },
134
- "containerKind": "scalar"
135
- }
136
- }
137
- }
138
- }
139
- },
140
- {
141
- "id": "RESOURCE-Subtract",
142
- "resourceTypeHandle": "TYPE-Tool",
143
- "provenance": {
144
- "resourceProvenanceKind": "genesis"
145
- },
146
- "version": 1,
147
- "timestamp": "2025-11-30T00:00:00.000Z",
148
- "value": {
149
- "handle": "TOOL-Subtract",
150
- "name": "Subtract",
151
- "symbol": "-",
152
- "description": "dummy-description",
153
- "isTemplate": true,
154
- "instantiationRoleSpec": {
155
- "inputRoleValueByName": {
156
- "Minuend": {
157
- "typeRef": {
158
- "roleSchema": {
159
- "$ref": "#OperandType"
160
- }
161
- },
162
- "containerKind": "scalar"
163
- },
164
- "Subtrahend": {
165
- "typeRef": {
166
- "roleSchema": {
167
- "$ref": "#OperandType"
168
- }
169
- },
170
- "containerKind": "scalar"
171
- }
172
- },
173
- "outputRoleValueByName": {
174
- "Difference": {
175
- "typeRef": {
176
- "roleSchema": {
177
- "$ref": "#OperandType"
178
- }
179
- },
180
- "containerKind": "scalar"
181
- }
182
- }
183
- },
184
- "roleSpec": {
185
- "inputRoleValueByName": {
186
- "GenericAssignmentByRoleName": {
187
- "typeRef": {
188
- "resourceTypeHandle": "TYPE-ResourceType"
189
- },
190
- "containerKind": "map",
191
- "mapKeys": [
192
- "OperandType"
193
- ]
194
- },
195
- "InstantiationToolHandleBySpecializationKey": {
196
- "typeRef": {
197
- "resourceTypeHandle": "TYPE-Tool"
198
- },
199
- "containerKind": "map"
200
- }
201
- },
202
- "outputRoleValueByName": {
203
- "InstantiationTool": {
204
- "typeRef": {
205
- "resourceTypeHandle": "TYPE-Tool"
206
- },
207
- "containerKind": "scalar"
208
- }
209
- }
210
- }
211
- }
212
- },
213
- {
214
- "id": "RESOURCE-Multiply",
215
- "resourceTypeHandle": "TYPE-Tool",
216
- "provenance": {
217
- "resourceProvenanceKind": "genesis"
218
- },
219
- "version": 1,
220
- "timestamp": "2025-11-30T00:00:00.000Z",
221
- "value": {
222
- "handle": "TOOL-Multiply",
223
- "name": "Multiply",
224
- "symbol": "X",
225
- "description": "dummy-description",
226
- "isTemplate": true,
227
- "instantiationRoleSpec": {
228
- "inputRoleValueByName": {
229
- "Multiplicand": {
230
- "typeRef": {
231
- "roleSchema": {
232
- "$ref": "#OperandType"
233
- }
234
- },
235
- "containerKind": "scalar"
236
- },
237
- "Multiplier": {
238
- "typeRef": {
239
- "roleSchema": {
240
- "$ref": "#OperandType"
241
- }
242
- },
243
- "containerKind": "scalar"
244
- }
245
- },
246
- "outputRoleValueByName": {
247
- "Product": {
248
- "typeRef": {
249
- "roleSchema": {
250
- "$ref": "#OperandType"
251
- }
252
- },
253
- "containerKind": "scalar"
254
- }
255
- }
256
- },
257
- "roleSpec": {
258
- "inputRoleValueByName": {
259
- "GenericAssignmentByRoleName": {
260
- "typeRef": {
261
- "resourceTypeHandle": "TYPE-ResourceType"
262
- },
263
- "containerKind": "map",
264
- "mapKeys": [
265
- "OperandType"
266
- ]
267
- },
268
- "InstantiationToolHandleBySpecializationKey": {
269
- "typeRef": {
270
- "resourceTypeHandle": "TYPE-Tool"
271
- },
272
- "containerKind": "map"
273
- }
274
- },
275
- "outputRoleValueByName": {
276
- "InstantiationTool": {
277
- "typeRef": {
278
- "resourceTypeHandle": "TYPE-Tool"
279
- },
280
- "containerKind": "scalar"
281
- }
282
- }
283
- }
284
- }
285
- },
286
- {
287
- "id": "RESOURCE-Divide",
288
- "resourceTypeHandle": "TYPE-Tool",
289
- "provenance": {
290
- "resourceProvenanceKind": "genesis"
291
- },
292
- "version": 1,
293
- "timestamp": "2025-11-30T00:00:00.000Z",
294
- "value": {
295
- "handle": "TOOL-Divide",
296
- "name": "Divide",
297
- "symbol": "÷",
298
- "description": "dummy-description",
299
- "isTemplate": true,
300
- "instantiationRoleSpec": {
301
- "inputRoleValueByName": {
302
- "Dividend": {
303
- "typeRef": {
304
- "roleSchema": {
305
- "$ref": "#OperandType"
306
- }
307
- },
308
- "containerKind": "scalar"
309
- },
310
- "Divisor": {
311
- "typeRef": {
312
- "roleSchema": {
313
- "$ref": "#OperandType"
314
- }
315
- },
316
- "containerKind": "scalar"
317
- }
318
- },
319
- "outputRoleValueByName": {
320
- "Quotient": {
321
- "typeRef": {
322
- "roleSchema": {
323
- "$ref": "#OperandType"
324
- }
325
- },
326
- "containerKind": "scalar"
327
- },
328
- "Remainder": {
329
- "typeRef": {
330
- "roleSchema": {
331
- "$ref": "#OperandType"
332
- }
333
- },
334
- "containerKind": "scalar"
335
- }
336
- }
337
- },
338
- "roleSpec": {
339
- "inputRoleValueByName": {
340
- "GenericAssignmentByRoleName": {
341
- "typeRef": {
342
- "resourceTypeHandle": "TYPE-ResourceType"
343
- },
344
- "containerKind": "map",
345
- "mapKeys": [
346
- "OperandType"
347
- ]
348
- },
349
- "InstantiationToolHandleBySpecializationKey": {
350
- "typeRef": {
351
- "resourceTypeHandle": "TYPE-Tool"
352
- },
353
- "containerKind": "map"
354
- }
355
- },
356
- "outputRoleValueByName": {
357
- "InstantiationTool": {
358
- "typeRef": {
359
- "resourceTypeHandle": "TYPE-Tool"
360
- },
361
- "containerKind": "scalar"
362
- }
363
- }
364
- }
365
- }
366
- },
367
- {
368
- "id": "RESOURCE-Double",
369
- "resourceTypeHandle": "TYPE-Tool",
370
- "provenance": {
371
- "resourceProvenanceKind": "genesis"
372
- },
373
- "version": 1,
374
- "timestamp": "2025-11-30T00:00:00.000Z",
375
- "value": {
376
- "handle": "TOOL-Double",
377
- "name": "Double",
378
- "symbol": "X2",
379
- "description": "dummy-description",
380
- "isTemplate": true,
381
- "instantiationRoleSpec": {
382
- "inputRoleValueByName": {
383
- "N": {
384
- "typeRef": {
385
- "roleSchema": {
386
- "$ref": "#OperandType"
387
- }
388
- },
389
- "containerKind": "scalar"
390
- }
391
- },
392
- "outputRoleValueByName": {
393
- "Doubled": {
394
- "typeRef": {
395
- "roleSchema": {
396
- "$ref": "#OperandType"
397
- }
398
- },
399
- "containerKind": "scalar"
400
- }
401
- }
402
- },
403
- "roleSpec": {
404
- "inputRoleValueByName": {
405
- "GenericAssignmentByRoleName": {
406
- "typeRef": {
407
- "resourceTypeHandle": "TYPE-ResourceType"
408
- },
409
- "containerKind": "map",
410
- "mapKeys": [
411
- "OperandType"
412
- ]
413
- },
414
- "InstantiationToolHandleBySpecializationKey": {
415
- "typeRef": {
416
- "resourceTypeHandle": "TYPE-Tool"
417
- },
418
- "containerKind": "map"
419
- }
420
- },
421
- "outputRoleValueByName": {
422
- "InstantiationTool": {
423
- "typeRef": {
424
- "resourceTypeHandle": "TYPE-Tool"
425
- },
426
- "containerKind": "scalar"
427
- }
428
- }
429
- }
430
- }
431
- },
432
- {
433
- "id": "RESOURCE-LessThan",
434
- "resourceTypeHandle": "TYPE-Tool",
435
- "provenance": {
436
- "resourceProvenanceKind": "genesis"
437
- },
438
- "version": 1,
439
- "timestamp": "2025-11-30T00:00:00.000Z",
440
- "value": {
441
- "handle": "TOOL-LessThan",
442
- "name": "LessThan",
443
- "symbol": "<",
444
- "description": "dummy-description",
445
- "isTemplate": true,
446
- "instantiationRoleSpec": {
447
- "inputRoleValueByName": {
448
- "LessThanSource": {
449
- "typeRef": {
450
- "roleSchema": {
451
- "$ref": "#OperandType"
452
- }
453
- },
454
- "containerKind": "scalar"
455
- },
456
- "LessThanTarget": {
457
- "typeRef": {
458
- "roleSchema": {
459
- "$ref": "#OperandType"
460
- }
461
- },
462
- "containerKind": "scalar"
463
- }
464
- },
465
- "outputRoleValueByName": {
466
- "LessThanDecision": {
467
- "typeRef": {
468
- "resourceTypeHandle": "TYPE-Boolean"
469
- },
470
- "containerKind": "scalar"
471
- }
472
- }
473
- },
474
- "roleSpec": {
475
- "inputRoleValueByName": {
476
- "GenericAssignmentByRoleName": {
477
- "typeRef": {
478
- "resourceTypeHandle": "TYPE-ResourceType"
479
- },
480
- "containerKind": "map",
481
- "mapKeys": [
482
- "OperandType"
483
- ]
484
- },
485
- "InstantiationToolHandleBySpecializationKey": {
486
- "typeRef": {
487
- "resourceTypeHandle": "TYPE-Tool"
488
- },
489
- "containerKind": "map"
490
- }
491
- },
492
- "outputRoleValueByName": {
493
- "InstantiationTool": {
494
- "typeRef": {
495
- "resourceTypeHandle": "TYPE-Tool"
496
- },
497
- "containerKind": "scalar"
498
- }
499
- }
500
- }
501
- }
502
- },
503
- {
504
- "id": "RESOURCE-BooleanIdentity",
505
- "resourceTypeHandle": "TYPE-Tool",
506
- "provenance": {
507
- "resourceProvenanceKind": "genesis"
508
- },
509
- "version": 1,
510
- "timestamp": "2025-11-30T00:00:00.000Z",
511
- "value": {
512
- "handle": "TOOL-BooleanIdentity",
513
- "name": "BooleanIdentity",
514
- "symbol": "id",
515
- "description": "dummy-description",
516
- "isTemplate": false,
517
- "templateToolHandle": "TOOL-Identity",
518
- "roleSpec": {
519
- "inputRoleValueByName": {
520
- "In": {
521
- "typeRef": {
522
- "resourceTypeHandle": "TYPE-Boolean"
523
- },
524
- "containerKind": "scalar"
525
- }
526
- },
527
- "outputRoleValueByName": {
528
- "Out": {
529
- "typeRef": {
530
- "resourceTypeHandle": "TYPE-Boolean"
531
- },
532
- "containerKind": "scalar"
533
- }
534
- }
535
- }
536
- }
537
- },
538
- {
539
- "id": "RESOURCE-NaturalIdentity",
540
- "resourceTypeHandle": "TYPE-Tool",
541
- "provenance": {
542
- "resourceProvenanceKind": "genesis"
543
- },
544
- "version": 1,
545
- "timestamp": "2025-11-30T00:00:00.000Z",
546
- "value": {
547
- "handle": "TOOL-NaturalIdentity",
548
- "name": "NaturalIdentity",
549
- "symbol": "id",
550
- "description": "dummy-description",
551
- "isTemplate": false,
552
- "templateToolHandle": "TOOL-Identity",
553
- "roleSpec": {
554
- "inputRoleValueByName": {
555
- "In": {
556
- "typeRef": {
557
- "resourceTypeHandle": "TYPE-Natural"
558
- },
559
- "containerKind": "scalar"
560
- }
561
- },
562
- "outputRoleValueByName": {
563
- "Out": {
564
- "typeRef": {
565
- "resourceTypeHandle": "TYPE-Natural"
566
- },
567
- "containerKind": "scalar"
568
- }
569
- }
570
- }
571
- }
572
- },
573
- {
574
- "id": "RESOURCE-NaturalLessThan",
575
- "resourceTypeHandle": "TYPE-Tool",
576
- "provenance": {
577
- "resourceProvenanceKind": "genesis"
578
- },
579
- "version": 1,
580
- "timestamp": "2025-11-30T00:00:00.000Z",
581
- "value": {
582
- "handle": "TOOL-NaturalLessThan",
583
- "name": "NaturalLessThan",
584
- "symbol": "<",
585
- "description": "dummy-description",
586
- "isTemplate": false,
587
- "templateToolHandle": "TOOL-LessThan",
588
- "roleSpec": {
589
- "inputRoleValueByName": {
590
- "LessThanSource": {
591
- "typeRef": {
592
- "resourceTypeHandle": "TYPE-Natural"
593
- },
594
- "containerKind": "scalar"
595
- },
596
- "LessThanTarget": {
597
- "typeRef": {
598
- "resourceTypeHandle": "TYPE-Natural"
599
- },
600
- "containerKind": "scalar"
601
- }
602
- },
603
- "outputRoleValueByName": {
604
- "LessThanDecision": {
605
- "typeRef": {
606
- "resourceTypeHandle": "TYPE-Boolean"
607
- },
608
- "containerKind": "scalar"
609
- }
610
- }
611
- }
612
- }
613
- },
614
- {
615
- "id": "RESOURCE-NaturalAdd",
616
- "resourceTypeHandle": "TYPE-Tool",
617
- "provenance": {
618
- "resourceProvenanceKind": "genesis"
619
- },
620
- "version": 1,
621
- "timestamp": "2025-11-30T00:00:00.000Z",
622
- "value": {
623
- "handle": "TOOL-NaturalAdd",
624
- "name": "NaturalAdd",
625
- "symbol": "+",
626
- "description": "dummy-description",
627
- "isTemplate": false,
628
- "templateToolHandle": "TOOL-Add",
629
- "roleSpec": {
630
- "inputRoleValueByName": {
631
- "AddendOne": {
632
- "typeRef": {
633
- "resourceTypeHandle": "TYPE-Natural"
634
- },
635
- "containerKind": "scalar"
636
- },
637
- "AddendTwo": {
638
- "typeRef": {
639
- "resourceTypeHandle": "TYPE-Natural"
640
- },
641
- "containerKind": "scalar"
642
- }
643
- },
644
- "outputRoleValueByName": {
645
- "Sum": {
646
- "typeRef": {
647
- "resourceTypeHandle": "TYPE-Natural"
648
- },
649
- "containerKind": "scalar"
650
- }
651
- }
652
- }
653
- }
654
- },
655
- {
656
- "id": "RESOURCE-NaturalSubtract",
657
- "resourceTypeHandle": "TYPE-Tool",
658
- "provenance": {
659
- "resourceProvenanceKind": "genesis"
660
- },
661
- "version": 1,
662
- "timestamp": "2025-11-30T00:00:00.000Z",
663
- "value": {
664
- "handle": "TOOL-NaturalSubtract",
665
- "name": "NaturalSubtract",
666
- "symbol": "-",
667
- "description": "dummy-description",
668
- "isTemplate": false,
669
- "templateToolHandle": "TOOL-Subtract",
670
- "roleSpec": {
671
- "inputRoleValueByName": {
672
- "Minuend": {
673
- "typeRef": {
674
- "resourceTypeHandle": "TYPE-Natural"
675
- },
676
- "containerKind": "scalar"
677
- },
678
- "Subtrahend": {
679
- "typeRef": {
680
- "resourceTypeHandle": "TYPE-Natural"
681
- },
682
- "containerKind": "scalar"
683
- }
684
- },
685
- "outputRoleValueByName": {
686
- "Difference": {
687
- "typeRef": {
688
- "resourceTypeHandle": "TYPE-Natural"
689
- },
690
- "containerKind": "scalar"
691
- }
692
- },
693
- "refinementSchema": {
694
- "$schema": "https://json-schema.org/draft/2020-12/schema",
695
- "type": "object",
696
- "required": [
697
- "Minuend",
698
- "Subtrahend"
699
- ],
700
- "properties": {
701
- "Subtrahend": {
702
- "exclusiveMaximum": {
703
- "$data": "1/Minuend"
704
- }
705
- }
706
- }
707
- }
708
- }
709
- }
710
- },
711
- {
712
- "id": "RESOURCE-NaturalMultiply",
713
- "resourceTypeHandle": "TYPE-Tool",
714
- "provenance": {
715
- "resourceProvenanceKind": "genesis"
716
- },
717
- "version": 1,
718
- "timestamp": "2025-11-30T00:00:00.000Z",
719
- "value": {
720
- "handle": "TOOL-NaturalMultiply",
721
- "name": "NaturalMultiply",
722
- "symbol": "X",
723
- "description": "dummy-description",
724
- "isTemplate": false,
725
- "templateToolHandle": "TOOL-Multiply",
726
- "roleSpec": {
727
- "inputRoleValueByName": {
728
- "Multiplicand": {
729
- "typeRef": {
730
- "resourceTypeHandle": "TYPE-Natural"
731
- },
732
- "containerKind": "scalar"
733
- },
734
- "Multiplier": {
735
- "typeRef": {
736
- "resourceTypeHandle": "TYPE-Natural"
737
- },
738
- "containerKind": "scalar"
739
- }
740
- },
741
- "outputRoleValueByName": {
742
- "Product": {
743
- "typeRef": {
744
- "resourceTypeHandle": "TYPE-Natural"
745
- },
746
- "containerKind": "scalar"
747
- }
748
- }
749
- }
750
- }
751
- },
752
- {
753
- "id": "RESOURCE-NaturalDivide",
754
- "resourceTypeHandle": "TYPE-Tool",
755
- "provenance": {
756
- "resourceProvenanceKind": "genesis"
757
- },
758
- "version": 1,
759
- "timestamp": "2025-11-30T00:00:00.000Z",
760
- "value": {
761
- "handle": "TOOL-NaturalDivide",
762
- "name": "NaturalDivide",
763
- "symbol": "÷",
764
- "description": "dummy-description",
765
- "isTemplate": false,
766
- "templateToolHandle": "TOOL-Divide",
767
- "roleSpec": {
768
- "inputRoleValueByName": {
769
- "Dividend": {
770
- "typeRef": {
771
- "resourceTypeHandle": "TYPE-Natural"
772
- },
773
- "containerKind": "scalar"
774
- },
775
- "Divisor": {
776
- "typeRef": {
777
- "resourceTypeHandle": "TYPE-Natural"
778
- },
779
- "containerKind": "scalar",
780
- "refinementSchema": {
781
- "$schema": "https://json-schema.org/draft/2020-12/schema",
782
- "not": {
783
- "const": 0
784
- }
785
- }
786
- }
787
- },
788
- "outputRoleValueByName": {
789
- "Quotient": {
790
- "typeRef": {
791
- "resourceTypeHandle": "TYPE-Natural"
792
- },
793
- "containerKind": "scalar"
794
- },
795
- "Remainder": {
796
- "typeRef": {
797
- "resourceTypeHandle": "TYPE-Natural"
798
- },
799
- "containerKind": "scalar"
800
- }
801
- }
802
- }
803
- }
804
- },
805
- {
806
- "id": "RESOURCE-NaturalDouble",
807
- "resourceTypeHandle": "TYPE-Tool",
808
- "provenance": {
809
- "resourceProvenanceKind": "genesis"
810
- },
811
- "version": 1,
812
- "timestamp": "2025-11-30T00:00:00.000Z",
813
- "value": {
814
- "handle": "TOOL-NaturalDouble",
815
- "name": "NaturalDouble",
816
- "symbol": "X2",
817
- "description": "dummy-description",
818
- "isTemplate": false,
819
- "templateToolHandle": "TOOL-Double",
820
- "roleSpec": {
821
- "inputRoleValueByName": {
822
- "N": {
823
- "typeRef": {
824
- "resourceTypeHandle": "TYPE-Natural"
825
- },
826
- "containerKind": "scalar"
827
- }
828
- },
829
- "outputRoleValueByName": {
830
- "Doubled": {
831
- "typeRef": {
832
- "resourceTypeHandle": "TYPE-Natural"
833
- },
834
- "containerKind": "scalar"
835
- }
836
- }
837
- }
838
- }
839
- }
1
+ [
2
+ {
3
+ "id": "RESOURCE-TOOL:Identity",
4
+ "resourceTypeHandle": "TYPE-Tool",
5
+ "provenance": {
6
+ "resourceProvenanceKind": "genesis"
7
+ },
8
+ "timestamp": "2025-11-30T00:00:00.000Z",
9
+ "projection": {
10
+ "handle": "TOOL-Identity",
11
+ "name": "Identity",
12
+ "symbol": "id",
13
+ "description": "dummy-description",
14
+ "isTemplate": true,
15
+ "instantiationRoleSpec": {
16
+ "inputRoleValueByName": {
17
+ "In": {
18
+ "typeRef": {
19
+ "roleSchema": {
20
+ "$ref": "#OperandType"
21
+ }
22
+ },
23
+ "containerKind": "scalar"
24
+ }
25
+ },
26
+ "outputRoleValueByName": {
27
+ "Out": {
28
+ "typeRef": {
29
+ "roleSchema": {
30
+ "$ref": "#OperandType"
31
+ }
32
+ },
33
+ "containerKind": "scalar"
34
+ }
35
+ }
36
+ },
37
+ "roleSpec": {
38
+ "inputRoleValueByName": {
39
+ "GenericAssignmentByRoleName": {
40
+ "typeRef": {
41
+ "resourceTypeHandle": "TYPE-ResourceType"
42
+ },
43
+ "containerKind": "map",
44
+ "mapKeys": [
45
+ "OperandType"
46
+ ]
47
+ },
48
+ "InstantiationToolHandleBySpecializationKey": {
49
+ "typeRef": {
50
+ "resourceTypeHandle": "TYPE-Tool"
51
+ },
52
+ "containerKind": "map"
53
+ }
54
+ },
55
+ "outputRoleValueByName": {
56
+ "InstantiationTool": {
57
+ "typeRef": {
58
+ "resourceTypeHandle": "TYPE-Tool"
59
+ },
60
+ "containerKind": "scalar"
61
+ }
62
+ }
63
+ }
64
+ }
65
+ },
66
+ {
67
+ "id": "RESOURCE-TOOL:Add",
68
+ "resourceTypeHandle": "TYPE-Tool",
69
+ "provenance": {
70
+ "resourceProvenanceKind": "genesis"
71
+ },
72
+ "timestamp": "2025-11-30T00:00:00.000Z",
73
+ "projection": {
74
+ "handle": "TOOL-Add",
75
+ "name": "Add",
76
+ "symbol": "+",
77
+ "description": "dummy-description",
78
+ "isTemplate": true,
79
+ "instantiationRoleSpec": {
80
+ "inputRoleValueByName": {
81
+ "AddendOne": {
82
+ "typeRef": {
83
+ "roleSchema": {
84
+ "$ref": "#OperandType"
85
+ }
86
+ },
87
+ "containerKind": "scalar"
88
+ },
89
+ "AddendTwo": {
90
+ "typeRef": {
91
+ "roleSchema": {
92
+ "$ref": "#OperandType"
93
+ }
94
+ },
95
+ "containerKind": "scalar"
96
+ }
97
+ },
98
+ "outputRoleValueByName": {
99
+ "Sum": {
100
+ "typeRef": {
101
+ "roleSchema": {
102
+ "$ref": "#OperandType"
103
+ }
104
+ },
105
+ "containerKind": "scalar"
106
+ }
107
+ }
108
+ },
109
+ "roleSpec": {
110
+ "inputRoleValueByName": {
111
+ "GenericAssignmentByRoleName": {
112
+ "typeRef": {
113
+ "resourceTypeHandle": "TYPE-ResourceType"
114
+ },
115
+ "containerKind": "map",
116
+ "mapKeys": [
117
+ "OperandType"
118
+ ]
119
+ },
120
+ "InstantiationToolHandleBySpecializationKey": {
121
+ "typeRef": {
122
+ "resourceTypeHandle": "TYPE-Tool"
123
+ },
124
+ "containerKind": "map"
125
+ }
126
+ },
127
+ "outputRoleValueByName": {
128
+ "InstantiationTool": {
129
+ "typeRef": {
130
+ "resourceTypeHandle": "TYPE-Tool"
131
+ },
132
+ "containerKind": "scalar"
133
+ }
134
+ }
135
+ }
136
+ }
137
+ },
138
+ {
139
+ "id": "RESOURCE-TOOL:Subtract",
140
+ "resourceTypeHandle": "TYPE-Tool",
141
+ "provenance": {
142
+ "resourceProvenanceKind": "genesis"
143
+ },
144
+ "timestamp": "2025-11-30T00:00:00.000Z",
145
+ "projection": {
146
+ "handle": "TOOL-Subtract",
147
+ "name": "Subtract",
148
+ "symbol": "-",
149
+ "description": "dummy-description",
150
+ "isTemplate": true,
151
+ "instantiationRoleSpec": {
152
+ "inputRoleValueByName": {
153
+ "Minuend": {
154
+ "typeRef": {
155
+ "roleSchema": {
156
+ "$ref": "#OperandType"
157
+ }
158
+ },
159
+ "containerKind": "scalar"
160
+ },
161
+ "Subtrahend": {
162
+ "typeRef": {
163
+ "roleSchema": {
164
+ "$ref": "#OperandType"
165
+ }
166
+ },
167
+ "containerKind": "scalar"
168
+ }
169
+ },
170
+ "outputRoleValueByName": {
171
+ "Difference": {
172
+ "typeRef": {
173
+ "roleSchema": {
174
+ "$ref": "#OperandType"
175
+ }
176
+ },
177
+ "containerKind": "scalar"
178
+ }
179
+ }
180
+ },
181
+ "roleSpec": {
182
+ "inputRoleValueByName": {
183
+ "GenericAssignmentByRoleName": {
184
+ "typeRef": {
185
+ "resourceTypeHandle": "TYPE-ResourceType"
186
+ },
187
+ "containerKind": "map",
188
+ "mapKeys": [
189
+ "OperandType"
190
+ ]
191
+ },
192
+ "InstantiationToolHandleBySpecializationKey": {
193
+ "typeRef": {
194
+ "resourceTypeHandle": "TYPE-Tool"
195
+ },
196
+ "containerKind": "map"
197
+ }
198
+ },
199
+ "outputRoleValueByName": {
200
+ "InstantiationTool": {
201
+ "typeRef": {
202
+ "resourceTypeHandle": "TYPE-Tool"
203
+ },
204
+ "containerKind": "scalar"
205
+ }
206
+ }
207
+ }
208
+ }
209
+ },
210
+ {
211
+ "id": "RESOURCE-TOOL:Multiply",
212
+ "resourceTypeHandle": "TYPE-Tool",
213
+ "provenance": {
214
+ "resourceProvenanceKind": "genesis"
215
+ },
216
+ "timestamp": "2025-11-30T00:00:00.000Z",
217
+ "projection": {
218
+ "handle": "TOOL-Multiply",
219
+ "name": "Multiply",
220
+ "symbol": "X",
221
+ "description": "dummy-description",
222
+ "isTemplate": true,
223
+ "instantiationRoleSpec": {
224
+ "inputRoleValueByName": {
225
+ "Multiplicand": {
226
+ "typeRef": {
227
+ "roleSchema": {
228
+ "$ref": "#OperandType"
229
+ }
230
+ },
231
+ "containerKind": "scalar"
232
+ },
233
+ "Multiplier": {
234
+ "typeRef": {
235
+ "roleSchema": {
236
+ "$ref": "#OperandType"
237
+ }
238
+ },
239
+ "containerKind": "scalar"
240
+ }
241
+ },
242
+ "outputRoleValueByName": {
243
+ "Product": {
244
+ "typeRef": {
245
+ "roleSchema": {
246
+ "$ref": "#OperandType"
247
+ }
248
+ },
249
+ "containerKind": "scalar"
250
+ }
251
+ }
252
+ },
253
+ "roleSpec": {
254
+ "inputRoleValueByName": {
255
+ "GenericAssignmentByRoleName": {
256
+ "typeRef": {
257
+ "resourceTypeHandle": "TYPE-ResourceType"
258
+ },
259
+ "containerKind": "map",
260
+ "mapKeys": [
261
+ "OperandType"
262
+ ]
263
+ },
264
+ "InstantiationToolHandleBySpecializationKey": {
265
+ "typeRef": {
266
+ "resourceTypeHandle": "TYPE-Tool"
267
+ },
268
+ "containerKind": "map"
269
+ }
270
+ },
271
+ "outputRoleValueByName": {
272
+ "InstantiationTool": {
273
+ "typeRef": {
274
+ "resourceTypeHandle": "TYPE-Tool"
275
+ },
276
+ "containerKind": "scalar"
277
+ }
278
+ }
279
+ }
280
+ }
281
+ },
282
+ {
283
+ "id": "RESOURCE-TOOL:Divide",
284
+ "resourceTypeHandle": "TYPE-Tool",
285
+ "provenance": {
286
+ "resourceProvenanceKind": "genesis"
287
+ },
288
+ "timestamp": "2025-11-30T00:00:00.000Z",
289
+ "projection": {
290
+ "handle": "TOOL-Divide",
291
+ "name": "Divide",
292
+ "symbol": "÷",
293
+ "description": "dummy-description",
294
+ "isTemplate": true,
295
+ "instantiationRoleSpec": {
296
+ "inputRoleValueByName": {
297
+ "Dividend": {
298
+ "typeRef": {
299
+ "roleSchema": {
300
+ "$ref": "#OperandType"
301
+ }
302
+ },
303
+ "containerKind": "scalar"
304
+ },
305
+ "Divisor": {
306
+ "typeRef": {
307
+ "roleSchema": {
308
+ "$ref": "#OperandType"
309
+ }
310
+ },
311
+ "containerKind": "scalar"
312
+ }
313
+ },
314
+ "outputRoleValueByName": {
315
+ "Quotient": {
316
+ "typeRef": {
317
+ "roleSchema": {
318
+ "$ref": "#OperandType"
319
+ }
320
+ },
321
+ "containerKind": "scalar"
322
+ },
323
+ "Remainder": {
324
+ "typeRef": {
325
+ "roleSchema": {
326
+ "$ref": "#OperandType"
327
+ }
328
+ },
329
+ "containerKind": "scalar"
330
+ }
331
+ }
332
+ },
333
+ "roleSpec": {
334
+ "inputRoleValueByName": {
335
+ "GenericAssignmentByRoleName": {
336
+ "typeRef": {
337
+ "resourceTypeHandle": "TYPE-ResourceType"
338
+ },
339
+ "containerKind": "map",
340
+ "mapKeys": [
341
+ "OperandType"
342
+ ]
343
+ },
344
+ "InstantiationToolHandleBySpecializationKey": {
345
+ "typeRef": {
346
+ "resourceTypeHandle": "TYPE-Tool"
347
+ },
348
+ "containerKind": "map"
349
+ }
350
+ },
351
+ "outputRoleValueByName": {
352
+ "InstantiationTool": {
353
+ "typeRef": {
354
+ "resourceTypeHandle": "TYPE-Tool"
355
+ },
356
+ "containerKind": "scalar"
357
+ }
358
+ }
359
+ }
360
+ }
361
+ },
362
+ {
363
+ "id": "RESOURCE-TOOL:Double",
364
+ "resourceTypeHandle": "TYPE-Tool",
365
+ "provenance": {
366
+ "resourceProvenanceKind": "genesis"
367
+ },
368
+ "timestamp": "2025-11-30T00:00:00.000Z",
369
+ "projection": {
370
+ "handle": "TOOL-Double",
371
+ "name": "Double",
372
+ "symbol": "X2",
373
+ "description": "dummy-description",
374
+ "isTemplate": true,
375
+ "instantiationRoleSpec": {
376
+ "inputRoleValueByName": {
377
+ "N": {
378
+ "typeRef": {
379
+ "roleSchema": {
380
+ "$ref": "#OperandType"
381
+ }
382
+ },
383
+ "containerKind": "scalar"
384
+ }
385
+ },
386
+ "outputRoleValueByName": {
387
+ "Doubled": {
388
+ "typeRef": {
389
+ "roleSchema": {
390
+ "$ref": "#OperandType"
391
+ }
392
+ },
393
+ "containerKind": "scalar"
394
+ }
395
+ }
396
+ },
397
+ "roleSpec": {
398
+ "inputRoleValueByName": {
399
+ "GenericAssignmentByRoleName": {
400
+ "typeRef": {
401
+ "resourceTypeHandle": "TYPE-ResourceType"
402
+ },
403
+ "containerKind": "map",
404
+ "mapKeys": [
405
+ "OperandType"
406
+ ]
407
+ },
408
+ "InstantiationToolHandleBySpecializationKey": {
409
+ "typeRef": {
410
+ "resourceTypeHandle": "TYPE-Tool"
411
+ },
412
+ "containerKind": "map"
413
+ }
414
+ },
415
+ "outputRoleValueByName": {
416
+ "InstantiationTool": {
417
+ "typeRef": {
418
+ "resourceTypeHandle": "TYPE-Tool"
419
+ },
420
+ "containerKind": "scalar"
421
+ }
422
+ }
423
+ }
424
+ }
425
+ },
426
+ {
427
+ "id": "RESOURCE-TOOL:LessThan",
428
+ "resourceTypeHandle": "TYPE-Tool",
429
+ "provenance": {
430
+ "resourceProvenanceKind": "genesis"
431
+ },
432
+ "timestamp": "2025-11-30T00:00:00.000Z",
433
+ "projection": {
434
+ "handle": "TOOL-LessThan",
435
+ "name": "LessThan",
436
+ "symbol": "<",
437
+ "description": "dummy-description",
438
+ "isTemplate": true,
439
+ "instantiationRoleSpec": {
440
+ "inputRoleValueByName": {
441
+ "LessThanSource": {
442
+ "typeRef": {
443
+ "roleSchema": {
444
+ "$ref": "#OperandType"
445
+ }
446
+ },
447
+ "containerKind": "scalar"
448
+ },
449
+ "LessThanTarget": {
450
+ "typeRef": {
451
+ "roleSchema": {
452
+ "$ref": "#OperandType"
453
+ }
454
+ },
455
+ "containerKind": "scalar"
456
+ }
457
+ },
458
+ "outputRoleValueByName": {
459
+ "LessThanDecision": {
460
+ "typeRef": {
461
+ "resourceTypeHandle": "TYPE-Boolean"
462
+ },
463
+ "containerKind": "scalar"
464
+ }
465
+ }
466
+ },
467
+ "roleSpec": {
468
+ "inputRoleValueByName": {
469
+ "GenericAssignmentByRoleName": {
470
+ "typeRef": {
471
+ "resourceTypeHandle": "TYPE-ResourceType"
472
+ },
473
+ "containerKind": "map",
474
+ "mapKeys": [
475
+ "OperandType"
476
+ ]
477
+ },
478
+ "InstantiationToolHandleBySpecializationKey": {
479
+ "typeRef": {
480
+ "resourceTypeHandle": "TYPE-Tool"
481
+ },
482
+ "containerKind": "map"
483
+ }
484
+ },
485
+ "outputRoleValueByName": {
486
+ "InstantiationTool": {
487
+ "typeRef": {
488
+ "resourceTypeHandle": "TYPE-Tool"
489
+ },
490
+ "containerKind": "scalar"
491
+ }
492
+ }
493
+ }
494
+ }
495
+ },
496
+ {
497
+ "id": "RESOURCE-TOOL:BooleanIdentity",
498
+ "resourceTypeHandle": "TYPE-Tool",
499
+ "provenance": {
500
+ "resourceProvenanceKind": "genesis"
501
+ },
502
+ "timestamp": "2025-11-30T00:00:00.000Z",
503
+ "projection": {
504
+ "handle": "TOOL-BooleanIdentity",
505
+ "name": "BooleanIdentity",
506
+ "symbol": "id",
507
+ "description": "dummy-description",
508
+ "isTemplate": false,
509
+ "templateToolHandle": "TOOL-Identity",
510
+ "roleSpec": {
511
+ "inputRoleValueByName": {
512
+ "In": {
513
+ "typeRef": {
514
+ "resourceTypeHandle": "TYPE-Boolean"
515
+ },
516
+ "containerKind": "scalar"
517
+ }
518
+ },
519
+ "outputRoleValueByName": {
520
+ "Out": {
521
+ "typeRef": {
522
+ "resourceTypeHandle": "TYPE-Boolean"
523
+ },
524
+ "containerKind": "scalar"
525
+ }
526
+ }
527
+ }
528
+ }
529
+ },
530
+ {
531
+ "id": "RESOURCE-TOOL:NaturalIdentity",
532
+ "resourceTypeHandle": "TYPE-Tool",
533
+ "provenance": {
534
+ "resourceProvenanceKind": "genesis"
535
+ },
536
+ "timestamp": "2025-11-30T00:00:00.000Z",
537
+ "projection": {
538
+ "handle": "TOOL-NaturalIdentity",
539
+ "name": "NaturalIdentity",
540
+ "symbol": "id",
541
+ "description": "dummy-description",
542
+ "isTemplate": false,
543
+ "templateToolHandle": "TOOL-Identity",
544
+ "roleSpec": {
545
+ "inputRoleValueByName": {
546
+ "In": {
547
+ "typeRef": {
548
+ "resourceTypeHandle": "TYPE-Natural"
549
+ },
550
+ "containerKind": "scalar"
551
+ }
552
+ },
553
+ "outputRoleValueByName": {
554
+ "Out": {
555
+ "typeRef": {
556
+ "resourceTypeHandle": "TYPE-Natural"
557
+ },
558
+ "containerKind": "scalar"
559
+ }
560
+ }
561
+ }
562
+ }
563
+ },
564
+ {
565
+ "id": "RESOURCE-TOOL:NaturalLessThan",
566
+ "resourceTypeHandle": "TYPE-Tool",
567
+ "provenance": {
568
+ "resourceProvenanceKind": "genesis"
569
+ },
570
+ "timestamp": "2025-11-30T00:00:00.000Z",
571
+ "projection": {
572
+ "handle": "TOOL-NaturalLessThan",
573
+ "name": "NaturalLessThan",
574
+ "symbol": "<",
575
+ "description": "dummy-description",
576
+ "isTemplate": false,
577
+ "templateToolHandle": "TOOL-LessThan",
578
+ "roleSpec": {
579
+ "inputRoleValueByName": {
580
+ "LessThanSource": {
581
+ "typeRef": {
582
+ "resourceTypeHandle": "TYPE-Natural"
583
+ },
584
+ "containerKind": "scalar"
585
+ },
586
+ "LessThanTarget": {
587
+ "typeRef": {
588
+ "resourceTypeHandle": "TYPE-Natural"
589
+ },
590
+ "containerKind": "scalar"
591
+ }
592
+ },
593
+ "outputRoleValueByName": {
594
+ "LessThanDecision": {
595
+ "typeRef": {
596
+ "resourceTypeHandle": "TYPE-Boolean"
597
+ },
598
+ "containerKind": "scalar"
599
+ }
600
+ }
601
+ }
602
+ }
603
+ },
604
+ {
605
+ "id": "RESOURCE-TOOL:NaturalAdd",
606
+ "resourceTypeHandle": "TYPE-Tool",
607
+ "provenance": {
608
+ "resourceProvenanceKind": "genesis"
609
+ },
610
+ "timestamp": "2025-11-30T00:00:00.000Z",
611
+ "projection": {
612
+ "handle": "TOOL-NaturalAdd",
613
+ "name": "NaturalAdd",
614
+ "symbol": "+",
615
+ "description": "dummy-description",
616
+ "isTemplate": false,
617
+ "templateToolHandle": "TOOL-Add",
618
+ "roleSpec": {
619
+ "inputRoleValueByName": {
620
+ "AddendOne": {
621
+ "typeRef": {
622
+ "resourceTypeHandle": "TYPE-Natural"
623
+ },
624
+ "containerKind": "scalar"
625
+ },
626
+ "AddendTwo": {
627
+ "typeRef": {
628
+ "resourceTypeHandle": "TYPE-Natural"
629
+ },
630
+ "containerKind": "scalar"
631
+ }
632
+ },
633
+ "outputRoleValueByName": {
634
+ "Sum": {
635
+ "typeRef": {
636
+ "resourceTypeHandle": "TYPE-Natural"
637
+ },
638
+ "containerKind": "scalar"
639
+ }
640
+ }
641
+ }
642
+ }
643
+ },
644
+ {
645
+ "id": "RESOURCE-TOOL:NaturalSubtract",
646
+ "resourceTypeHandle": "TYPE-Tool",
647
+ "provenance": {
648
+ "resourceProvenanceKind": "genesis"
649
+ },
650
+ "timestamp": "2025-11-30T00:00:00.000Z",
651
+ "projection": {
652
+ "handle": "TOOL-NaturalSubtract",
653
+ "name": "NaturalSubtract",
654
+ "symbol": "-",
655
+ "description": "dummy-description",
656
+ "isTemplate": false,
657
+ "templateToolHandle": "TOOL-Subtract",
658
+ "roleSpec": {
659
+ "inputRoleValueByName": {
660
+ "Minuend": {
661
+ "typeRef": {
662
+ "resourceTypeHandle": "TYPE-Natural"
663
+ },
664
+ "containerKind": "scalar"
665
+ },
666
+ "Subtrahend": {
667
+ "typeRef": {
668
+ "resourceTypeHandle": "TYPE-Natural"
669
+ },
670
+ "containerKind": "scalar"
671
+ }
672
+ },
673
+ "outputRoleValueByName": {
674
+ "Difference": {
675
+ "typeRef": {
676
+ "resourceTypeHandle": "TYPE-Natural"
677
+ },
678
+ "containerKind": "scalar"
679
+ }
680
+ },
681
+ "refinementSchema": {
682
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
683
+ "type": "object",
684
+ "required": [
685
+ "Minuend",
686
+ "Subtrahend"
687
+ ],
688
+ "properties": {
689
+ "Subtrahend": {
690
+ "exclusiveMaximum": {
691
+ "$data": "1/Minuend"
692
+ }
693
+ }
694
+ }
695
+ }
696
+ }
697
+ }
698
+ },
699
+ {
700
+ "id": "RESOURCE-TOOL:NaturalMultiply",
701
+ "resourceTypeHandle": "TYPE-Tool",
702
+ "provenance": {
703
+ "resourceProvenanceKind": "genesis"
704
+ },
705
+ "timestamp": "2025-11-30T00:00:00.000Z",
706
+ "projection": {
707
+ "handle": "TOOL-NaturalMultiply",
708
+ "name": "NaturalMultiply",
709
+ "symbol": "X",
710
+ "description": "dummy-description",
711
+ "isTemplate": false,
712
+ "templateToolHandle": "TOOL-Multiply",
713
+ "roleSpec": {
714
+ "inputRoleValueByName": {
715
+ "Multiplicand": {
716
+ "typeRef": {
717
+ "resourceTypeHandle": "TYPE-Natural"
718
+ },
719
+ "containerKind": "scalar"
720
+ },
721
+ "Multiplier": {
722
+ "typeRef": {
723
+ "resourceTypeHandle": "TYPE-Natural"
724
+ },
725
+ "containerKind": "scalar"
726
+ }
727
+ },
728
+ "outputRoleValueByName": {
729
+ "Product": {
730
+ "typeRef": {
731
+ "resourceTypeHandle": "TYPE-Natural"
732
+ },
733
+ "containerKind": "scalar"
734
+ }
735
+ }
736
+ }
737
+ }
738
+ },
739
+ {
740
+ "id": "RESOURCE-TOOL:NaturalDivide",
741
+ "resourceTypeHandle": "TYPE-Tool",
742
+ "provenance": {
743
+ "resourceProvenanceKind": "genesis"
744
+ },
745
+ "timestamp": "2025-11-30T00:00:00.000Z",
746
+ "projection": {
747
+ "handle": "TOOL-NaturalDivide",
748
+ "name": "NaturalDivide",
749
+ "symbol": "÷",
750
+ "description": "dummy-description",
751
+ "isTemplate": false,
752
+ "templateToolHandle": "TOOL-Divide",
753
+ "roleSpec": {
754
+ "inputRoleValueByName": {
755
+ "Dividend": {
756
+ "typeRef": {
757
+ "resourceTypeHandle": "TYPE-Natural"
758
+ },
759
+ "containerKind": "scalar"
760
+ },
761
+ "Divisor": {
762
+ "typeRef": {
763
+ "resourceTypeHandle": "TYPE-Natural"
764
+ },
765
+ "containerKind": "scalar",
766
+ "refinementSchema": {
767
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
768
+ "not": {
769
+ "const": 0
770
+ }
771
+ }
772
+ }
773
+ },
774
+ "outputRoleValueByName": {
775
+ "Quotient": {
776
+ "typeRef": {
777
+ "resourceTypeHandle": "TYPE-Natural"
778
+ },
779
+ "containerKind": "scalar"
780
+ },
781
+ "Remainder": {
782
+ "typeRef": {
783
+ "resourceTypeHandle": "TYPE-Natural"
784
+ },
785
+ "containerKind": "scalar"
786
+ }
787
+ }
788
+ }
789
+ }
790
+ },
791
+ {
792
+ "id": "RESOURCE-TOOL:NaturalDouble",
793
+ "resourceTypeHandle": "TYPE-Tool",
794
+ "provenance": {
795
+ "resourceProvenanceKind": "genesis"
796
+ },
797
+ "timestamp": "2025-11-30T00:00:00.000Z",
798
+ "projection": {
799
+ "handle": "TOOL-NaturalDouble",
800
+ "name": "NaturalDouble",
801
+ "symbol": "X2",
802
+ "description": "dummy-description",
803
+ "isTemplate": false,
804
+ "templateToolHandle": "TOOL-Double",
805
+ "roleSpec": {
806
+ "inputRoleValueByName": {
807
+ "N": {
808
+ "typeRef": {
809
+ "resourceTypeHandle": "TYPE-Natural"
810
+ },
811
+ "containerKind": "scalar"
812
+ }
813
+ },
814
+ "outputRoleValueByName": {
815
+ "Doubled": {
816
+ "typeRef": {
817
+ "resourceTypeHandle": "TYPE-Natural"
818
+ },
819
+ "containerKind": "scalar"
820
+ }
821
+ }
822
+ }
823
+ }
824
+ }
840
825
  ]