@ottochain/sdk 1.4.2 → 1.6.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 (80) hide show
  1. package/dist/cjs/apps/contracts/index.js +6 -10
  2. package/dist/cjs/apps/{governance/state-machines/governance-legislature.json → contracts/state-machines/index.js} +381 -330
  3. package/dist/cjs/apps/corporate/index.js +12 -24
  4. package/dist/cjs/apps/corporate/state-machines/index.js +10246 -0
  5. package/dist/cjs/apps/governance/index.js +11 -22
  6. package/dist/cjs/apps/governance/state-machines/index.js +4755 -0
  7. package/dist/cjs/apps/identity/index.js +3 -6
  8. package/dist/{esm/apps/identity/state-machines/agent-identity.json → cjs/apps/identity/state-machines/index.js} +9 -2
  9. package/dist/cjs/apps/markets/index.js +2 -5
  10. package/dist/{esm/apps/markets/state-machines/market-universal.json → cjs/apps/markets/state-machines/index.js} +9 -2
  11. package/dist/cjs/apps/oracles/index.js +2 -5
  12. package/dist/{esm/apps/oracles/state-machines/oracle.json → cjs/apps/oracles/state-machines/index.js} +9 -2
  13. package/dist/cjs/ottochain/index.js +4 -1
  14. package/dist/cjs/ottochain/normalize.js +40 -15
  15. package/dist/cjs/ottochain/types.js +12 -0
  16. package/dist/esm/apps/contracts/index.js +2 -3
  17. package/dist/esm/apps/{governance/state-machines/governance-legislature.json → contracts/state-machines/index.js} +378 -330
  18. package/dist/esm/apps/corporate/index.js +2 -11
  19. package/dist/esm/apps/corporate/state-machines/index.js +10243 -0
  20. package/dist/esm/apps/governance/index.js +2 -10
  21. package/dist/esm/apps/governance/state-machines/index.js +4752 -0
  22. package/dist/esm/apps/identity/index.js +2 -2
  23. package/dist/{cjs/apps/identity/state-machines/agent-identity.json → esm/apps/identity/state-machines/index.js} +6 -2
  24. package/dist/esm/apps/markets/index.js +1 -1
  25. package/dist/{cjs/apps/markets/state-machines/market-universal.json → esm/apps/markets/state-machines/index.js} +6 -2
  26. package/dist/esm/apps/oracles/index.js +1 -1
  27. package/dist/{cjs/apps/oracles/state-machines/oracle.json → esm/apps/oracles/state-machines/index.js} +6 -2
  28. package/dist/esm/ottochain/index.js +2 -0
  29. package/dist/esm/ottochain/normalize.js +40 -15
  30. package/dist/esm/ottochain/types.js +11 -1
  31. package/dist/types/apps/contracts/state-machines/index.d.ts +549 -0
  32. package/dist/types/apps/corporate/state-machines/index.d.ts +9121 -0
  33. package/dist/types/apps/governance/state-machines/index.d.ts +3551 -0
  34. package/dist/types/apps/identity/state-machines/index.d.ts +206 -0
  35. package/dist/types/apps/markets/state-machines/index.d.ts +448 -0
  36. package/dist/types/apps/oracles/state-machines/index.d.ts +312 -0
  37. package/dist/types/ottochain/index.d.ts +2 -1
  38. package/dist/types/ottochain/normalize.d.ts +21 -8
  39. package/dist/types/ottochain/types.d.ts +12 -1
  40. package/package.json +10 -9
  41. package/dist/cjs/apps/contracts/state-machines/contract.json +0 -352
  42. package/dist/cjs/apps/contracts/state-machines/escrow.json +0 -354
  43. package/dist/cjs/apps/corporate/state-machines/corporate-board.json +0 -1064
  44. package/dist/cjs/apps/corporate/state-machines/corporate-bylaws.json +0 -751
  45. package/dist/cjs/apps/corporate/state-machines/corporate-committee.json +0 -957
  46. package/dist/cjs/apps/corporate/state-machines/corporate-compliance.json +0 -1293
  47. package/dist/cjs/apps/corporate/state-machines/corporate-entity.json +0 -861
  48. package/dist/cjs/apps/corporate/state-machines/corporate-officers.json +0 -843
  49. package/dist/cjs/apps/corporate/state-machines/corporate-proxy.json +0 -783
  50. package/dist/cjs/apps/corporate/state-machines/corporate-resolution.json +0 -1174
  51. package/dist/cjs/apps/corporate/state-machines/corporate-securities.json +0 -1215
  52. package/dist/cjs/apps/corporate/state-machines/corporate-shareholders.json +0 -1298
  53. package/dist/cjs/apps/governance/state-machines/dao-multisig.json +0 -667
  54. package/dist/cjs/apps/governance/state-machines/dao-single.json +0 -230
  55. package/dist/cjs/apps/governance/state-machines/dao-threshold.json +0 -624
  56. package/dist/cjs/apps/governance/state-machines/dao-token.json +0 -638
  57. package/dist/cjs/apps/governance/state-machines/governance-constitution.json +0 -357
  58. package/dist/cjs/apps/governance/state-machines/governance-executive.json +0 -387
  59. package/dist/cjs/apps/governance/state-machines/governance-judiciary.json +0 -558
  60. package/dist/cjs/apps/governance/state-machines/governance-simple.json +0 -625
  61. package/dist/esm/apps/contracts/state-machines/contract.json +0 -352
  62. package/dist/esm/apps/contracts/state-machines/escrow.json +0 -354
  63. package/dist/esm/apps/corporate/state-machines/corporate-board.json +0 -1064
  64. package/dist/esm/apps/corporate/state-machines/corporate-bylaws.json +0 -751
  65. package/dist/esm/apps/corporate/state-machines/corporate-committee.json +0 -957
  66. package/dist/esm/apps/corporate/state-machines/corporate-compliance.json +0 -1293
  67. package/dist/esm/apps/corporate/state-machines/corporate-entity.json +0 -861
  68. package/dist/esm/apps/corporate/state-machines/corporate-officers.json +0 -843
  69. package/dist/esm/apps/corporate/state-machines/corporate-proxy.json +0 -783
  70. package/dist/esm/apps/corporate/state-machines/corporate-resolution.json +0 -1174
  71. package/dist/esm/apps/corporate/state-machines/corporate-securities.json +0 -1215
  72. package/dist/esm/apps/corporate/state-machines/corporate-shareholders.json +0 -1298
  73. package/dist/esm/apps/governance/state-machines/dao-multisig.json +0 -667
  74. package/dist/esm/apps/governance/state-machines/dao-single.json +0 -230
  75. package/dist/esm/apps/governance/state-machines/dao-threshold.json +0 -624
  76. package/dist/esm/apps/governance/state-machines/dao-token.json +0 -638
  77. package/dist/esm/apps/governance/state-machines/governance-constitution.json +0 -357
  78. package/dist/esm/apps/governance/state-machines/governance-executive.json +0 -387
  79. package/dist/esm/apps/governance/state-machines/governance-judiciary.json +0 -558
  80. package/dist/esm/apps/governance/state-machines/governance-simple.json +0 -625
@@ -0,0 +1,4755 @@
1
+ "use strict";
2
+ /**
3
+ * Auto-generated from JSON state machine definitions.
4
+ * DO NOT EDIT - regenerate with: npm run prebuild
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.govSimpleDef = exports.govLegislatureDef = exports.govJudiciaryDef = exports.govExecutiveDef = exports.govConstitutionDef = exports.daoTokenDef = exports.daoThresholdDef = exports.daoSingleDef = exports.daoMultisigDef = void 0;
8
+ exports.daoMultisigDef = {
9
+ "metadata": {
10
+ "name": "MultisigDAO",
11
+ "description": "N-of-M multisig governance. Requires threshold signatures for actions.",
12
+ "version": "1.0.0",
13
+ "category": "governance/dao"
14
+ },
15
+ "states": {
16
+ "ACTIVE": {
17
+ "id": "ACTIVE",
18
+ "isFinal": false,
19
+ "metadata": null
20
+ },
21
+ "PENDING": {
22
+ "id": "PENDING",
23
+ "isFinal": false,
24
+ "metadata": null
25
+ },
26
+ "DISSOLVED": {
27
+ "id": "DISSOLVED",
28
+ "isFinal": true,
29
+ "metadata": null
30
+ }
31
+ },
32
+ "initialState": "ACTIVE",
33
+ "transitions": [
34
+ {
35
+ "from": "ACTIVE",
36
+ "to": "PENDING",
37
+ "eventName": "propose",
38
+ "guard": {
39
+ "in": [
40
+ {
41
+ "var": "event.agent"
42
+ },
43
+ {
44
+ "var": "state.signers"
45
+ }
46
+ ]
47
+ },
48
+ "effect": {
49
+ "merge": [
50
+ {
51
+ "var": "state"
52
+ },
53
+ {
54
+ "proposal": {
55
+ "id": {
56
+ "var": "event.proposalId"
57
+ },
58
+ "actionType": {
59
+ "var": "event.actionType"
60
+ },
61
+ "payload": {
62
+ "var": "event.payload"
63
+ },
64
+ "proposer": {
65
+ "var": "event.agent"
66
+ },
67
+ "proposedAt": {
68
+ "var": "$timestamp"
69
+ },
70
+ "expiresAt": {
71
+ "+": [
72
+ {
73
+ "var": "$timestamp"
74
+ },
75
+ {
76
+ "var": "state.proposalTTLMs"
77
+ }
78
+ ]
79
+ }
80
+ },
81
+ "signatures": {
82
+ "setKey": [
83
+ {},
84
+ {
85
+ "var": "event.agent"
86
+ },
87
+ {
88
+ "var": "$timestamp"
89
+ }
90
+ ]
91
+ }
92
+ }
93
+ ]
94
+ },
95
+ "dependencies": []
96
+ },
97
+ {
98
+ "from": "PENDING",
99
+ "to": "PENDING",
100
+ "eventName": "sign",
101
+ "guard": {
102
+ "and": [
103
+ {
104
+ "in": [
105
+ {
106
+ "var": "event.agent"
107
+ },
108
+ {
109
+ "var": "state.signers"
110
+ }
111
+ ]
112
+ },
113
+ {
114
+ "!": [
115
+ {
116
+ "getKey": [
117
+ {
118
+ "var": "state.signatures"
119
+ },
120
+ {
121
+ "var": "event.agent"
122
+ }
123
+ ]
124
+ }
125
+ ]
126
+ },
127
+ {
128
+ "<": [
129
+ {
130
+ "size": {
131
+ "var": "state.signatures"
132
+ }
133
+ },
134
+ {
135
+ "var": "state.threshold"
136
+ }
137
+ ]
138
+ }
139
+ ]
140
+ },
141
+ "effect": {
142
+ "merge": [
143
+ {
144
+ "var": "state"
145
+ },
146
+ {
147
+ "signatures": {
148
+ "setKey": [
149
+ {
150
+ "var": "state.signatures"
151
+ },
152
+ {
153
+ "var": "event.agent"
154
+ },
155
+ {
156
+ "var": "$timestamp"
157
+ }
158
+ ]
159
+ }
160
+ }
161
+ ]
162
+ },
163
+ "dependencies": []
164
+ },
165
+ {
166
+ "from": "PENDING",
167
+ "to": "ACTIVE",
168
+ "eventName": "execute",
169
+ "guard": {
170
+ ">=": [
171
+ {
172
+ "size": {
173
+ "var": "state.signatures"
174
+ }
175
+ },
176
+ {
177
+ "var": "state.threshold"
178
+ }
179
+ ]
180
+ },
181
+ "effect": {
182
+ "merge": [
183
+ {
184
+ "var": "state"
185
+ },
186
+ {
187
+ "actions": {
188
+ "cat": [
189
+ {
190
+ "var": "state.actions"
191
+ },
192
+ [
193
+ {
194
+ "id": {
195
+ "var": "state.proposal.id"
196
+ },
197
+ "type": {
198
+ "var": "state.proposal.actionType"
199
+ },
200
+ "payload": {
201
+ "var": "state.proposal.payload"
202
+ },
203
+ "signatures": {
204
+ "var": "state.signatures"
205
+ },
206
+ "executedAt": {
207
+ "var": "$timestamp"
208
+ }
209
+ }
210
+ ]
211
+ ]
212
+ },
213
+ "proposal": null,
214
+ "signatures": {}
215
+ }
216
+ ]
217
+ },
218
+ "emits": [
219
+ {
220
+ "event": "multisig_executed",
221
+ "to": "external"
222
+ }
223
+ ],
224
+ "dependencies": []
225
+ },
226
+ {
227
+ "from": "PENDING",
228
+ "to": "ACTIVE",
229
+ "eventName": "cancel",
230
+ "guard": {
231
+ "or": [
232
+ {
233
+ ">": [
234
+ {
235
+ "var": "$timestamp"
236
+ },
237
+ {
238
+ "var": "state.proposal.expiresAt"
239
+ }
240
+ ]
241
+ },
242
+ {
243
+ "===": [
244
+ {
245
+ "var": "event.agent"
246
+ },
247
+ {
248
+ "var": "state.proposal.proposer"
249
+ }
250
+ ]
251
+ }
252
+ ]
253
+ },
254
+ "effect": {
255
+ "merge": [
256
+ {
257
+ "var": "state"
258
+ },
259
+ {
260
+ "cancelledProposals": {
261
+ "cat": [
262
+ {
263
+ "var": "state.cancelledProposals"
264
+ },
265
+ [
266
+ {
267
+ "merge": [
268
+ {
269
+ "var": "state.proposal"
270
+ },
271
+ {
272
+ "cancelledAt": {
273
+ "var": "$timestamp"
274
+ }
275
+ }
276
+ ]
277
+ }
278
+ ]
279
+ ]
280
+ },
281
+ "proposal": null,
282
+ "signatures": {}
283
+ }
284
+ ]
285
+ },
286
+ "dependencies": []
287
+ },
288
+ {
289
+ "from": "ACTIVE",
290
+ "to": "PENDING",
291
+ "eventName": "propose_add_signer",
292
+ "guard": {
293
+ "in": [
294
+ {
295
+ "var": "event.agent"
296
+ },
297
+ {
298
+ "var": "state.signers"
299
+ }
300
+ ]
301
+ },
302
+ "effect": {
303
+ "merge": [
304
+ {
305
+ "var": "state"
306
+ },
307
+ {
308
+ "proposal": {
309
+ "id": {
310
+ "var": "event.proposalId"
311
+ },
312
+ "actionType": "add_signer",
313
+ "payload": {
314
+ "newSigner": {
315
+ "var": "event.newSigner"
316
+ }
317
+ },
318
+ "proposer": {
319
+ "var": "event.agent"
320
+ },
321
+ "proposedAt": {
322
+ "var": "$timestamp"
323
+ },
324
+ "expiresAt": {
325
+ "+": [
326
+ {
327
+ "var": "$timestamp"
328
+ },
329
+ {
330
+ "var": "state.proposalTTLMs"
331
+ }
332
+ ]
333
+ }
334
+ },
335
+ "signatures": {
336
+ "setKey": [
337
+ {},
338
+ {
339
+ "var": "event.agent"
340
+ },
341
+ {
342
+ "var": "$timestamp"
343
+ }
344
+ ]
345
+ }
346
+ }
347
+ ]
348
+ },
349
+ "dependencies": []
350
+ },
351
+ {
352
+ "from": "ACTIVE",
353
+ "to": "PENDING",
354
+ "eventName": "propose_remove_signer",
355
+ "guard": {
356
+ "and": [
357
+ {
358
+ "in": [
359
+ {
360
+ "var": "event.agent"
361
+ },
362
+ {
363
+ "var": "state.signers"
364
+ }
365
+ ]
366
+ },
367
+ {
368
+ ">": [
369
+ {
370
+ "size": {
371
+ "var": "state.signers"
372
+ }
373
+ },
374
+ {
375
+ "var": "state.threshold"
376
+ }
377
+ ]
378
+ }
379
+ ]
380
+ },
381
+ "effect": {
382
+ "merge": [
383
+ {
384
+ "var": "state"
385
+ },
386
+ {
387
+ "proposal": {
388
+ "id": {
389
+ "var": "event.proposalId"
390
+ },
391
+ "actionType": "remove_signer",
392
+ "payload": {
393
+ "removeSigner": {
394
+ "var": "event.removeSigner"
395
+ }
396
+ },
397
+ "proposer": {
398
+ "var": "event.agent"
399
+ },
400
+ "proposedAt": {
401
+ "var": "$timestamp"
402
+ },
403
+ "expiresAt": {
404
+ "+": [
405
+ {
406
+ "var": "$timestamp"
407
+ },
408
+ {
409
+ "var": "state.proposalTTLMs"
410
+ }
411
+ ]
412
+ }
413
+ },
414
+ "signatures": {
415
+ "setKey": [
416
+ {},
417
+ {
418
+ "var": "event.agent"
419
+ },
420
+ {
421
+ "var": "$timestamp"
422
+ }
423
+ ]
424
+ }
425
+ }
426
+ ]
427
+ },
428
+ "dependencies": []
429
+ },
430
+ {
431
+ "from": "ACTIVE",
432
+ "to": "PENDING",
433
+ "eventName": "propose_change_threshold",
434
+ "guard": {
435
+ "and": [
436
+ {
437
+ "in": [
438
+ {
439
+ "var": "event.agent"
440
+ },
441
+ {
442
+ "var": "state.signers"
443
+ }
444
+ ]
445
+ },
446
+ {
447
+ ">=": [
448
+ {
449
+ "var": "event.newThreshold"
450
+ },
451
+ 1
452
+ ]
453
+ },
454
+ {
455
+ "<=": [
456
+ {
457
+ "var": "event.newThreshold"
458
+ },
459
+ {
460
+ "size": {
461
+ "var": "state.signers"
462
+ }
463
+ }
464
+ ]
465
+ }
466
+ ]
467
+ },
468
+ "effect": {
469
+ "merge": [
470
+ {
471
+ "var": "state"
472
+ },
473
+ {
474
+ "proposal": {
475
+ "id": {
476
+ "var": "event.proposalId"
477
+ },
478
+ "actionType": "change_threshold",
479
+ "payload": {
480
+ "newThreshold": {
481
+ "var": "event.newThreshold"
482
+ }
483
+ },
484
+ "proposer": {
485
+ "var": "event.agent"
486
+ },
487
+ "proposedAt": {
488
+ "var": "$timestamp"
489
+ },
490
+ "expiresAt": {
491
+ "+": [
492
+ {
493
+ "var": "$timestamp"
494
+ },
495
+ {
496
+ "var": "state.proposalTTLMs"
497
+ }
498
+ ]
499
+ }
500
+ },
501
+ "signatures": {
502
+ "setKey": [
503
+ {},
504
+ {
505
+ "var": "event.agent"
506
+ },
507
+ {
508
+ "var": "$timestamp"
509
+ }
510
+ ]
511
+ }
512
+ }
513
+ ]
514
+ },
515
+ "dependencies": []
516
+ },
517
+ {
518
+ "from": "PENDING",
519
+ "to": "ACTIVE",
520
+ "eventName": "apply_signer_change",
521
+ "guard": {
522
+ "and": [
523
+ {
524
+ ">=": [
525
+ {
526
+ "size": {
527
+ "var": "state.signatures"
528
+ }
529
+ },
530
+ {
531
+ "var": "state.threshold"
532
+ }
533
+ ]
534
+ },
535
+ {
536
+ "in": [
537
+ {
538
+ "var": "state.proposal.actionType"
539
+ },
540
+ [
541
+ "add_signer",
542
+ "remove_signer",
543
+ "change_threshold"
544
+ ]
545
+ ]
546
+ }
547
+ ]
548
+ },
549
+ "effect": {
550
+ "if": [
551
+ {
552
+ "===": [
553
+ {
554
+ "var": "state.proposal.actionType"
555
+ },
556
+ "add_signer"
557
+ ]
558
+ },
559
+ {
560
+ "merge": [
561
+ {
562
+ "var": "state"
563
+ },
564
+ {
565
+ "signers": {
566
+ "cat": [
567
+ {
568
+ "var": "state.signers"
569
+ },
570
+ [
571
+ {
572
+ "var": "state.proposal.payload.newSigner"
573
+ }
574
+ ]
575
+ ]
576
+ },
577
+ "proposal": null,
578
+ "signatures": {}
579
+ }
580
+ ]
581
+ },
582
+ {
583
+ "===": [
584
+ {
585
+ "var": "state.proposal.actionType"
586
+ },
587
+ "remove_signer"
588
+ ]
589
+ },
590
+ {
591
+ "merge": [
592
+ {
593
+ "var": "state"
594
+ },
595
+ {
596
+ "signers": {
597
+ "filter": [
598
+ {
599
+ "var": "state.signers"
600
+ },
601
+ {
602
+ "!==": [
603
+ {
604
+ "var": ""
605
+ },
606
+ {
607
+ "var": "state.proposal.payload.removeSigner"
608
+ }
609
+ ]
610
+ }
611
+ ]
612
+ },
613
+ "proposal": null,
614
+ "signatures": {}
615
+ }
616
+ ]
617
+ },
618
+ {
619
+ "merge": [
620
+ {
621
+ "var": "state"
622
+ },
623
+ {
624
+ "threshold": {
625
+ "var": "state.proposal.payload.newThreshold"
626
+ },
627
+ "proposal": null,
628
+ "signatures": {}
629
+ }
630
+ ]
631
+ }
632
+ ]
633
+ },
634
+ "dependencies": []
635
+ },
636
+ {
637
+ "from": "ACTIVE",
638
+ "to": "DISSOLVED",
639
+ "eventName": "dissolve",
640
+ "guard": {
641
+ "===": [
642
+ {
643
+ "var": "event.signatureCount"
644
+ },
645
+ {
646
+ "size": {
647
+ "var": "state.signers"
648
+ }
649
+ }
650
+ ]
651
+ },
652
+ "effect": {
653
+ "merge": [
654
+ {
655
+ "var": "state"
656
+ },
657
+ {
658
+ "dissolvedAt": {
659
+ "var": "$timestamp"
660
+ },
661
+ "status": "DISSOLVED"
662
+ }
663
+ ]
664
+ },
665
+ "dependencies": []
666
+ }
667
+ ],
668
+ "crossReferences": {
669
+ "Identity": "signer verification",
670
+ "Contract": "action execution targets",
671
+ "Treasury": "fund management",
672
+ "Escrow": "controlled release"
673
+ }
674
+ };
675
+ exports.daoSingleDef = {
676
+ "metadata": {
677
+ "name": "SingleOwnerDAO",
678
+ "description": "Single owner controls all actions. Simplest governance model.",
679
+ "version": "1.0.0",
680
+ "category": "governance/dao"
681
+ },
682
+ "states": {
683
+ "ACTIVE": {
684
+ "id": "ACTIVE",
685
+ "isFinal": false,
686
+ "metadata": null
687
+ },
688
+ "TRANSFERRING": {
689
+ "id": "TRANSFERRING",
690
+ "isFinal": false,
691
+ "metadata": null
692
+ },
693
+ "DISSOLVED": {
694
+ "id": "DISSOLVED",
695
+ "isFinal": true,
696
+ "metadata": null
697
+ }
698
+ },
699
+ "initialState": "ACTIVE",
700
+ "transitions": [
701
+ {
702
+ "from": "ACTIVE",
703
+ "to": "ACTIVE",
704
+ "eventName": "execute",
705
+ "guard": {
706
+ "===": [
707
+ {
708
+ "var": "event.agent"
709
+ },
710
+ {
711
+ "var": "state.owner"
712
+ }
713
+ ]
714
+ },
715
+ "effect": {
716
+ "merge": [
717
+ {
718
+ "var": "state"
719
+ },
720
+ {
721
+ "actions": {
722
+ "cat": [
723
+ {
724
+ "var": "state.actions"
725
+ },
726
+ [
727
+ {
728
+ "id": {
729
+ "var": "event.actionId"
730
+ },
731
+ "type": {
732
+ "var": "event.actionType"
733
+ },
734
+ "payload": {
735
+ "var": "event.payload"
736
+ },
737
+ "executedAt": {
738
+ "var": "$timestamp"
739
+ }
740
+ }
741
+ ]
742
+ ]
743
+ }
744
+ }
745
+ ]
746
+ },
747
+ "emits": [
748
+ {
749
+ "event": "action_executed",
750
+ "to": "external"
751
+ }
752
+ ],
753
+ "dependencies": []
754
+ },
755
+ {
756
+ "from": "ACTIVE",
757
+ "to": "TRANSFERRING",
758
+ "eventName": "transfer_ownership",
759
+ "guard": {
760
+ "===": [
761
+ {
762
+ "var": "event.agent"
763
+ },
764
+ {
765
+ "var": "state.owner"
766
+ }
767
+ ]
768
+ },
769
+ "effect": {
770
+ "merge": [
771
+ {
772
+ "var": "state"
773
+ },
774
+ {
775
+ "pendingOwner": {
776
+ "var": "event.newOwner"
777
+ },
778
+ "transferInitiatedAt": {
779
+ "var": "$timestamp"
780
+ }
781
+ }
782
+ ]
783
+ },
784
+ "dependencies": []
785
+ },
786
+ {
787
+ "from": "TRANSFERRING",
788
+ "to": "ACTIVE",
789
+ "eventName": "accept_ownership",
790
+ "guard": {
791
+ "===": [
792
+ {
793
+ "var": "event.agent"
794
+ },
795
+ {
796
+ "var": "state.pendingOwner"
797
+ }
798
+ ]
799
+ },
800
+ "effect": {
801
+ "merge": [
802
+ {
803
+ "var": "state"
804
+ },
805
+ {
806
+ "owner": {
807
+ "var": "state.pendingOwner"
808
+ },
809
+ "pendingOwner": null,
810
+ "transferInitiatedAt": null,
811
+ "ownershipHistory": {
812
+ "cat": [
813
+ {
814
+ "var": "state.ownershipHistory"
815
+ },
816
+ [
817
+ {
818
+ "from": {
819
+ "var": "state.owner"
820
+ },
821
+ "to": {
822
+ "var": "state.pendingOwner"
823
+ },
824
+ "at": {
825
+ "var": "$timestamp"
826
+ }
827
+ }
828
+ ]
829
+ ]
830
+ }
831
+ }
832
+ ]
833
+ },
834
+ "emits": [
835
+ {
836
+ "event": "ownership_transferred",
837
+ "to": "Identity"
838
+ }
839
+ ],
840
+ "dependencies": []
841
+ },
842
+ {
843
+ "from": "TRANSFERRING",
844
+ "to": "ACTIVE",
845
+ "eventName": "cancel_transfer",
846
+ "guard": {
847
+ "===": [
848
+ {
849
+ "var": "event.agent"
850
+ },
851
+ {
852
+ "var": "state.owner"
853
+ }
854
+ ]
855
+ },
856
+ "effect": {
857
+ "merge": [
858
+ {
859
+ "var": "state"
860
+ },
861
+ {
862
+ "pendingOwner": null,
863
+ "transferInitiatedAt": null
864
+ }
865
+ ]
866
+ },
867
+ "dependencies": []
868
+ },
869
+ {
870
+ "from": "ACTIVE",
871
+ "to": "DISSOLVED",
872
+ "eventName": "dissolve",
873
+ "guard": {
874
+ "===": [
875
+ {
876
+ "var": "event.agent"
877
+ },
878
+ {
879
+ "var": "state.owner"
880
+ }
881
+ ]
882
+ },
883
+ "effect": {
884
+ "merge": [
885
+ {
886
+ "var": "state"
887
+ },
888
+ {
889
+ "dissolvedAt": {
890
+ "var": "$timestamp"
891
+ },
892
+ "status": "DISSOLVED"
893
+ }
894
+ ]
895
+ },
896
+ "dependencies": []
897
+ }
898
+ ],
899
+ "crossReferences": {
900
+ "Identity": "owner registration",
901
+ "Contract": "action execution targets",
902
+ "Treasury": "fund management"
903
+ }
904
+ };
905
+ exports.daoThresholdDef = {
906
+ "metadata": {
907
+ "name": "ThresholdDAO",
908
+ "description": "Reputation-threshold governance. Minimum reputation required for participation.",
909
+ "version": "1.0.0",
910
+ "category": "governance/dao"
911
+ },
912
+ "states": {
913
+ "ACTIVE": {
914
+ "id": "ACTIVE",
915
+ "isFinal": false,
916
+ "metadata": null
917
+ },
918
+ "VOTING": {
919
+ "id": "VOTING",
920
+ "isFinal": false,
921
+ "metadata": null
922
+ },
923
+ "DISSOLVED": {
924
+ "id": "DISSOLVED",
925
+ "isFinal": true,
926
+ "metadata": null
927
+ }
928
+ },
929
+ "initialState": "ACTIVE",
930
+ "transitions": [
931
+ {
932
+ "from": "ACTIVE",
933
+ "to": "VOTING",
934
+ "eventName": "propose",
935
+ "guard": {
936
+ ">=": [
937
+ {
938
+ "var": "event.agentReputation"
939
+ },
940
+ {
941
+ "var": "state.proposeThreshold"
942
+ }
943
+ ]
944
+ },
945
+ "effect": {
946
+ "merge": [
947
+ {
948
+ "var": "state"
949
+ },
950
+ {
951
+ "proposal": {
952
+ "id": {
953
+ "var": "event.proposalId"
954
+ },
955
+ "title": {
956
+ "var": "event.title"
957
+ },
958
+ "description": {
959
+ "var": "event.description"
960
+ },
961
+ "actionType": {
962
+ "var": "event.actionType"
963
+ },
964
+ "payload": {
965
+ "var": "event.payload"
966
+ },
967
+ "proposer": {
968
+ "var": "event.agent"
969
+ },
970
+ "proposedAt": {
971
+ "var": "$timestamp"
972
+ },
973
+ "deadline": {
974
+ "+": [
975
+ {
976
+ "var": "$timestamp"
977
+ },
978
+ {
979
+ "var": "state.votingPeriodMs"
980
+ }
981
+ ]
982
+ }
983
+ },
984
+ "votes": {
985
+ "for": [],
986
+ "against": [],
987
+ "abstain": []
988
+ }
989
+ }
990
+ ]
991
+ },
992
+ "dependencies": []
993
+ },
994
+ {
995
+ "from": "VOTING",
996
+ "to": "VOTING",
997
+ "eventName": "vote",
998
+ "guard": {
999
+ "and": [
1000
+ {
1001
+ ">=": [
1002
+ {
1003
+ "var": "event.agentReputation"
1004
+ },
1005
+ {
1006
+ "var": "state.voteThreshold"
1007
+ }
1008
+ ]
1009
+ },
1010
+ {
1011
+ "!": [
1012
+ {
1013
+ "in": [
1014
+ {
1015
+ "var": "event.agent"
1016
+ },
1017
+ {
1018
+ "var": "state.votes.for"
1019
+ }
1020
+ ]
1021
+ }
1022
+ ]
1023
+ },
1024
+ {
1025
+ "!": [
1026
+ {
1027
+ "in": [
1028
+ {
1029
+ "var": "event.agent"
1030
+ },
1031
+ {
1032
+ "var": "state.votes.against"
1033
+ }
1034
+ ]
1035
+ }
1036
+ ]
1037
+ },
1038
+ {
1039
+ "!": [
1040
+ {
1041
+ "in": [
1042
+ {
1043
+ "var": "event.agent"
1044
+ },
1045
+ {
1046
+ "var": "state.votes.abstain"
1047
+ }
1048
+ ]
1049
+ }
1050
+ ]
1051
+ },
1052
+ {
1053
+ "<=": [
1054
+ {
1055
+ "var": "$timestamp"
1056
+ },
1057
+ {
1058
+ "var": "state.proposal.deadline"
1059
+ }
1060
+ ]
1061
+ }
1062
+ ]
1063
+ },
1064
+ "effect": {
1065
+ "merge": [
1066
+ {
1067
+ "var": "state"
1068
+ },
1069
+ {
1070
+ "votes": {
1071
+ "if": [
1072
+ {
1073
+ "===": [
1074
+ {
1075
+ "var": "event.vote"
1076
+ },
1077
+ "for"
1078
+ ]
1079
+ },
1080
+ {
1081
+ "merge": [
1082
+ {
1083
+ "var": "state.votes"
1084
+ },
1085
+ {
1086
+ "for": {
1087
+ "cat": [
1088
+ {
1089
+ "var": "state.votes.for"
1090
+ },
1091
+ [
1092
+ {
1093
+ "var": "event.agent"
1094
+ }
1095
+ ]
1096
+ ]
1097
+ }
1098
+ }
1099
+ ]
1100
+ },
1101
+ {
1102
+ "===": [
1103
+ {
1104
+ "var": "event.vote"
1105
+ },
1106
+ "against"
1107
+ ]
1108
+ },
1109
+ {
1110
+ "merge": [
1111
+ {
1112
+ "var": "state.votes"
1113
+ },
1114
+ {
1115
+ "against": {
1116
+ "cat": [
1117
+ {
1118
+ "var": "state.votes.against"
1119
+ },
1120
+ [
1121
+ {
1122
+ "var": "event.agent"
1123
+ }
1124
+ ]
1125
+ ]
1126
+ }
1127
+ }
1128
+ ]
1129
+ },
1130
+ {
1131
+ "merge": [
1132
+ {
1133
+ "var": "state.votes"
1134
+ },
1135
+ {
1136
+ "abstain": {
1137
+ "cat": [
1138
+ {
1139
+ "var": "state.votes.abstain"
1140
+ },
1141
+ [
1142
+ {
1143
+ "var": "event.agent"
1144
+ }
1145
+ ]
1146
+ ]
1147
+ }
1148
+ }
1149
+ ]
1150
+ }
1151
+ ]
1152
+ }
1153
+ }
1154
+ ]
1155
+ },
1156
+ "dependencies": []
1157
+ },
1158
+ {
1159
+ "from": "VOTING",
1160
+ "to": "ACTIVE",
1161
+ "eventName": "execute",
1162
+ "guard": {
1163
+ "and": [
1164
+ {
1165
+ ">": [
1166
+ {
1167
+ "var": "$timestamp"
1168
+ },
1169
+ {
1170
+ "var": "state.proposal.deadline"
1171
+ }
1172
+ ]
1173
+ },
1174
+ {
1175
+ ">": [
1176
+ {
1177
+ "size": {
1178
+ "var": "state.votes.for"
1179
+ }
1180
+ },
1181
+ {
1182
+ "size": {
1183
+ "var": "state.votes.against"
1184
+ }
1185
+ }
1186
+ ]
1187
+ },
1188
+ {
1189
+ ">=": [
1190
+ {
1191
+ "+": [
1192
+ {
1193
+ "size": {
1194
+ "var": "state.votes.for"
1195
+ }
1196
+ },
1197
+ {
1198
+ "size": {
1199
+ "var": "state.votes.against"
1200
+ }
1201
+ }
1202
+ ]
1203
+ },
1204
+ {
1205
+ "var": "state.quorum"
1206
+ }
1207
+ ]
1208
+ }
1209
+ ]
1210
+ },
1211
+ "effect": {
1212
+ "merge": [
1213
+ {
1214
+ "var": "state"
1215
+ },
1216
+ {
1217
+ "history": {
1218
+ "cat": [
1219
+ {
1220
+ "var": "state.history"
1221
+ },
1222
+ [
1223
+ {
1224
+ "type": "executed",
1225
+ "proposal": {
1226
+ "var": "state.proposal"
1227
+ },
1228
+ "votes": {
1229
+ "var": "state.votes"
1230
+ },
1231
+ "at": {
1232
+ "var": "$timestamp"
1233
+ }
1234
+ }
1235
+ ]
1236
+ ]
1237
+ },
1238
+ "proposal": null,
1239
+ "votes": null
1240
+ }
1241
+ ]
1242
+ },
1243
+ "emits": [
1244
+ {
1245
+ "event": "proposal_executed",
1246
+ "to": "Reputation",
1247
+ "payload": {
1248
+ "action": "increase",
1249
+ "agents": {
1250
+ "var": "state.votes.for"
1251
+ }
1252
+ }
1253
+ }
1254
+ ],
1255
+ "dependencies": []
1256
+ },
1257
+ {
1258
+ "from": "VOTING",
1259
+ "to": "ACTIVE",
1260
+ "eventName": "reject",
1261
+ "guard": {
1262
+ "and": [
1263
+ {
1264
+ ">": [
1265
+ {
1266
+ "var": "$timestamp"
1267
+ },
1268
+ {
1269
+ "var": "state.proposal.deadline"
1270
+ }
1271
+ ]
1272
+ },
1273
+ {
1274
+ "or": [
1275
+ {
1276
+ "<=": [
1277
+ {
1278
+ "size": {
1279
+ "var": "state.votes.for"
1280
+ }
1281
+ },
1282
+ {
1283
+ "size": {
1284
+ "var": "state.votes.against"
1285
+ }
1286
+ }
1287
+ ]
1288
+ },
1289
+ {
1290
+ "<": [
1291
+ {
1292
+ "+": [
1293
+ {
1294
+ "size": {
1295
+ "var": "state.votes.for"
1296
+ }
1297
+ },
1298
+ {
1299
+ "size": {
1300
+ "var": "state.votes.against"
1301
+ }
1302
+ }
1303
+ ]
1304
+ },
1305
+ {
1306
+ "var": "state.quorum"
1307
+ }
1308
+ ]
1309
+ }
1310
+ ]
1311
+ }
1312
+ ]
1313
+ },
1314
+ "effect": {
1315
+ "merge": [
1316
+ {
1317
+ "var": "state"
1318
+ },
1319
+ {
1320
+ "history": {
1321
+ "cat": [
1322
+ {
1323
+ "var": "state.history"
1324
+ },
1325
+ [
1326
+ {
1327
+ "type": "rejected",
1328
+ "proposal": {
1329
+ "var": "state.proposal"
1330
+ },
1331
+ "votes": {
1332
+ "var": "state.votes"
1333
+ },
1334
+ "at": {
1335
+ "var": "$timestamp"
1336
+ }
1337
+ }
1338
+ ]
1339
+ ]
1340
+ },
1341
+ "proposal": null,
1342
+ "votes": null
1343
+ }
1344
+ ]
1345
+ },
1346
+ "dependencies": []
1347
+ },
1348
+ {
1349
+ "from": "ACTIVE",
1350
+ "to": "ACTIVE",
1351
+ "eventName": "join",
1352
+ "guard": {
1353
+ "and": [
1354
+ {
1355
+ ">=": [
1356
+ {
1357
+ "var": "event.agentReputation"
1358
+ },
1359
+ {
1360
+ "var": "state.memberThreshold"
1361
+ }
1362
+ ]
1363
+ },
1364
+ {
1365
+ "!": [
1366
+ {
1367
+ "in": [
1368
+ {
1369
+ "var": "event.agent"
1370
+ },
1371
+ {
1372
+ "var": "state.members"
1373
+ }
1374
+ ]
1375
+ }
1376
+ ]
1377
+ }
1378
+ ]
1379
+ },
1380
+ "effect": {
1381
+ "merge": [
1382
+ {
1383
+ "var": "state"
1384
+ },
1385
+ {
1386
+ "members": {
1387
+ "cat": [
1388
+ {
1389
+ "var": "state.members"
1390
+ },
1391
+ [
1392
+ {
1393
+ "var": "event.agent"
1394
+ }
1395
+ ]
1396
+ ]
1397
+ },
1398
+ "memberJoinedAt": {
1399
+ "setKey": [
1400
+ {
1401
+ "var": "state.memberJoinedAt"
1402
+ },
1403
+ {
1404
+ "var": "event.agent"
1405
+ },
1406
+ {
1407
+ "var": "$timestamp"
1408
+ }
1409
+ ]
1410
+ }
1411
+ }
1412
+ ]
1413
+ },
1414
+ "dependencies": []
1415
+ },
1416
+ {
1417
+ "from": "ACTIVE",
1418
+ "to": "ACTIVE",
1419
+ "eventName": "leave",
1420
+ "guard": {
1421
+ "in": [
1422
+ {
1423
+ "var": "event.agent"
1424
+ },
1425
+ {
1426
+ "var": "state.members"
1427
+ }
1428
+ ]
1429
+ },
1430
+ "effect": {
1431
+ "merge": [
1432
+ {
1433
+ "var": "state"
1434
+ },
1435
+ {
1436
+ "members": {
1437
+ "filter": [
1438
+ {
1439
+ "var": "state.members"
1440
+ },
1441
+ {
1442
+ "!==": [
1443
+ {
1444
+ "var": ""
1445
+ },
1446
+ {
1447
+ "var": "event.agent"
1448
+ }
1449
+ ]
1450
+ }
1451
+ ]
1452
+ }
1453
+ }
1454
+ ]
1455
+ },
1456
+ "dependencies": []
1457
+ },
1458
+ {
1459
+ "from": "ACTIVE",
1460
+ "to": "VOTING",
1461
+ "eventName": "propose_threshold_change",
1462
+ "guard": {
1463
+ ">=": [
1464
+ {
1465
+ "var": "event.agentReputation"
1466
+ },
1467
+ {
1468
+ "var": "state.proposeThreshold"
1469
+ }
1470
+ ]
1471
+ },
1472
+ "effect": {
1473
+ "merge": [
1474
+ {
1475
+ "var": "state"
1476
+ },
1477
+ {
1478
+ "proposal": {
1479
+ "id": {
1480
+ "var": "event.proposalId"
1481
+ },
1482
+ "title": "Threshold Change",
1483
+ "actionType": "threshold_change",
1484
+ "payload": {
1485
+ "memberThreshold": {
1486
+ "var": "event.memberThreshold"
1487
+ },
1488
+ "voteThreshold": {
1489
+ "var": "event.voteThreshold"
1490
+ },
1491
+ "proposeThreshold": {
1492
+ "var": "event.proposeThreshold"
1493
+ }
1494
+ },
1495
+ "proposer": {
1496
+ "var": "event.agent"
1497
+ },
1498
+ "proposedAt": {
1499
+ "var": "$timestamp"
1500
+ },
1501
+ "deadline": {
1502
+ "+": [
1503
+ {
1504
+ "var": "$timestamp"
1505
+ },
1506
+ {
1507
+ "var": "state.votingPeriodMs"
1508
+ }
1509
+ ]
1510
+ }
1511
+ },
1512
+ "votes": {
1513
+ "for": [],
1514
+ "against": [],
1515
+ "abstain": []
1516
+ }
1517
+ }
1518
+ ]
1519
+ },
1520
+ "dependencies": []
1521
+ }
1522
+ ],
1523
+ "crossReferences": {
1524
+ "Identity": "member verification",
1525
+ "Reputation": "threshold checks",
1526
+ "Contract": "action execution"
1527
+ }
1528
+ };
1529
+ exports.daoTokenDef = {
1530
+ "metadata": {
1531
+ "name": "TokenDAO",
1532
+ "description": "Token-weighted voting. Voting power proportional to token holdings.",
1533
+ "version": "1.0.0",
1534
+ "category": "governance/dao"
1535
+ },
1536
+ "states": {
1537
+ "ACTIVE": {
1538
+ "id": "ACTIVE",
1539
+ "isFinal": false,
1540
+ "metadata": null
1541
+ },
1542
+ "VOTING": {
1543
+ "id": "VOTING",
1544
+ "isFinal": false,
1545
+ "metadata": null
1546
+ },
1547
+ "QUEUED": {
1548
+ "id": "QUEUED",
1549
+ "isFinal": false,
1550
+ "metadata": null
1551
+ },
1552
+ "DISSOLVED": {
1553
+ "id": "DISSOLVED",
1554
+ "isFinal": true,
1555
+ "metadata": null
1556
+ }
1557
+ },
1558
+ "initialState": "ACTIVE",
1559
+ "transitions": [
1560
+ {
1561
+ "from": "ACTIVE",
1562
+ "to": "VOTING",
1563
+ "eventName": "propose",
1564
+ "guard": {
1565
+ ">=": [
1566
+ {
1567
+ "getKey": [
1568
+ {
1569
+ "var": "state.balances"
1570
+ },
1571
+ {
1572
+ "var": "event.agent"
1573
+ }
1574
+ ]
1575
+ },
1576
+ {
1577
+ "var": "state.proposalThreshold"
1578
+ }
1579
+ ]
1580
+ },
1581
+ "effect": {
1582
+ "merge": [
1583
+ {
1584
+ "var": "state"
1585
+ },
1586
+ {
1587
+ "proposal": {
1588
+ "id": {
1589
+ "var": "event.proposalId"
1590
+ },
1591
+ "title": {
1592
+ "var": "event.title"
1593
+ },
1594
+ "description": {
1595
+ "var": "event.description"
1596
+ },
1597
+ "actionType": {
1598
+ "var": "event.actionType"
1599
+ },
1600
+ "payload": {
1601
+ "var": "event.payload"
1602
+ },
1603
+ "proposer": {
1604
+ "var": "event.agent"
1605
+ },
1606
+ "proposedAt": {
1607
+ "var": "$timestamp"
1608
+ },
1609
+ "votingEndsAt": {
1610
+ "+": [
1611
+ {
1612
+ "var": "$timestamp"
1613
+ },
1614
+ {
1615
+ "var": "state.votingPeriodMs"
1616
+ }
1617
+ ]
1618
+ },
1619
+ "snapshotBlock": {
1620
+ "var": "event.snapshotBlock"
1621
+ }
1622
+ },
1623
+ "votes": {
1624
+ "for": 0,
1625
+ "against": 0,
1626
+ "abstain": 0,
1627
+ "voters": {}
1628
+ }
1629
+ }
1630
+ ]
1631
+ },
1632
+ "dependencies": []
1633
+ },
1634
+ {
1635
+ "from": "VOTING",
1636
+ "to": "VOTING",
1637
+ "eventName": "vote",
1638
+ "guard": {
1639
+ "and": [
1640
+ {
1641
+ ">": [
1642
+ {
1643
+ "getKey": [
1644
+ {
1645
+ "var": "state.balances"
1646
+ },
1647
+ {
1648
+ "var": "event.agent"
1649
+ }
1650
+ ]
1651
+ },
1652
+ 0
1653
+ ]
1654
+ },
1655
+ {
1656
+ "!": [
1657
+ {
1658
+ "getKey": [
1659
+ {
1660
+ "var": "state.votes.voters"
1661
+ },
1662
+ {
1663
+ "var": "event.agent"
1664
+ }
1665
+ ]
1666
+ }
1667
+ ]
1668
+ },
1669
+ {
1670
+ "<=": [
1671
+ {
1672
+ "var": "$timestamp"
1673
+ },
1674
+ {
1675
+ "var": "state.proposal.votingEndsAt"
1676
+ }
1677
+ ]
1678
+ }
1679
+ ]
1680
+ },
1681
+ "effect": {
1682
+ "merge": [
1683
+ {
1684
+ "var": "state"
1685
+ },
1686
+ {
1687
+ "votes": {
1688
+ "merge": [
1689
+ {
1690
+ "var": "state.votes"
1691
+ },
1692
+ {
1693
+ "if": [
1694
+ {
1695
+ "===": [
1696
+ {
1697
+ "var": "event.vote"
1698
+ },
1699
+ "for"
1700
+ ]
1701
+ },
1702
+ {
1703
+ "for": {
1704
+ "+": [
1705
+ {
1706
+ "var": "state.votes.for"
1707
+ },
1708
+ {
1709
+ "getKey": [
1710
+ {
1711
+ "var": "state.balances"
1712
+ },
1713
+ {
1714
+ "var": "event.agent"
1715
+ }
1716
+ ]
1717
+ }
1718
+ ]
1719
+ }
1720
+ },
1721
+ {
1722
+ "===": [
1723
+ {
1724
+ "var": "event.vote"
1725
+ },
1726
+ "against"
1727
+ ]
1728
+ },
1729
+ {
1730
+ "against": {
1731
+ "+": [
1732
+ {
1733
+ "var": "state.votes.against"
1734
+ },
1735
+ {
1736
+ "getKey": [
1737
+ {
1738
+ "var": "state.balances"
1739
+ },
1740
+ {
1741
+ "var": "event.agent"
1742
+ }
1743
+ ]
1744
+ }
1745
+ ]
1746
+ }
1747
+ },
1748
+ {
1749
+ "abstain": {
1750
+ "+": [
1751
+ {
1752
+ "var": "state.votes.abstain"
1753
+ },
1754
+ {
1755
+ "getKey": [
1756
+ {
1757
+ "var": "state.balances"
1758
+ },
1759
+ {
1760
+ "var": "event.agent"
1761
+ }
1762
+ ]
1763
+ }
1764
+ ]
1765
+ }
1766
+ }
1767
+ ]
1768
+ },
1769
+ {
1770
+ "voters": {
1771
+ "setKey": [
1772
+ {
1773
+ "var": "state.votes.voters"
1774
+ },
1775
+ {
1776
+ "var": "event.agent"
1777
+ },
1778
+ {
1779
+ "vote": {
1780
+ "var": "event.vote"
1781
+ },
1782
+ "weight": {
1783
+ "getKey": [
1784
+ {
1785
+ "var": "state.balances"
1786
+ },
1787
+ {
1788
+ "var": "event.agent"
1789
+ }
1790
+ ]
1791
+ },
1792
+ "votedAt": {
1793
+ "var": "$timestamp"
1794
+ }
1795
+ }
1796
+ ]
1797
+ }
1798
+ }
1799
+ ]
1800
+ }
1801
+ }
1802
+ ]
1803
+ },
1804
+ "dependencies": []
1805
+ },
1806
+ {
1807
+ "from": "VOTING",
1808
+ "to": "QUEUED",
1809
+ "eventName": "queue",
1810
+ "guard": {
1811
+ "and": [
1812
+ {
1813
+ ">": [
1814
+ {
1815
+ "var": "$timestamp"
1816
+ },
1817
+ {
1818
+ "var": "state.proposal.votingEndsAt"
1819
+ }
1820
+ ]
1821
+ },
1822
+ {
1823
+ ">": [
1824
+ {
1825
+ "var": "state.votes.for"
1826
+ },
1827
+ {
1828
+ "var": "state.votes.against"
1829
+ }
1830
+ ]
1831
+ },
1832
+ {
1833
+ ">=": [
1834
+ {
1835
+ "+": [
1836
+ {
1837
+ "var": "state.votes.for"
1838
+ },
1839
+ {
1840
+ "var": "state.votes.against"
1841
+ },
1842
+ {
1843
+ "var": "state.votes.abstain"
1844
+ }
1845
+ ]
1846
+ },
1847
+ {
1848
+ "var": "state.quorum"
1849
+ }
1850
+ ]
1851
+ }
1852
+ ]
1853
+ },
1854
+ "effect": {
1855
+ "merge": [
1856
+ {
1857
+ "var": "state"
1858
+ },
1859
+ {
1860
+ "proposal": {
1861
+ "merge": [
1862
+ {
1863
+ "var": "state.proposal"
1864
+ },
1865
+ {
1866
+ "queuedAt": {
1867
+ "var": "$timestamp"
1868
+ },
1869
+ "executableAt": {
1870
+ "+": [
1871
+ {
1872
+ "var": "$timestamp"
1873
+ },
1874
+ {
1875
+ "var": "state.timelockMs"
1876
+ }
1877
+ ]
1878
+ }
1879
+ }
1880
+ ]
1881
+ }
1882
+ }
1883
+ ]
1884
+ },
1885
+ "dependencies": []
1886
+ },
1887
+ {
1888
+ "from": "QUEUED",
1889
+ "to": "ACTIVE",
1890
+ "eventName": "execute",
1891
+ "guard": {
1892
+ ">=": [
1893
+ {
1894
+ "var": "$timestamp"
1895
+ },
1896
+ {
1897
+ "var": "state.proposal.executableAt"
1898
+ }
1899
+ ]
1900
+ },
1901
+ "effect": {
1902
+ "merge": [
1903
+ {
1904
+ "var": "state"
1905
+ },
1906
+ {
1907
+ "executedProposals": {
1908
+ "cat": [
1909
+ {
1910
+ "var": "state.executedProposals"
1911
+ },
1912
+ [
1913
+ {
1914
+ "merge": [
1915
+ {
1916
+ "var": "state.proposal"
1917
+ },
1918
+ {
1919
+ "votes": {
1920
+ "var": "state.votes"
1921
+ },
1922
+ "executedAt": {
1923
+ "var": "$timestamp"
1924
+ }
1925
+ }
1926
+ ]
1927
+ }
1928
+ ]
1929
+ ]
1930
+ },
1931
+ "proposal": null,
1932
+ "votes": null
1933
+ }
1934
+ ]
1935
+ },
1936
+ "emits": [
1937
+ {
1938
+ "event": "proposal_executed",
1939
+ "to": "external"
1940
+ }
1941
+ ],
1942
+ "dependencies": []
1943
+ },
1944
+ {
1945
+ "from": "VOTING",
1946
+ "to": "ACTIVE",
1947
+ "eventName": "reject",
1948
+ "guard": {
1949
+ "and": [
1950
+ {
1951
+ ">": [
1952
+ {
1953
+ "var": "$timestamp"
1954
+ },
1955
+ {
1956
+ "var": "state.proposal.votingEndsAt"
1957
+ }
1958
+ ]
1959
+ },
1960
+ {
1961
+ "or": [
1962
+ {
1963
+ "<=": [
1964
+ {
1965
+ "var": "state.votes.for"
1966
+ },
1967
+ {
1968
+ "var": "state.votes.against"
1969
+ }
1970
+ ]
1971
+ },
1972
+ {
1973
+ "<": [
1974
+ {
1975
+ "+": [
1976
+ {
1977
+ "var": "state.votes.for"
1978
+ },
1979
+ {
1980
+ "var": "state.votes.against"
1981
+ },
1982
+ {
1983
+ "var": "state.votes.abstain"
1984
+ }
1985
+ ]
1986
+ },
1987
+ {
1988
+ "var": "state.quorum"
1989
+ }
1990
+ ]
1991
+ }
1992
+ ]
1993
+ }
1994
+ ]
1995
+ },
1996
+ "effect": {
1997
+ "merge": [
1998
+ {
1999
+ "var": "state"
2000
+ },
2001
+ {
2002
+ "rejectedProposals": {
2003
+ "cat": [
2004
+ {
2005
+ "var": "state.rejectedProposals"
2006
+ },
2007
+ [
2008
+ {
2009
+ "merge": [
2010
+ {
2011
+ "var": "state.proposal"
2012
+ },
2013
+ {
2014
+ "votes": {
2015
+ "var": "state.votes"
2016
+ },
2017
+ "rejectedAt": {
2018
+ "var": "$timestamp"
2019
+ }
2020
+ }
2021
+ ]
2022
+ }
2023
+ ]
2024
+ ]
2025
+ },
2026
+ "proposal": null,
2027
+ "votes": null
2028
+ }
2029
+ ]
2030
+ },
2031
+ "dependencies": []
2032
+ },
2033
+ {
2034
+ "from": "QUEUED",
2035
+ "to": "ACTIVE",
2036
+ "eventName": "cancel",
2037
+ "guard": {
2038
+ "===": [
2039
+ {
2040
+ "var": "event.agent"
2041
+ },
2042
+ {
2043
+ "var": "state.proposal.proposer"
2044
+ }
2045
+ ]
2046
+ },
2047
+ "effect": {
2048
+ "merge": [
2049
+ {
2050
+ "var": "state"
2051
+ },
2052
+ {
2053
+ "cancelledProposals": {
2054
+ "cat": [
2055
+ {
2056
+ "var": "state.cancelledProposals"
2057
+ },
2058
+ [
2059
+ {
2060
+ "merge": [
2061
+ {
2062
+ "var": "state.proposal"
2063
+ },
2064
+ {
2065
+ "cancelledAt": {
2066
+ "var": "$timestamp"
2067
+ }
2068
+ }
2069
+ ]
2070
+ }
2071
+ ]
2072
+ ]
2073
+ },
2074
+ "proposal": null,
2075
+ "votes": null
2076
+ }
2077
+ ]
2078
+ },
2079
+ "dependencies": []
2080
+ },
2081
+ {
2082
+ "from": "ACTIVE",
2083
+ "to": "ACTIVE",
2084
+ "eventName": "delegate",
2085
+ "guard": {
2086
+ ">": [
2087
+ {
2088
+ "getKey": [
2089
+ {
2090
+ "var": "state.balances"
2091
+ },
2092
+ {
2093
+ "var": "event.agent"
2094
+ }
2095
+ ]
2096
+ },
2097
+ 0
2098
+ ]
2099
+ },
2100
+ "effect": {
2101
+ "merge": [
2102
+ {
2103
+ "var": "state"
2104
+ },
2105
+ {
2106
+ "delegations": {
2107
+ "setKey": [
2108
+ {
2109
+ "var": "state.delegations"
2110
+ },
2111
+ {
2112
+ "var": "event.agent"
2113
+ },
2114
+ {
2115
+ "var": "event.delegateTo"
2116
+ }
2117
+ ]
2118
+ }
2119
+ }
2120
+ ]
2121
+ },
2122
+ "dependencies": []
2123
+ },
2124
+ {
2125
+ "from": "ACTIVE",
2126
+ "to": "ACTIVE",
2127
+ "eventName": "undelegate",
2128
+ "guard": {
2129
+ "getKey": [
2130
+ {
2131
+ "var": "state.delegations"
2132
+ },
2133
+ {
2134
+ "var": "event.agent"
2135
+ }
2136
+ ]
2137
+ },
2138
+ "effect": {
2139
+ "merge": [
2140
+ {
2141
+ "var": "state"
2142
+ },
2143
+ {
2144
+ "delegations": {
2145
+ "deleteKey": [
2146
+ {
2147
+ "var": "state.delegations"
2148
+ },
2149
+ {
2150
+ "var": "event.agent"
2151
+ }
2152
+ ]
2153
+ }
2154
+ }
2155
+ ]
2156
+ },
2157
+ "dependencies": []
2158
+ }
2159
+ ],
2160
+ "crossReferences": {
2161
+ "Identity": "voter verification",
2162
+ "Token": "balance snapshots",
2163
+ "Contract": "action execution",
2164
+ "Treasury": "fund management"
2165
+ }
2166
+ };
2167
+ exports.govConstitutionDef = {
2168
+ "metadata": {
2169
+ "name": "Constitution",
2170
+ "description": "Foundational charter that defines governance structure, branch powers, and amendment rules",
2171
+ "version": "1.0.0"
2172
+ },
2173
+ "states": {
2174
+ "DRAFT": {
2175
+ "id": "DRAFT",
2176
+ "isFinal": false,
2177
+ "metadata": null
2178
+ },
2179
+ "RATIFIED": {
2180
+ "id": "RATIFIED",
2181
+ "isFinal": false,
2182
+ "metadata": null
2183
+ },
2184
+ "AMENDING": {
2185
+ "id": "AMENDING",
2186
+ "isFinal": false,
2187
+ "metadata": null
2188
+ },
2189
+ "SUSPENDED": {
2190
+ "id": "SUSPENDED",
2191
+ "isFinal": false,
2192
+ "metadata": null
2193
+ },
2194
+ "DISSOLVED": {
2195
+ "id": "DISSOLVED",
2196
+ "isFinal": true,
2197
+ "metadata": null
2198
+ }
2199
+ },
2200
+ "initialState": "DRAFT",
2201
+ "transitions": [
2202
+ {
2203
+ "from": "DRAFT",
2204
+ "to": "RATIFIED",
2205
+ "eventName": "ratify",
2206
+ "guard": {
2207
+ ">=": [
2208
+ {
2209
+ "size": {
2210
+ "var": "state.ratifications"
2211
+ }
2212
+ },
2213
+ {
2214
+ "var": "state.ratificationThreshold"
2215
+ }
2216
+ ]
2217
+ },
2218
+ "effect": {
2219
+ "merge": [
2220
+ {
2221
+ "var": "state"
2222
+ },
2223
+ {
2224
+ "status": "RATIFIED",
2225
+ "ratifiedAt": {
2226
+ "var": "$timestamp"
2227
+ }
2228
+ }
2229
+ ]
2230
+ },
2231
+ "dependencies": []
2232
+ },
2233
+ {
2234
+ "from": "DRAFT",
2235
+ "to": "DRAFT",
2236
+ "eventName": "sign",
2237
+ "guard": {
2238
+ "and": [
2239
+ {
2240
+ "in": [
2241
+ {
2242
+ "var": "event.agent"
2243
+ },
2244
+ {
2245
+ "var": "state.founders"
2246
+ }
2247
+ ]
2248
+ },
2249
+ {
2250
+ "!": [
2251
+ {
2252
+ "in": [
2253
+ {
2254
+ "var": "event.agent"
2255
+ },
2256
+ {
2257
+ "var": "state.ratifications"
2258
+ }
2259
+ ]
2260
+ }
2261
+ ]
2262
+ }
2263
+ ]
2264
+ },
2265
+ "effect": {
2266
+ "merge": [
2267
+ {
2268
+ "var": "state"
2269
+ },
2270
+ {
2271
+ "ratifications": {
2272
+ "cat": [
2273
+ {
2274
+ "var": "state.ratifications"
2275
+ },
2276
+ [
2277
+ {
2278
+ "var": "event.agent"
2279
+ }
2280
+ ]
2281
+ ]
2282
+ }
2283
+ }
2284
+ ]
2285
+ },
2286
+ "dependencies": []
2287
+ },
2288
+ {
2289
+ "from": "RATIFIED",
2290
+ "to": "AMENDING",
2291
+ "eventName": "propose_amendment",
2292
+ "guard": {
2293
+ "or": [
2294
+ {
2295
+ "in": [
2296
+ {
2297
+ "var": "event.agent"
2298
+ },
2299
+ {
2300
+ "var": "state.branches.legislature.members"
2301
+ }
2302
+ ]
2303
+ },
2304
+ {
2305
+ ">=": [
2306
+ {
2307
+ "var": "event.petitionSignatures"
2308
+ },
2309
+ {
2310
+ "var": "state.amendmentPetitionThreshold"
2311
+ }
2312
+ ]
2313
+ }
2314
+ ]
2315
+ },
2316
+ "effect": {
2317
+ "merge": [
2318
+ {
2319
+ "var": "state"
2320
+ },
2321
+ {
2322
+ "status": "AMENDING",
2323
+ "pendingAmendment": {
2324
+ "id": {
2325
+ "var": "event.amendmentId"
2326
+ },
2327
+ "proposer": {
2328
+ "var": "event.agent"
2329
+ },
2330
+ "changes": {
2331
+ "var": "event.changes"
2332
+ },
2333
+ "proposedAt": {
2334
+ "var": "$timestamp"
2335
+ },
2336
+ "votes": {}
2337
+ }
2338
+ }
2339
+ ]
2340
+ },
2341
+ "dependencies": []
2342
+ },
2343
+ {
2344
+ "from": "AMENDING",
2345
+ "to": "RATIFIED",
2346
+ "eventName": "ratify_amendment",
2347
+ "guard": {
2348
+ ">=": [
2349
+ {
2350
+ "var": "state.pendingAmendment.approvalCount"
2351
+ },
2352
+ {
2353
+ "var": "state.amendmentThreshold"
2354
+ }
2355
+ ]
2356
+ },
2357
+ "effect": {
2358
+ "merge": [
2359
+ {
2360
+ "var": "state"
2361
+ },
2362
+ {
2363
+ "status": "RATIFIED",
2364
+ "amendments": {
2365
+ "cat": [
2366
+ {
2367
+ "var": "state.amendments"
2368
+ },
2369
+ [
2370
+ {
2371
+ "id": {
2372
+ "var": "state.pendingAmendment.id"
2373
+ },
2374
+ "changes": {
2375
+ "var": "state.pendingAmendment.changes"
2376
+ },
2377
+ "ratifiedAt": {
2378
+ "var": "$timestamp"
2379
+ }
2380
+ }
2381
+ ]
2382
+ ]
2383
+ },
2384
+ "pendingAmendment": null
2385
+ }
2386
+ ]
2387
+ },
2388
+ "dependencies": []
2389
+ },
2390
+ {
2391
+ "from": "AMENDING",
2392
+ "to": "RATIFIED",
2393
+ "eventName": "reject_amendment",
2394
+ "guard": {
2395
+ "var": "state.pendingAmendment.rejected"
2396
+ },
2397
+ "effect": {
2398
+ "merge": [
2399
+ {
2400
+ "var": "state"
2401
+ },
2402
+ {
2403
+ "status": "RATIFIED",
2404
+ "failedAmendments": {
2405
+ "cat": [
2406
+ {
2407
+ "var": "state.failedAmendments"
2408
+ },
2409
+ [
2410
+ {
2411
+ "var": "state.pendingAmendment"
2412
+ }
2413
+ ]
2414
+ ]
2415
+ },
2416
+ "pendingAmendment": null
2417
+ }
2418
+ ]
2419
+ },
2420
+ "dependencies": []
2421
+ },
2422
+ {
2423
+ "from": "RATIFIED",
2424
+ "to": "SUSPENDED",
2425
+ "eventName": "suspend",
2426
+ "guard": {
2427
+ "and": [
2428
+ {
2429
+ "in": [
2430
+ {
2431
+ "var": "event.agent"
2432
+ },
2433
+ {
2434
+ "var": "state.emergencyCouncil"
2435
+ }
2436
+ ]
2437
+ },
2438
+ {
2439
+ "var": "event.reason"
2440
+ }
2441
+ ]
2442
+ },
2443
+ "effect": {
2444
+ "merge": [
2445
+ {
2446
+ "var": "state"
2447
+ },
2448
+ {
2449
+ "status": "SUSPENDED",
2450
+ "suspendedBy": {
2451
+ "var": "event.agent"
2452
+ },
2453
+ "suspensionReason": {
2454
+ "var": "event.reason"
2455
+ },
2456
+ "suspendedAt": {
2457
+ "var": "$timestamp"
2458
+ }
2459
+ }
2460
+ ]
2461
+ },
2462
+ "dependencies": []
2463
+ },
2464
+ {
2465
+ "from": "SUSPENDED",
2466
+ "to": "RATIFIED",
2467
+ "eventName": "restore",
2468
+ "guard": {
2469
+ ">=": [
2470
+ {
2471
+ "var": "event.restorationVotes"
2472
+ },
2473
+ {
2474
+ "var": "state.restorationThreshold"
2475
+ }
2476
+ ]
2477
+ },
2478
+ "effect": {
2479
+ "merge": [
2480
+ {
2481
+ "var": "state"
2482
+ },
2483
+ {
2484
+ "status": "RATIFIED",
2485
+ "restoredAt": {
2486
+ "var": "$timestamp"
2487
+ }
2488
+ }
2489
+ ]
2490
+ },
2491
+ "dependencies": []
2492
+ },
2493
+ {
2494
+ "from": "RATIFIED",
2495
+ "to": "DISSOLVED",
2496
+ "eventName": "dissolve",
2497
+ "guard": {
2498
+ ">=": [
2499
+ {
2500
+ "var": "event.dissolutionVotes"
2501
+ },
2502
+ {
2503
+ "var": "state.dissolutionThreshold"
2504
+ }
2505
+ ]
2506
+ },
2507
+ "effect": {
2508
+ "merge": [
2509
+ {
2510
+ "var": "state"
2511
+ },
2512
+ {
2513
+ "status": "DISSOLVED",
2514
+ "dissolvedAt": {
2515
+ "var": "$timestamp"
2516
+ }
2517
+ }
2518
+ ]
2519
+ },
2520
+ "dependencies": []
2521
+ }
2522
+ ]
2523
+ };
2524
+ exports.govExecutiveDef = {
2525
+ "metadata": {
2526
+ "name": "Executive",
2527
+ "description": "Execution branch - implements mandates, manages operations, reports outcomes",
2528
+ "version": "1.0.0"
2529
+ },
2530
+ "states": {
2531
+ "RECEIVED": {
2532
+ "id": "RECEIVED",
2533
+ "isFinal": false,
2534
+ "metadata": null
2535
+ },
2536
+ "PLANNING": {
2537
+ "id": "PLANNING",
2538
+ "isFinal": false,
2539
+ "metadata": null
2540
+ },
2541
+ "EXECUTING": {
2542
+ "id": "EXECUTING",
2543
+ "isFinal": false,
2544
+ "metadata": null
2545
+ },
2546
+ "PAUSED": {
2547
+ "id": "PAUSED",
2548
+ "isFinal": false,
2549
+ "metadata": null
2550
+ },
2551
+ "COMPLETED": {
2552
+ "id": "COMPLETED",
2553
+ "isFinal": true,
2554
+ "metadata": null
2555
+ },
2556
+ "FAILED": {
2557
+ "id": "FAILED",
2558
+ "isFinal": true,
2559
+ "metadata": null
2560
+ },
2561
+ "BLOCKED": {
2562
+ "id": "BLOCKED",
2563
+ "isFinal": true,
2564
+ "metadata": null
2565
+ },
2566
+ "VETOED": {
2567
+ "id": "VETOED",
2568
+ "isFinal": true,
2569
+ "metadata": null
2570
+ }
2571
+ },
2572
+ "initialState": "RECEIVED",
2573
+ "transitions": [
2574
+ {
2575
+ "from": "RECEIVED",
2576
+ "to": "PLANNING",
2577
+ "eventName": "accept",
2578
+ "guard": {
2579
+ "in": [
2580
+ {
2581
+ "var": "event.agent"
2582
+ },
2583
+ {
2584
+ "var": "state.executors"
2585
+ }
2586
+ ]
2587
+ },
2588
+ "effect": {
2589
+ "merge": [
2590
+ {
2591
+ "var": "state"
2592
+ },
2593
+ {
2594
+ "status": "PLANNING",
2595
+ "acceptedBy": {
2596
+ "var": "event.agent"
2597
+ },
2598
+ "acceptedAt": {
2599
+ "var": "$timestamp"
2600
+ },
2601
+ "plan": {
2602
+ "var": "event.plan"
2603
+ }
2604
+ }
2605
+ ]
2606
+ },
2607
+ "dependencies": []
2608
+ },
2609
+ {
2610
+ "from": "RECEIVED",
2611
+ "to": "VETOED",
2612
+ "eventName": "veto",
2613
+ "guard": {
2614
+ "and": [
2615
+ {
2616
+ "var": "state.config.executiveVeto"
2617
+ },
2618
+ {
2619
+ "===": [
2620
+ {
2621
+ "var": "event.agent"
2622
+ },
2623
+ {
2624
+ "var": "state.executiveHead"
2625
+ }
2626
+ ]
2627
+ }
2628
+ ]
2629
+ },
2630
+ "effect": {
2631
+ "merge": [
2632
+ {
2633
+ "var": "state"
2634
+ },
2635
+ {
2636
+ "status": "VETOED",
2637
+ "vetoedBy": {
2638
+ "var": "event.agent"
2639
+ },
2640
+ "vetoReason": {
2641
+ "var": "event.reason"
2642
+ },
2643
+ "vetoedAt": {
2644
+ "var": "$timestamp"
2645
+ }
2646
+ }
2647
+ ]
2648
+ },
2649
+ "dependencies": []
2650
+ },
2651
+ {
2652
+ "from": "PLANNING",
2653
+ "to": "EXECUTING",
2654
+ "eventName": "begin",
2655
+ "guard": {
2656
+ "in": [
2657
+ {
2658
+ "var": "event.agent"
2659
+ },
2660
+ {
2661
+ "var": "state.executors"
2662
+ }
2663
+ ]
2664
+ },
2665
+ "effect": {
2666
+ "merge": [
2667
+ {
2668
+ "var": "state"
2669
+ },
2670
+ {
2671
+ "status": "EXECUTING",
2672
+ "executionStartedAt": {
2673
+ "var": "$timestamp"
2674
+ },
2675
+ "milestones": []
2676
+ }
2677
+ ]
2678
+ },
2679
+ "dependencies": []
2680
+ },
2681
+ {
2682
+ "from": "EXECUTING",
2683
+ "to": "EXECUTING",
2684
+ "eventName": "report_progress",
2685
+ "guard": {
2686
+ "in": [
2687
+ {
2688
+ "var": "event.agent"
2689
+ },
2690
+ {
2691
+ "var": "state.executors"
2692
+ }
2693
+ ]
2694
+ },
2695
+ "effect": {
2696
+ "merge": [
2697
+ {
2698
+ "var": "state"
2699
+ },
2700
+ {
2701
+ "milestones": {
2702
+ "cat": [
2703
+ {
2704
+ "var": "state.milestones"
2705
+ },
2706
+ [
2707
+ {
2708
+ "description": {
2709
+ "var": "event.description"
2710
+ },
2711
+ "completedAt": {
2712
+ "var": "$timestamp"
2713
+ },
2714
+ "evidence": {
2715
+ "var": "event.evidence"
2716
+ }
2717
+ }
2718
+ ]
2719
+ ]
2720
+ },
2721
+ "lastProgressAt": {
2722
+ "var": "$timestamp"
2723
+ }
2724
+ }
2725
+ ]
2726
+ },
2727
+ "dependencies": []
2728
+ },
2729
+ {
2730
+ "from": "EXECUTING",
2731
+ "to": "PAUSED",
2732
+ "eventName": "pause",
2733
+ "guard": {
2734
+ "or": [
2735
+ {
2736
+ "in": [
2737
+ {
2738
+ "var": "event.agent"
2739
+ },
2740
+ {
2741
+ "var": "state.executors"
2742
+ }
2743
+ ]
2744
+ },
2745
+ {
2746
+ "var": "event.judicialOrder"
2747
+ }
2748
+ ]
2749
+ },
2750
+ "effect": {
2751
+ "merge": [
2752
+ {
2753
+ "var": "state"
2754
+ },
2755
+ {
2756
+ "status": "PAUSED",
2757
+ "pausedBy": {
2758
+ "var": "event.agent"
2759
+ },
2760
+ "pauseReason": {
2761
+ "var": "event.reason"
2762
+ },
2763
+ "pausedAt": {
2764
+ "var": "$timestamp"
2765
+ },
2766
+ "judicialHold": {
2767
+ "var": "event.judicialOrder"
2768
+ }
2769
+ }
2770
+ ]
2771
+ },
2772
+ "dependencies": []
2773
+ },
2774
+ {
2775
+ "from": "PAUSED",
2776
+ "to": "EXECUTING",
2777
+ "eventName": "resume",
2778
+ "guard": {
2779
+ "and": [
2780
+ {
2781
+ "in": [
2782
+ {
2783
+ "var": "event.agent"
2784
+ },
2785
+ {
2786
+ "var": "state.executors"
2787
+ }
2788
+ ]
2789
+ },
2790
+ {
2791
+ "!": [
2792
+ {
2793
+ "var": "state.judicialHold"
2794
+ }
2795
+ ]
2796
+ }
2797
+ ]
2798
+ },
2799
+ "effect": {
2800
+ "merge": [
2801
+ {
2802
+ "var": "state"
2803
+ },
2804
+ {
2805
+ "status": "EXECUTING",
2806
+ "resumedAt": {
2807
+ "var": "$timestamp"
2808
+ }
2809
+ }
2810
+ ]
2811
+ },
2812
+ "dependencies": []
2813
+ },
2814
+ {
2815
+ "from": "PAUSED",
2816
+ "to": "BLOCKED",
2817
+ "eventName": "block",
2818
+ "guard": {
2819
+ "var": "event.judicialRuling"
2820
+ },
2821
+ "effect": {
2822
+ "merge": [
2823
+ {
2824
+ "var": "state"
2825
+ },
2826
+ {
2827
+ "status": "BLOCKED",
2828
+ "blockedBy": {
2829
+ "var": "event.agent"
2830
+ },
2831
+ "rulingId": {
2832
+ "var": "event.rulingId"
2833
+ },
2834
+ "blockedAt": {
2835
+ "var": "$timestamp"
2836
+ }
2837
+ }
2838
+ ]
2839
+ },
2840
+ "dependencies": []
2841
+ },
2842
+ {
2843
+ "from": "EXECUTING",
2844
+ "to": "COMPLETED",
2845
+ "eventName": "complete",
2846
+ "guard": {
2847
+ "in": [
2848
+ {
2849
+ "var": "event.agent"
2850
+ },
2851
+ {
2852
+ "var": "state.executors"
2853
+ }
2854
+ ]
2855
+ },
2856
+ "effect": {
2857
+ "merge": [
2858
+ {
2859
+ "var": "state"
2860
+ },
2861
+ {
2862
+ "status": "COMPLETED",
2863
+ "completedAt": {
2864
+ "var": "$timestamp"
2865
+ },
2866
+ "outcome": {
2867
+ "var": "event.outcome"
2868
+ },
2869
+ "finalReport": {
2870
+ "var": "event.report"
2871
+ }
2872
+ }
2873
+ ]
2874
+ },
2875
+ "dependencies": []
2876
+ },
2877
+ {
2878
+ "from": "EXECUTING",
2879
+ "to": "FAILED",
2880
+ "eventName": "fail",
2881
+ "guard": {
2882
+ "in": [
2883
+ {
2884
+ "var": "event.agent"
2885
+ },
2886
+ {
2887
+ "var": "state.executors"
2888
+ }
2889
+ ]
2890
+ },
2891
+ "effect": {
2892
+ "merge": [
2893
+ {
2894
+ "var": "state"
2895
+ },
2896
+ {
2897
+ "status": "FAILED",
2898
+ "failedAt": {
2899
+ "var": "$timestamp"
2900
+ },
2901
+ "failureReason": {
2902
+ "var": "event.reason"
2903
+ }
2904
+ }
2905
+ ]
2906
+ },
2907
+ "dependencies": []
2908
+ }
2909
+ ]
2910
+ };
2911
+ exports.govJudiciaryDef = {
2912
+ "metadata": {
2913
+ "name": "Judiciary",
2914
+ "description": "Judicial branch - interprets rules, reviews actions, resolves disputes, issues rulings",
2915
+ "version": "1.0.0"
2916
+ },
2917
+ "states": {
2918
+ "FILED": {
2919
+ "id": "FILED",
2920
+ "isFinal": false,
2921
+ "metadata": null
2922
+ },
2923
+ "REVIEW": {
2924
+ "id": "REVIEW",
2925
+ "isFinal": false,
2926
+ "metadata": null
2927
+ },
2928
+ "HEARING": {
2929
+ "id": "HEARING",
2930
+ "isFinal": false,
2931
+ "metadata": null
2932
+ },
2933
+ "DELIBERATION": {
2934
+ "id": "DELIBERATION",
2935
+ "isFinal": false,
2936
+ "metadata": null
2937
+ },
2938
+ "RULING": {
2939
+ "id": "RULING",
2940
+ "isFinal": false,
2941
+ "metadata": null
2942
+ },
2943
+ "ENFORCING": {
2944
+ "id": "ENFORCING",
2945
+ "isFinal": false,
2946
+ "metadata": null
2947
+ },
2948
+ "CLOSED": {
2949
+ "id": "CLOSED",
2950
+ "isFinal": true,
2951
+ "metadata": null
2952
+ },
2953
+ "DISMISSED": {
2954
+ "id": "DISMISSED",
2955
+ "isFinal": true,
2956
+ "metadata": null
2957
+ },
2958
+ "APPEALED": {
2959
+ "id": "APPEALED",
2960
+ "isFinal": false,
2961
+ "metadata": null
2962
+ }
2963
+ },
2964
+ "initialState": "FILED",
2965
+ "transitions": [
2966
+ {
2967
+ "from": "FILED",
2968
+ "to": "REVIEW",
2969
+ "eventName": "accept",
2970
+ "guard": {
2971
+ "in": [
2972
+ {
2973
+ "var": "event.agent"
2974
+ },
2975
+ {
2976
+ "var": "state.judges"
2977
+ }
2978
+ ]
2979
+ },
2980
+ "effect": {
2981
+ "merge": [
2982
+ {
2983
+ "var": "state"
2984
+ },
2985
+ {
2986
+ "status": "REVIEW",
2987
+ "acceptedBy": {
2988
+ "var": "event.agent"
2989
+ },
2990
+ "acceptedAt": {
2991
+ "var": "$timestamp"
2992
+ },
2993
+ "assignedJudges": {
2994
+ "var": "event.panel"
2995
+ }
2996
+ }
2997
+ ]
2998
+ },
2999
+ "dependencies": []
3000
+ },
3001
+ {
3002
+ "from": "FILED",
3003
+ "to": "DISMISSED",
3004
+ "eventName": "dismiss",
3005
+ "guard": {
3006
+ "in": [
3007
+ {
3008
+ "var": "event.agent"
3009
+ },
3010
+ {
3011
+ "var": "state.judges"
3012
+ }
3013
+ ]
3014
+ },
3015
+ "effect": {
3016
+ "merge": [
3017
+ {
3018
+ "var": "state"
3019
+ },
3020
+ {
3021
+ "status": "DISMISSED",
3022
+ "dismissedBy": {
3023
+ "var": "event.agent"
3024
+ },
3025
+ "dismissReason": {
3026
+ "var": "event.reason"
3027
+ },
3028
+ "dismissedAt": {
3029
+ "var": "$timestamp"
3030
+ }
3031
+ }
3032
+ ]
3033
+ },
3034
+ "dependencies": []
3035
+ },
3036
+ {
3037
+ "from": "REVIEW",
3038
+ "to": "REVIEW",
3039
+ "eventName": "issue_stay",
3040
+ "guard": {
3041
+ "in": [
3042
+ {
3043
+ "var": "event.agent"
3044
+ },
3045
+ {
3046
+ "var": "state.assignedJudges"
3047
+ }
3048
+ ]
3049
+ },
3050
+ "effect": {
3051
+ "merge": [
3052
+ {
3053
+ "var": "state"
3054
+ },
3055
+ {
3056
+ "emergencyStay": {
3057
+ "issuedBy": {
3058
+ "var": "event.agent"
3059
+ },
3060
+ "issuedAt": {
3061
+ "var": "$timestamp"
3062
+ },
3063
+ "targetFiberId": {
3064
+ "var": "event.targetFiberId"
3065
+ },
3066
+ "reason": {
3067
+ "var": "event.reason"
3068
+ },
3069
+ "expiresAt": {
3070
+ "var": "event.expiresAt"
3071
+ }
3072
+ }
3073
+ }
3074
+ ]
3075
+ },
3076
+ "dependencies": []
3077
+ },
3078
+ {
3079
+ "from": "REVIEW",
3080
+ "to": "HEARING",
3081
+ "eventName": "schedule_hearing",
3082
+ "guard": {
3083
+ "in": [
3084
+ {
3085
+ "var": "event.agent"
3086
+ },
3087
+ {
3088
+ "var": "state.assignedJudges"
3089
+ }
3090
+ ]
3091
+ },
3092
+ "effect": {
3093
+ "merge": [
3094
+ {
3095
+ "var": "state"
3096
+ },
3097
+ {
3098
+ "status": "HEARING",
3099
+ "hearingScheduledAt": {
3100
+ "var": "event.hearingDate"
3101
+ },
3102
+ "submissions": []
3103
+ }
3104
+ ]
3105
+ },
3106
+ "dependencies": []
3107
+ },
3108
+ {
3109
+ "from": "HEARING",
3110
+ "to": "HEARING",
3111
+ "eventName": "submit_evidence",
3112
+ "guard": {
3113
+ "or": [
3114
+ {
3115
+ "===": [
3116
+ {
3117
+ "var": "event.agent"
3118
+ },
3119
+ {
3120
+ "var": "state.plaintiff"
3121
+ }
3122
+ ]
3123
+ },
3124
+ {
3125
+ "===": [
3126
+ {
3127
+ "var": "event.agent"
3128
+ },
3129
+ {
3130
+ "var": "state.defendant"
3131
+ }
3132
+ ]
3133
+ },
3134
+ {
3135
+ "in": [
3136
+ {
3137
+ "var": "event.agent"
3138
+ },
3139
+ {
3140
+ "var": "state.interestedParties"
3141
+ }
3142
+ ]
3143
+ }
3144
+ ]
3145
+ },
3146
+ "effect": {
3147
+ "merge": [
3148
+ {
3149
+ "var": "state"
3150
+ },
3151
+ {
3152
+ "submissions": {
3153
+ "cat": [
3154
+ {
3155
+ "var": "state.submissions"
3156
+ },
3157
+ [
3158
+ {
3159
+ "party": {
3160
+ "var": "event.agent"
3161
+ },
3162
+ "type": {
3163
+ "var": "event.type"
3164
+ },
3165
+ "content": {
3166
+ "var": "event.content"
3167
+ },
3168
+ "submittedAt": {
3169
+ "var": "$timestamp"
3170
+ }
3171
+ }
3172
+ ]
3173
+ ]
3174
+ }
3175
+ }
3176
+ ]
3177
+ },
3178
+ "dependencies": []
3179
+ },
3180
+ {
3181
+ "from": "HEARING",
3182
+ "to": "DELIBERATION",
3183
+ "eventName": "close_hearing",
3184
+ "guard": {
3185
+ "in": [
3186
+ {
3187
+ "var": "event.agent"
3188
+ },
3189
+ {
3190
+ "var": "state.assignedJudges"
3191
+ }
3192
+ ]
3193
+ },
3194
+ "effect": {
3195
+ "merge": [
3196
+ {
3197
+ "var": "state"
3198
+ },
3199
+ {
3200
+ "status": "DELIBERATION",
3201
+ "hearingClosedAt": {
3202
+ "var": "$timestamp"
3203
+ },
3204
+ "votes": {}
3205
+ }
3206
+ ]
3207
+ },
3208
+ "dependencies": []
3209
+ },
3210
+ {
3211
+ "from": "DELIBERATION",
3212
+ "to": "DELIBERATION",
3213
+ "eventName": "vote",
3214
+ "guard": {
3215
+ "and": [
3216
+ {
3217
+ "in": [
3218
+ {
3219
+ "var": "event.agent"
3220
+ },
3221
+ {
3222
+ "var": "state.assignedJudges"
3223
+ }
3224
+ ]
3225
+ },
3226
+ {
3227
+ "!": [
3228
+ {
3229
+ "getKey": [
3230
+ {
3231
+ "var": "state.votes"
3232
+ },
3233
+ {
3234
+ "var": "event.agent"
3235
+ }
3236
+ ]
3237
+ }
3238
+ ]
3239
+ }
3240
+ ]
3241
+ },
3242
+ "effect": {
3243
+ "merge": [
3244
+ {
3245
+ "var": "state"
3246
+ },
3247
+ {
3248
+ "votes": {
3249
+ "setKey": [
3250
+ {
3251
+ "var": "state.votes"
3252
+ },
3253
+ {
3254
+ "var": "event.agent"
3255
+ },
3256
+ {
3257
+ "position": {
3258
+ "var": "event.position"
3259
+ },
3260
+ "opinion": {
3261
+ "var": "event.opinion"
3262
+ },
3263
+ "votedAt": {
3264
+ "var": "$timestamp"
3265
+ }
3266
+ }
3267
+ ]
3268
+ }
3269
+ }
3270
+ ]
3271
+ },
3272
+ "dependencies": []
3273
+ },
3274
+ {
3275
+ "from": "DELIBERATION",
3276
+ "to": "RULING",
3277
+ "eventName": "issue_ruling",
3278
+ "guard": {
3279
+ ">=": [
3280
+ {
3281
+ "size": {
3282
+ "var": "state.votes"
3283
+ }
3284
+ },
3285
+ {
3286
+ "var": "state.quorum"
3287
+ }
3288
+ ]
3289
+ },
3290
+ "effect": {
3291
+ "merge": [
3292
+ {
3293
+ "var": "state"
3294
+ },
3295
+ {
3296
+ "status": "RULING",
3297
+ "ruling": {
3298
+ "decision": {
3299
+ "var": "event.decision"
3300
+ },
3301
+ "majority": {
3302
+ "var": "event.majority"
3303
+ },
3304
+ "dissent": {
3305
+ "var": "event.dissent"
3306
+ },
3307
+ "remedy": {
3308
+ "var": "event.remedy"
3309
+ },
3310
+ "issuedAt": {
3311
+ "var": "$timestamp"
3312
+ }
3313
+ }
3314
+ }
3315
+ ]
3316
+ },
3317
+ "dependencies": []
3318
+ },
3319
+ {
3320
+ "from": "RULING",
3321
+ "to": "ENFORCING",
3322
+ "eventName": "begin_enforcement",
3323
+ "guard": {
3324
+ "var": "state.ruling.remedy"
3325
+ },
3326
+ "effect": {
3327
+ "merge": [
3328
+ {
3329
+ "var": "state"
3330
+ },
3331
+ {
3332
+ "status": "ENFORCING",
3333
+ "enforcementStartedAt": {
3334
+ "var": "$timestamp"
3335
+ }
3336
+ }
3337
+ ]
3338
+ },
3339
+ "dependencies": []
3340
+ },
3341
+ {
3342
+ "from": "RULING",
3343
+ "to": "CLOSED",
3344
+ "eventName": "close",
3345
+ "guard": {
3346
+ "!": [
3347
+ {
3348
+ "var": "state.ruling.remedy"
3349
+ }
3350
+ ]
3351
+ },
3352
+ "effect": {
3353
+ "merge": [
3354
+ {
3355
+ "var": "state"
3356
+ },
3357
+ {
3358
+ "status": "CLOSED",
3359
+ "closedAt": {
3360
+ "var": "$timestamp"
3361
+ }
3362
+ }
3363
+ ]
3364
+ },
3365
+ "dependencies": []
3366
+ },
3367
+ {
3368
+ "from": "ENFORCING",
3369
+ "to": "CLOSED",
3370
+ "eventName": "enforcement_complete",
3371
+ "guard": {
3372
+ "var": "event.evidence"
3373
+ },
3374
+ "effect": {
3375
+ "merge": [
3376
+ {
3377
+ "var": "state"
3378
+ },
3379
+ {
3380
+ "status": "CLOSED",
3381
+ "enforcementCompletedAt": {
3382
+ "var": "$timestamp"
3383
+ },
3384
+ "enforcementEvidence": {
3385
+ "var": "event.evidence"
3386
+ }
3387
+ }
3388
+ ]
3389
+ },
3390
+ "dependencies": []
3391
+ },
3392
+ {
3393
+ "from": "RULING",
3394
+ "to": "APPEALED",
3395
+ "eventName": "appeal",
3396
+ "guard": {
3397
+ "and": [
3398
+ {
3399
+ "var": "state.config.allowAppeals"
3400
+ },
3401
+ {
3402
+ "or": [
3403
+ {
3404
+ "===": [
3405
+ {
3406
+ "var": "event.agent"
3407
+ },
3408
+ {
3409
+ "var": "state.plaintiff"
3410
+ }
3411
+ ]
3412
+ },
3413
+ {
3414
+ "===": [
3415
+ {
3416
+ "var": "event.agent"
3417
+ },
3418
+ {
3419
+ "var": "state.defendant"
3420
+ }
3421
+ ]
3422
+ }
3423
+ ]
3424
+ },
3425
+ {
3426
+ "<=": [
3427
+ {
3428
+ "-": [
3429
+ {
3430
+ "var": "$timestamp"
3431
+ },
3432
+ {
3433
+ "var": "state.ruling.issuedAt"
3434
+ }
3435
+ ]
3436
+ },
3437
+ {
3438
+ "var": "state.config.appealWindowMs"
3439
+ }
3440
+ ]
3441
+ }
3442
+ ]
3443
+ },
3444
+ "effect": {
3445
+ "merge": [
3446
+ {
3447
+ "var": "state"
3448
+ },
3449
+ {
3450
+ "status": "APPEALED",
3451
+ "appeal": {
3452
+ "filedBy": {
3453
+ "var": "event.agent"
3454
+ },
3455
+ "grounds": {
3456
+ "var": "event.grounds"
3457
+ },
3458
+ "filedAt": {
3459
+ "var": "$timestamp"
3460
+ }
3461
+ }
3462
+ }
3463
+ ]
3464
+ },
3465
+ "dependencies": []
3466
+ }
3467
+ ]
3468
+ };
3469
+ exports.govLegislatureDef = {
3470
+ "metadata": {
3471
+ "name": "Governance",
3472
+ "description": "Flexible governance for proposals, voting, delegation, and execution across relationship types",
3473
+ "version": "1.0.0"
3474
+ },
3475
+ "states": {
3476
+ "DRAFT": {
3477
+ "id": "DRAFT",
3478
+ "isFinal": false,
3479
+ "metadata": null
3480
+ },
3481
+ "ACTIVE": {
3482
+ "id": "ACTIVE",
3483
+ "isFinal": false,
3484
+ "metadata": null
3485
+ },
3486
+ "PENDING": {
3487
+ "id": "PENDING",
3488
+ "isFinal": false,
3489
+ "metadata": null
3490
+ },
3491
+ "EXECUTING": {
3492
+ "id": "EXECUTING",
3493
+ "isFinal": false,
3494
+ "metadata": null
3495
+ },
3496
+ "EXECUTED": {
3497
+ "id": "EXECUTED",
3498
+ "isFinal": true,
3499
+ "metadata": null
3500
+ },
3501
+ "VETOED": {
3502
+ "id": "VETOED",
3503
+ "isFinal": true,
3504
+ "metadata": null
3505
+ },
3506
+ "DEFEATED": {
3507
+ "id": "DEFEATED",
3508
+ "isFinal": true,
3509
+ "metadata": null
3510
+ },
3511
+ "EXPIRED": {
3512
+ "id": "EXPIRED",
3513
+ "isFinal": true,
3514
+ "metadata": null
3515
+ },
3516
+ "CANCELLED": {
3517
+ "id": "CANCELLED",
3518
+ "isFinal": true,
3519
+ "metadata": null
3520
+ }
3521
+ },
3522
+ "initialState": "DRAFT",
3523
+ "transitions": [
3524
+ {
3525
+ "from": "DRAFT",
3526
+ "to": "ACTIVE",
3527
+ "eventName": "submit",
3528
+ "guard": {
3529
+ "and": [
3530
+ {
3531
+ "in": [
3532
+ {
3533
+ "var": "event.agent"
3534
+ },
3535
+ {
3536
+ "var": "state.proposers"
3537
+ }
3538
+ ]
3539
+ },
3540
+ {
3541
+ "var": "state.proposal.title"
3542
+ },
3543
+ {
3544
+ "var": "state.proposal.actions"
3545
+ }
3546
+ ]
3547
+ },
3548
+ "effect": {
3549
+ "merge": [
3550
+ {
3551
+ "var": "state"
3552
+ },
3553
+ {
3554
+ "status": "ACTIVE",
3555
+ "submittedAt": {
3556
+ "var": "$timestamp"
3557
+ },
3558
+ "votingEndsAt": {
3559
+ "+": [
3560
+ {
3561
+ "var": "$timestamp"
3562
+ },
3563
+ {
3564
+ "var": "state.config.votingPeriodMs"
3565
+ }
3566
+ ]
3567
+ }
3568
+ }
3569
+ ]
3570
+ },
3571
+ "dependencies": []
3572
+ },
3573
+ {
3574
+ "from": "ACTIVE",
3575
+ "to": "ACTIVE",
3576
+ "eventName": "vote",
3577
+ "guard": {
3578
+ "and": [
3579
+ {
3580
+ "<=": [
3581
+ {
3582
+ "var": "$timestamp"
3583
+ },
3584
+ {
3585
+ "var": "state.votingEndsAt"
3586
+ }
3587
+ ]
3588
+ },
3589
+ {
3590
+ "!": [
3591
+ {
3592
+ "getKey": [
3593
+ {
3594
+ "var": "state.votes"
3595
+ },
3596
+ {
3597
+ "var": "event.agent"
3598
+ }
3599
+ ]
3600
+ }
3601
+ ]
3602
+ },
3603
+ {
3604
+ "or": [
3605
+ {
3606
+ "in": [
3607
+ {
3608
+ "var": "event.agent"
3609
+ },
3610
+ {
3611
+ "var": "state.voters"
3612
+ }
3613
+ ]
3614
+ },
3615
+ {
3616
+ "===": [
3617
+ {
3618
+ "var": "state.config.openVoting"
3619
+ },
3620
+ true
3621
+ ]
3622
+ }
3623
+ ]
3624
+ }
3625
+ ]
3626
+ },
3627
+ "effect": {
3628
+ "merge": [
3629
+ {
3630
+ "var": "state"
3631
+ },
3632
+ {
3633
+ "votes": {
3634
+ "setKey": [
3635
+ {
3636
+ "var": "state.votes"
3637
+ },
3638
+ {
3639
+ "var": "event.agent"
3640
+ },
3641
+ {
3642
+ "choice": {
3643
+ "var": "event.choice"
3644
+ },
3645
+ "weight": {
3646
+ "var": "event.weight"
3647
+ },
3648
+ "conviction": {
3649
+ "var": "event.conviction"
3650
+ },
3651
+ "delegatedFrom": {
3652
+ "var": "event.delegatedFrom"
3653
+ },
3654
+ "votedAt": {
3655
+ "var": "$timestamp"
3656
+ }
3657
+ }
3658
+ ]
3659
+ }
3660
+ }
3661
+ ]
3662
+ },
3663
+ "dependencies": []
3664
+ },
3665
+ {
3666
+ "from": "ACTIVE",
3667
+ "to": "ACTIVE",
3668
+ "eventName": "delegate",
3669
+ "guard": {
3670
+ "and": [
3671
+ {
3672
+ "var": "state.config.allowDelegation"
3673
+ },
3674
+ {
3675
+ "!==": [
3676
+ {
3677
+ "var": "event.agent"
3678
+ },
3679
+ {
3680
+ "var": "event.delegateTo"
3681
+ }
3682
+ ]
3683
+ },
3684
+ {
3685
+ "!": [
3686
+ {
3687
+ "getKey": [
3688
+ {
3689
+ "var": "state.votes"
3690
+ },
3691
+ {
3692
+ "var": "event.agent"
3693
+ }
3694
+ ]
3695
+ }
3696
+ ]
3697
+ }
3698
+ ]
3699
+ },
3700
+ "effect": {
3701
+ "merge": [
3702
+ {
3703
+ "var": "state"
3704
+ },
3705
+ {
3706
+ "delegations": {
3707
+ "setKey": [
3708
+ {
3709
+ "var": "state.delegations"
3710
+ },
3711
+ {
3712
+ "var": "event.agent"
3713
+ },
3714
+ {
3715
+ "delegateTo": {
3716
+ "var": "event.delegateTo"
3717
+ },
3718
+ "weight": {
3719
+ "var": "event.weight"
3720
+ },
3721
+ "delegatedAt": {
3722
+ "var": "$timestamp"
3723
+ }
3724
+ }
3725
+ ]
3726
+ }
3727
+ }
3728
+ ]
3729
+ },
3730
+ "dependencies": []
3731
+ },
3732
+ {
3733
+ "from": "ACTIVE",
3734
+ "to": "PENDING",
3735
+ "eventName": "finalize_voting",
3736
+ "guard": {
3737
+ "and": [
3738
+ {
3739
+ ">=": [
3740
+ {
3741
+ "var": "$timestamp"
3742
+ },
3743
+ {
3744
+ "var": "state.votingEndsAt"
3745
+ }
3746
+ ]
3747
+ },
3748
+ {
3749
+ "var": "state.tally.passed"
3750
+ }
3751
+ ]
3752
+ },
3753
+ "effect": {
3754
+ "merge": [
3755
+ {
3756
+ "var": "state"
3757
+ },
3758
+ {
3759
+ "status": "PENDING",
3760
+ "finalizedAt": {
3761
+ "var": "$timestamp"
3762
+ },
3763
+ "vetoEndsAt": {
3764
+ "+": [
3765
+ {
3766
+ "var": "$timestamp"
3767
+ },
3768
+ {
3769
+ "var": "state.config.vetoPeriodMs"
3770
+ }
3771
+ ]
3772
+ }
3773
+ }
3774
+ ]
3775
+ },
3776
+ "dependencies": []
3777
+ },
3778
+ {
3779
+ "from": "ACTIVE",
3780
+ "to": "DEFEATED",
3781
+ "eventName": "finalize_voting",
3782
+ "guard": {
3783
+ "and": [
3784
+ {
3785
+ ">=": [
3786
+ {
3787
+ "var": "$timestamp"
3788
+ },
3789
+ {
3790
+ "var": "state.votingEndsAt"
3791
+ }
3792
+ ]
3793
+ },
3794
+ {
3795
+ "!": [
3796
+ {
3797
+ "var": "state.tally.passed"
3798
+ }
3799
+ ]
3800
+ }
3801
+ ]
3802
+ },
3803
+ "effect": {
3804
+ "merge": [
3805
+ {
3806
+ "var": "state"
3807
+ },
3808
+ {
3809
+ "status": "DEFEATED",
3810
+ "finalizedAt": {
3811
+ "var": "$timestamp"
3812
+ },
3813
+ "defeatReason": {
3814
+ "var": "state.tally.reason"
3815
+ }
3816
+ }
3817
+ ]
3818
+ },
3819
+ "dependencies": []
3820
+ },
3821
+ {
3822
+ "from": "PENDING",
3823
+ "to": "VETOED",
3824
+ "eventName": "veto",
3825
+ "guard": {
3826
+ "and": [
3827
+ {
3828
+ "<=": [
3829
+ {
3830
+ "var": "$timestamp"
3831
+ },
3832
+ {
3833
+ "var": "state.vetoEndsAt"
3834
+ }
3835
+ ]
3836
+ },
3837
+ {
3838
+ "in": [
3839
+ {
3840
+ "var": "event.agent"
3841
+ },
3842
+ {
3843
+ "var": "state.vetoers"
3844
+ }
3845
+ ]
3846
+ }
3847
+ ]
3848
+ },
3849
+ "effect": {
3850
+ "merge": [
3851
+ {
3852
+ "var": "state"
3853
+ },
3854
+ {
3855
+ "status": "VETOED",
3856
+ "vetoedBy": {
3857
+ "var": "event.agent"
3858
+ },
3859
+ "vetoReason": {
3860
+ "var": "event.reason"
3861
+ },
3862
+ "vetoedAt": {
3863
+ "var": "$timestamp"
3864
+ }
3865
+ }
3866
+ ]
3867
+ },
3868
+ "dependencies": []
3869
+ },
3870
+ {
3871
+ "from": "PENDING",
3872
+ "to": "EXECUTING",
3873
+ "eventName": "execute",
3874
+ "guard": {
3875
+ "and": [
3876
+ {
3877
+ ">=": [
3878
+ {
3879
+ "var": "$timestamp"
3880
+ },
3881
+ {
3882
+ "var": "state.vetoEndsAt"
3883
+ }
3884
+ ]
3885
+ },
3886
+ {
3887
+ "in": [
3888
+ {
3889
+ "var": "event.agent"
3890
+ },
3891
+ {
3892
+ "var": "state.executors"
3893
+ }
3894
+ ]
3895
+ }
3896
+ ]
3897
+ },
3898
+ "effect": {
3899
+ "merge": [
3900
+ {
3901
+ "var": "state"
3902
+ },
3903
+ {
3904
+ "status": "EXECUTING",
3905
+ "executedBy": {
3906
+ "var": "event.agent"
3907
+ },
3908
+ "executionStartedAt": {
3909
+ "var": "$timestamp"
3910
+ }
3911
+ }
3912
+ ]
3913
+ },
3914
+ "dependencies": []
3915
+ },
3916
+ {
3917
+ "from": "EXECUTING",
3918
+ "to": "EXECUTED",
3919
+ "eventName": "complete",
3920
+ "guard": {
3921
+ "in": [
3922
+ {
3923
+ "var": "event.agent"
3924
+ },
3925
+ {
3926
+ "var": "state.executors"
3927
+ }
3928
+ ]
3929
+ },
3930
+ "effect": {
3931
+ "merge": [
3932
+ {
3933
+ "var": "state"
3934
+ },
3935
+ {
3936
+ "status": "EXECUTED",
3937
+ "completedAt": {
3938
+ "var": "$timestamp"
3939
+ },
3940
+ "executionProof": {
3941
+ "var": "event.proof"
3942
+ }
3943
+ }
3944
+ ]
3945
+ },
3946
+ "dependencies": []
3947
+ },
3948
+ {
3949
+ "from": "DRAFT",
3950
+ "to": "CANCELLED",
3951
+ "eventName": "cancel",
3952
+ "guard": {
3953
+ "===": [
3954
+ {
3955
+ "var": "event.agent"
3956
+ },
3957
+ {
3958
+ "var": "state.proposer"
3959
+ }
3960
+ ]
3961
+ },
3962
+ "effect": {
3963
+ "merge": [
3964
+ {
3965
+ "var": "state"
3966
+ },
3967
+ {
3968
+ "status": "CANCELLED",
3969
+ "cancelledAt": {
3970
+ "var": "$timestamp"
3971
+ }
3972
+ }
3973
+ ]
3974
+ },
3975
+ "dependencies": []
3976
+ },
3977
+ {
3978
+ "from": "ACTIVE",
3979
+ "to": "CANCELLED",
3980
+ "eventName": "cancel",
3981
+ "guard": {
3982
+ "or": [
3983
+ {
3984
+ "===": [
3985
+ {
3986
+ "var": "event.agent"
3987
+ },
3988
+ {
3989
+ "var": "state.proposer"
3990
+ }
3991
+ ]
3992
+ },
3993
+ {
3994
+ "in": [
3995
+ {
3996
+ "var": "event.agent"
3997
+ },
3998
+ {
3999
+ "var": "state.admins"
4000
+ }
4001
+ ]
4002
+ }
4003
+ ]
4004
+ },
4005
+ "effect": {
4006
+ "merge": [
4007
+ {
4008
+ "var": "state"
4009
+ },
4010
+ {
4011
+ "status": "CANCELLED",
4012
+ "cancelledBy": {
4013
+ "var": "event.agent"
4014
+ },
4015
+ "cancelledAt": {
4016
+ "var": "$timestamp"
4017
+ }
4018
+ }
4019
+ ]
4020
+ },
4021
+ "dependencies": []
4022
+ },
4023
+ {
4024
+ "from": "ACTIVE",
4025
+ "to": "EXPIRED",
4026
+ "eventName": "expire",
4027
+ "guard": {
4028
+ ">": [
4029
+ {
4030
+ "var": "$timestamp"
4031
+ },
4032
+ {
4033
+ "+": [
4034
+ {
4035
+ "var": "state.votingEndsAt"
4036
+ },
4037
+ {
4038
+ "var": "state.config.gracePeriodMs"
4039
+ }
4040
+ ]
4041
+ }
4042
+ ]
4043
+ },
4044
+ "effect": {
4045
+ "merge": [
4046
+ {
4047
+ "var": "state"
4048
+ },
4049
+ {
4050
+ "status": "EXPIRED",
4051
+ "expiredAt": {
4052
+ "var": "$timestamp"
4053
+ }
4054
+ }
4055
+ ]
4056
+ },
4057
+ "dependencies": []
4058
+ }
4059
+ ],
4060
+ "presets": {
4061
+ "_comment": "Common governance configurations",
4062
+ "bilateral": {
4063
+ "description": "Two-party mutual consent (like a contract)",
4064
+ "config": {
4065
+ "votingMechanism": "simple",
4066
+ "quorumType": "absolute",
4067
+ "quorumValue": 2,
4068
+ "passingThreshold": 1,
4069
+ "allowDelegation": false,
4070
+ "openVoting": false
4071
+ }
4072
+ },
4073
+ "multisig": {
4074
+ "description": "N-of-M threshold signing",
4075
+ "config": {
4076
+ "votingMechanism": "simple",
4077
+ "quorumType": "absolute",
4078
+ "passingThreshold": 0.6,
4079
+ "vetoPeriodMs": 0,
4080
+ "allowDelegation": false
4081
+ }
4082
+ },
4083
+ "council": {
4084
+ "description": "Small elected/appointed body",
4085
+ "config": {
4086
+ "votingMechanism": "simple",
4087
+ "quorumType": "percentage",
4088
+ "quorumValue": 0.5,
4089
+ "passingThreshold": 0.5,
4090
+ "openVoting": false,
4091
+ "allowDelegation": true
4092
+ }
4093
+ },
4094
+ "liquid_democracy": {
4095
+ "description": "Delegatable voting power",
4096
+ "config": {
4097
+ "votingMechanism": "simple",
4098
+ "allowDelegation": true,
4099
+ "openVoting": true,
4100
+ "onePersonOneVote": true
4101
+ }
4102
+ },
4103
+ "conviction": {
4104
+ "description": "Time-weighted conviction voting",
4105
+ "config": {
4106
+ "votingMechanism": "conviction",
4107
+ "allowDelegation": true,
4108
+ "convictionHalfLifeMs": 604800000
4109
+ }
4110
+ },
4111
+ "quadratic": {
4112
+ "description": "Quadratic voting to reduce whale power",
4113
+ "config": {
4114
+ "votingMechanism": "quadratic",
4115
+ "onePersonOneVote": false
4116
+ }
4117
+ },
4118
+ "dictator": {
4119
+ "description": "Single admin with full control",
4120
+ "config": {
4121
+ "votingMechanism": "simple",
4122
+ "quorumType": "absolute",
4123
+ "quorumValue": 1,
4124
+ "passingThreshold": 1,
4125
+ "vetoPeriodMs": 0,
4126
+ "allowDelegation": false
4127
+ }
4128
+ }
4129
+ }
4130
+ };
4131
+ exports.govSimpleDef = {
4132
+ "metadata": {
4133
+ "name": "Governance",
4134
+ "description": "Simple org governance: manage members, update rules, resolve disputes",
4135
+ "version": "1.0.0"
4136
+ },
4137
+ "states": {
4138
+ "ACTIVE": {
4139
+ "id": "ACTIVE",
4140
+ "isFinal": false,
4141
+ "metadata": null
4142
+ },
4143
+ "VOTING": {
4144
+ "id": "VOTING",
4145
+ "isFinal": false,
4146
+ "metadata": null
4147
+ },
4148
+ "DISPUTE": {
4149
+ "id": "DISPUTE",
4150
+ "isFinal": false,
4151
+ "metadata": null
4152
+ },
4153
+ "DISSOLVED": {
4154
+ "id": "DISSOLVED",
4155
+ "isFinal": true,
4156
+ "metadata": null
4157
+ }
4158
+ },
4159
+ "initialState": "ACTIVE",
4160
+ "transitions": [
4161
+ {
4162
+ "from": "ACTIVE",
4163
+ "to": "ACTIVE",
4164
+ "eventName": "add_member",
4165
+ "guard": {
4166
+ "in": [
4167
+ {
4168
+ "var": "event.agent"
4169
+ },
4170
+ {
4171
+ "var": "state.admins"
4172
+ }
4173
+ ]
4174
+ },
4175
+ "effect": {
4176
+ "merge": [
4177
+ {
4178
+ "var": "state"
4179
+ },
4180
+ {
4181
+ "members": {
4182
+ "setKey": [
4183
+ {
4184
+ "var": "state.members"
4185
+ },
4186
+ {
4187
+ "var": "event.member"
4188
+ },
4189
+ {
4190
+ "role": {
4191
+ "var": "event.role"
4192
+ },
4193
+ "addedAt": {
4194
+ "var": "$timestamp"
4195
+ }
4196
+ }
4197
+ ]
4198
+ }
4199
+ }
4200
+ ]
4201
+ },
4202
+ "dependencies": []
4203
+ },
4204
+ {
4205
+ "from": "ACTIVE",
4206
+ "to": "ACTIVE",
4207
+ "eventName": "remove_member",
4208
+ "guard": {
4209
+ "in": [
4210
+ {
4211
+ "var": "event.agent"
4212
+ },
4213
+ {
4214
+ "var": "state.admins"
4215
+ }
4216
+ ]
4217
+ },
4218
+ "effect": {
4219
+ "merge": [
4220
+ {
4221
+ "var": "state"
4222
+ },
4223
+ {
4224
+ "members": {
4225
+ "deleteKey": [
4226
+ {
4227
+ "var": "state.members"
4228
+ },
4229
+ {
4230
+ "var": "event.member"
4231
+ }
4232
+ ]
4233
+ }
4234
+ }
4235
+ ]
4236
+ },
4237
+ "dependencies": []
4238
+ },
4239
+ {
4240
+ "from": "ACTIVE",
4241
+ "to": "VOTING",
4242
+ "eventName": "propose",
4243
+ "guard": {
4244
+ "getKey": [
4245
+ {
4246
+ "var": "state.members"
4247
+ },
4248
+ {
4249
+ "var": "event.agent"
4250
+ }
4251
+ ]
4252
+ },
4253
+ "effect": {
4254
+ "merge": [
4255
+ {
4256
+ "var": "state"
4257
+ },
4258
+ {
4259
+ "proposal": {
4260
+ "id": {
4261
+ "var": "event.proposalId"
4262
+ },
4263
+ "type": {
4264
+ "var": "event.type"
4265
+ },
4266
+ "changes": {
4267
+ "var": "event.changes"
4268
+ },
4269
+ "proposer": {
4270
+ "var": "event.agent"
4271
+ },
4272
+ "proposedAt": {
4273
+ "var": "$timestamp"
4274
+ },
4275
+ "deadline": {
4276
+ "+": [
4277
+ {
4278
+ "var": "$timestamp"
4279
+ },
4280
+ {
4281
+ "var": "state.votingPeriodMs"
4282
+ }
4283
+ ]
4284
+ }
4285
+ },
4286
+ "votes": {}
4287
+ }
4288
+ ]
4289
+ },
4290
+ "dependencies": []
4291
+ },
4292
+ {
4293
+ "from": "VOTING",
4294
+ "to": "VOTING",
4295
+ "eventName": "vote",
4296
+ "guard": {
4297
+ "and": [
4298
+ {
4299
+ "getKey": [
4300
+ {
4301
+ "var": "state.members"
4302
+ },
4303
+ {
4304
+ "var": "event.agent"
4305
+ }
4306
+ ]
4307
+ },
4308
+ {
4309
+ "!": [
4310
+ {
4311
+ "getKey": [
4312
+ {
4313
+ "var": "state.votes"
4314
+ },
4315
+ {
4316
+ "var": "event.agent"
4317
+ }
4318
+ ]
4319
+ }
4320
+ ]
4321
+ }
4322
+ ]
4323
+ },
4324
+ "effect": {
4325
+ "merge": [
4326
+ {
4327
+ "var": "state"
4328
+ },
4329
+ {
4330
+ "votes": {
4331
+ "setKey": [
4332
+ {
4333
+ "var": "state.votes"
4334
+ },
4335
+ {
4336
+ "var": "event.agent"
4337
+ },
4338
+ {
4339
+ "vote": {
4340
+ "var": "event.vote"
4341
+ },
4342
+ "votedAt": {
4343
+ "var": "$timestamp"
4344
+ }
4345
+ }
4346
+ ]
4347
+ }
4348
+ }
4349
+ ]
4350
+ },
4351
+ "dependencies": []
4352
+ },
4353
+ {
4354
+ "from": "VOTING",
4355
+ "to": "ACTIVE",
4356
+ "eventName": "finalize",
4357
+ "guard": {
4358
+ ">=": [
4359
+ {
4360
+ "var": "event.forCount"
4361
+ },
4362
+ {
4363
+ "*": [
4364
+ {
4365
+ "size": {
4366
+ "var": "state.members"
4367
+ }
4368
+ },
4369
+ {
4370
+ "var": "state.passingThreshold"
4371
+ }
4372
+ ]
4373
+ }
4374
+ ]
4375
+ },
4376
+ "effect": {
4377
+ "merge": [
4378
+ {
4379
+ "var": "state"
4380
+ },
4381
+ {
4382
+ "rules": {
4383
+ "merge": [
4384
+ {
4385
+ "var": "state.rules"
4386
+ },
4387
+ {
4388
+ "var": "state.proposal.changes"
4389
+ }
4390
+ ]
4391
+ },
4392
+ "history": {
4393
+ "cat": [
4394
+ {
4395
+ "var": "state.history"
4396
+ },
4397
+ [
4398
+ {
4399
+ "type": "rule_change",
4400
+ "proposal": {
4401
+ "var": "state.proposal"
4402
+ },
4403
+ "outcome": "passed",
4404
+ "finalizedAt": {
4405
+ "var": "$timestamp"
4406
+ }
4407
+ }
4408
+ ]
4409
+ ]
4410
+ },
4411
+ "proposal": null,
4412
+ "votes": {}
4413
+ }
4414
+ ]
4415
+ },
4416
+ "dependencies": []
4417
+ },
4418
+ {
4419
+ "from": "VOTING",
4420
+ "to": "ACTIVE",
4421
+ "eventName": "finalize",
4422
+ "guard": {
4423
+ "<": [
4424
+ {
4425
+ "var": "event.forCount"
4426
+ },
4427
+ {
4428
+ "*": [
4429
+ {
4430
+ "size": {
4431
+ "var": "state.members"
4432
+ }
4433
+ },
4434
+ {
4435
+ "var": "state.passingThreshold"
4436
+ }
4437
+ ]
4438
+ }
4439
+ ]
4440
+ },
4441
+ "effect": {
4442
+ "merge": [
4443
+ {
4444
+ "var": "state"
4445
+ },
4446
+ {
4447
+ "history": {
4448
+ "cat": [
4449
+ {
4450
+ "var": "state.history"
4451
+ },
4452
+ [
4453
+ {
4454
+ "type": "rule_change",
4455
+ "proposal": {
4456
+ "var": "state.proposal"
4457
+ },
4458
+ "outcome": "failed",
4459
+ "finalizedAt": {
4460
+ "var": "$timestamp"
4461
+ }
4462
+ }
4463
+ ]
4464
+ ]
4465
+ },
4466
+ "proposal": null,
4467
+ "votes": {}
4468
+ }
4469
+ ]
4470
+ },
4471
+ "dependencies": []
4472
+ },
4473
+ {
4474
+ "from": "ACTIVE",
4475
+ "to": "DISPUTE",
4476
+ "eventName": "file_dispute",
4477
+ "guard": {
4478
+ "getKey": [
4479
+ {
4480
+ "var": "state.members"
4481
+ },
4482
+ {
4483
+ "var": "event.agent"
4484
+ }
4485
+ ]
4486
+ },
4487
+ "effect": {
4488
+ "merge": [
4489
+ {
4490
+ "var": "state"
4491
+ },
4492
+ {
4493
+ "dispute": {
4494
+ "id": {
4495
+ "var": "event.disputeId"
4496
+ },
4497
+ "plaintiff": {
4498
+ "var": "event.agent"
4499
+ },
4500
+ "defendant": {
4501
+ "var": "event.defendant"
4502
+ },
4503
+ "claim": {
4504
+ "var": "event.claim"
4505
+ },
4506
+ "filedAt": {
4507
+ "var": "$timestamp"
4508
+ },
4509
+ "evidence": []
4510
+ },
4511
+ "votes": {}
4512
+ }
4513
+ ]
4514
+ },
4515
+ "dependencies": []
4516
+ },
4517
+ {
4518
+ "from": "DISPUTE",
4519
+ "to": "DISPUTE",
4520
+ "eventName": "submit_evidence",
4521
+ "guard": {
4522
+ "or": [
4523
+ {
4524
+ "===": [
4525
+ {
4526
+ "var": "event.agent"
4527
+ },
4528
+ {
4529
+ "var": "state.dispute.plaintiff"
4530
+ }
4531
+ ]
4532
+ },
4533
+ {
4534
+ "===": [
4535
+ {
4536
+ "var": "event.agent"
4537
+ },
4538
+ {
4539
+ "var": "state.dispute.defendant"
4540
+ }
4541
+ ]
4542
+ }
4543
+ ]
4544
+ },
4545
+ "effect": {
4546
+ "merge": [
4547
+ {
4548
+ "var": "state"
4549
+ },
4550
+ {
4551
+ "dispute": {
4552
+ "merge": [
4553
+ {
4554
+ "var": "state.dispute"
4555
+ },
4556
+ {
4557
+ "evidence": {
4558
+ "cat": [
4559
+ {
4560
+ "var": "state.dispute.evidence"
4561
+ },
4562
+ [
4563
+ {
4564
+ "from": {
4565
+ "var": "event.agent"
4566
+ },
4567
+ "content": {
4568
+ "var": "event.content"
4569
+ },
4570
+ "at": {
4571
+ "var": "$timestamp"
4572
+ }
4573
+ }
4574
+ ]
4575
+ ]
4576
+ }
4577
+ }
4578
+ ]
4579
+ }
4580
+ }
4581
+ ]
4582
+ },
4583
+ "dependencies": []
4584
+ },
4585
+ {
4586
+ "from": "DISPUTE",
4587
+ "to": "DISPUTE",
4588
+ "eventName": "vote",
4589
+ "guard": {
4590
+ "and": [
4591
+ {
4592
+ "getKey": [
4593
+ {
4594
+ "var": "state.members"
4595
+ },
4596
+ {
4597
+ "var": "event.agent"
4598
+ }
4599
+ ]
4600
+ },
4601
+ {
4602
+ "!==": [
4603
+ {
4604
+ "var": "event.agent"
4605
+ },
4606
+ {
4607
+ "var": "state.dispute.plaintiff"
4608
+ }
4609
+ ]
4610
+ },
4611
+ {
4612
+ "!==": [
4613
+ {
4614
+ "var": "event.agent"
4615
+ },
4616
+ {
4617
+ "var": "state.dispute.defendant"
4618
+ }
4619
+ ]
4620
+ },
4621
+ {
4622
+ "!": [
4623
+ {
4624
+ "getKey": [
4625
+ {
4626
+ "var": "state.votes"
4627
+ },
4628
+ {
4629
+ "var": "event.agent"
4630
+ }
4631
+ ]
4632
+ }
4633
+ ]
4634
+ }
4635
+ ]
4636
+ },
4637
+ "effect": {
4638
+ "merge": [
4639
+ {
4640
+ "var": "state"
4641
+ },
4642
+ {
4643
+ "votes": {
4644
+ "setKey": [
4645
+ {
4646
+ "var": "state.votes"
4647
+ },
4648
+ {
4649
+ "var": "event.agent"
4650
+ },
4651
+ {
4652
+ "ruling": {
4653
+ "var": "event.ruling"
4654
+ },
4655
+ "votedAt": {
4656
+ "var": "$timestamp"
4657
+ }
4658
+ }
4659
+ ]
4660
+ }
4661
+ }
4662
+ ]
4663
+ },
4664
+ "dependencies": []
4665
+ },
4666
+ {
4667
+ "from": "DISPUTE",
4668
+ "to": "ACTIVE",
4669
+ "eventName": "resolve",
4670
+ "guard": {
4671
+ ">=": [
4672
+ {
4673
+ "size": {
4674
+ "var": "state.votes"
4675
+ }
4676
+ },
4677
+ {
4678
+ "var": "state.disputeQuorum"
4679
+ }
4680
+ ]
4681
+ },
4682
+ "effect": {
4683
+ "merge": [
4684
+ {
4685
+ "var": "state"
4686
+ },
4687
+ {
4688
+ "history": {
4689
+ "cat": [
4690
+ {
4691
+ "var": "state.history"
4692
+ },
4693
+ [
4694
+ {
4695
+ "type": "dispute",
4696
+ "dispute": {
4697
+ "var": "state.dispute"
4698
+ },
4699
+ "ruling": {
4700
+ "var": "event.ruling"
4701
+ },
4702
+ "remedy": {
4703
+ "var": "event.remedy"
4704
+ },
4705
+ "resolvedAt": {
4706
+ "var": "$timestamp"
4707
+ }
4708
+ }
4709
+ ]
4710
+ ]
4711
+ },
4712
+ "dispute": null,
4713
+ "votes": {}
4714
+ }
4715
+ ]
4716
+ },
4717
+ "dependencies": []
4718
+ },
4719
+ {
4720
+ "from": "ACTIVE",
4721
+ "to": "DISSOLVED",
4722
+ "eventName": "dissolve",
4723
+ "guard": {
4724
+ ">=": [
4725
+ {
4726
+ "var": "event.approvalCount"
4727
+ },
4728
+ {
4729
+ "*": [
4730
+ {
4731
+ "size": {
4732
+ "var": "state.members"
4733
+ }
4734
+ },
4735
+ 0.9
4736
+ ]
4737
+ }
4738
+ ]
4739
+ },
4740
+ "effect": {
4741
+ "merge": [
4742
+ {
4743
+ "var": "state"
4744
+ },
4745
+ {
4746
+ "dissolvedAt": {
4747
+ "var": "$timestamp"
4748
+ }
4749
+ }
4750
+ ]
4751
+ },
4752
+ "dependencies": []
4753
+ }
4754
+ ]
4755
+ };