@yigemo/choosefire 0.1.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 (62) hide show
  1. package/README.md +83 -0
  2. package/contracts/choosefire-family-wealth/v2/capability-matrix.v1.json +464 -0
  3. package/contracts/choosefire-family-wealth/v2/golden/performance.v1.json +79 -0
  4. package/contracts/choosefire-family-wealth/v2/golden/r2-contract.v1.json +1070 -0
  5. package/contracts/choosefire-family-wealth/v2/golden/scenarios.v1.json +241 -0
  6. package/contracts/choosefire-family-wealth/v2/golden/transport.v1.json +207 -0
  7. package/contracts/choosefire-family-wealth/v2/manifest.json +58 -0
  8. package/contracts/choosefire-family-wealth/v2/openapi.generated.json +2605 -0
  9. package/contracts/choosefire-family-wealth/v2/runtime-schemas/family-wealth.v2.schema.json +2127 -0
  10. package/contracts/choosefire-family-wealth/v2/taxonomies/account-types.v1.json +41 -0
  11. package/contracts/choosefire-family-wealth/v2/taxonomies/asset-classes.v1.json +45 -0
  12. package/contracts/choosefire-family-wealth/v2/taxonomies/transaction-types.v1.json +57 -0
  13. package/contracts/choosefire-financial-workspace/v1/field-registry.generated.json +137 -0
  14. package/contracts/choosefire-financial-workspace/v1/field-registry.manifest.json +11 -0
  15. package/contracts/choosefire-financial-workspace/v1/golden/commands.invalid.json +583 -0
  16. package/contracts/choosefire-financial-workspace/v1/golden/commands.valid.json +201 -0
  17. package/contracts/choosefire-financial-workspace/v1/golden/cursors.invalid.json +82 -0
  18. package/contracts/choosefire-financial-workspace/v1/golden/errors.invalid.json +191 -0
  19. package/contracts/choosefire-financial-workspace/v1/golden/errors.valid.json +298 -0
  20. package/contracts/choosefire-financial-workspace/v1/golden/fingerprints.json +105 -0
  21. package/contracts/choosefire-financial-workspace/v1/golden/projections.invalid.json +3543 -0
  22. package/contracts/choosefire-financial-workspace/v1/golden/projections.valid.json +2953 -0
  23. package/contracts/choosefire-financial-workspace/v1/manifest.json +69 -0
  24. package/contracts/choosefire-financial-workspace/v1/openapi.generated.json +1987 -0
  25. package/contracts/choosefire-financial-workspace/v1/runtime-schemas/financial-workspace.v1.schema.json +1496 -0
  26. package/dist/args.d.ts +5 -0
  27. package/dist/args.js +60 -0
  28. package/dist/args.js.map +1 -0
  29. package/dist/auth.d.ts +55 -0
  30. package/dist/auth.js +480 -0
  31. package/dist/auth.js.map +1 -0
  32. package/dist/commands.d.ts +4 -0
  33. package/dist/commands.js +637 -0
  34. package/dist/commands.js.map +1 -0
  35. package/dist/config.d.ts +10 -0
  36. package/dist/config.js +74 -0
  37. package/dist/config.js.map +1 -0
  38. package/dist/family-wealth-v2-contracts.d.ts +276 -0
  39. package/dist/family-wealth-v2-contracts.js +77 -0
  40. package/dist/family-wealth-v2-contracts.js.map +1 -0
  41. package/dist/family-wealth-v2-http.d.ts +65 -0
  42. package/dist/family-wealth-v2-http.js +340 -0
  43. package/dist/family-wealth-v2-http.js.map +1 -0
  44. package/dist/financial-workspace-contracts.d.ts +191 -0
  45. package/dist/financial-workspace-contracts.js +282 -0
  46. package/dist/financial-workspace-contracts.js.map +1 -0
  47. package/dist/http.d.ts +76 -0
  48. package/dist/http.js +446 -0
  49. package/dist/http.js.map +1 -0
  50. package/dist/index.d.ts +2 -0
  51. package/dist/index.js +50 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/output.d.ts +18 -0
  54. package/dist/output.js +111 -0
  55. package/dist/output.js.map +1 -0
  56. package/dist/token-store.d.ts +27 -0
  57. package/dist/token-store.js +408 -0
  58. package/dist/token-store.js.map +1 -0
  59. package/dist/types.d.ts +65 -0
  60. package/dist/types.js +5 -0
  61. package/dist/types.js.map +1 -0
  62. package/package.json +43 -0
@@ -0,0 +1,1496 @@
1
+ {
2
+ "$defs": {
3
+ "AccountAuthorityV1": {
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "householdId": {
7
+ "maxLength": 200,
8
+ "minLength": 1,
9
+ "type": "string"
10
+ },
11
+ "mode": {
12
+ "const": "account"
13
+ },
14
+ "status": {
15
+ "const": "authoritative"
16
+ },
17
+ "storeId": {
18
+ "maxLength": 200,
19
+ "minLength": 1,
20
+ "type": "string"
21
+ }
22
+ },
23
+ "required": [
24
+ "mode",
25
+ "storeId",
26
+ "householdId",
27
+ "status"
28
+ ],
29
+ "type": "object"
30
+ },
31
+ "CursorExpiredErrorDataV1": {
32
+ "additionalProperties": false,
33
+ "properties": {
34
+ "recovery": {
35
+ "const": "read_snapshot"
36
+ }
37
+ },
38
+ "required": [
39
+ "recovery"
40
+ ],
41
+ "type": "object"
42
+ },
43
+ "EmptyErrorDataV1": {
44
+ "additionalProperties": false,
45
+ "maxProperties": 0,
46
+ "properties": {},
47
+ "required": [],
48
+ "type": "object"
49
+ },
50
+ "ErrorEnvelope400V1": {
51
+ "additionalProperties": false,
52
+ "properties": {
53
+ "code": {
54
+ "enum": [
55
+ "INVALID_HTTP_FRAMING",
56
+ "INVALID_JSON",
57
+ "VALIDATION_ERROR"
58
+ ]
59
+ },
60
+ "error": {
61
+ "additionalProperties": false,
62
+ "properties": {
63
+ "data": {
64
+ "$ref": "#/$defs/EmptyErrorDataV1"
65
+ },
66
+ "message": {
67
+ "maxLength": 500,
68
+ "minLength": 1,
69
+ "type": "string"
70
+ },
71
+ "requestId": {
72
+ "maxLength": 200,
73
+ "minLength": 1,
74
+ "type": "string"
75
+ }
76
+ },
77
+ "required": [
78
+ "message",
79
+ "data"
80
+ ],
81
+ "type": "object"
82
+ },
83
+ "kind": {
84
+ "const": "financial_workspace_error.v1"
85
+ },
86
+ "status": {
87
+ "const": "error"
88
+ },
89
+ "success": {
90
+ "const": false
91
+ }
92
+ },
93
+ "required": [
94
+ "kind",
95
+ "code",
96
+ "success",
97
+ "status",
98
+ "error"
99
+ ],
100
+ "type": "object"
101
+ },
102
+ "ErrorEnvelope401V1": {
103
+ "additionalProperties": false,
104
+ "properties": {
105
+ "code": {
106
+ "enum": [
107
+ "AUTH_REQUIRED"
108
+ ]
109
+ },
110
+ "error": {
111
+ "additionalProperties": false,
112
+ "properties": {
113
+ "data": {
114
+ "$ref": "#/$defs/EmptyErrorDataV1"
115
+ },
116
+ "message": {
117
+ "maxLength": 500,
118
+ "minLength": 1,
119
+ "type": "string"
120
+ },
121
+ "requestId": {
122
+ "maxLength": 200,
123
+ "minLength": 1,
124
+ "type": "string"
125
+ }
126
+ },
127
+ "required": [
128
+ "message",
129
+ "data"
130
+ ],
131
+ "type": "object"
132
+ },
133
+ "kind": {
134
+ "const": "financial_workspace_error.v1"
135
+ },
136
+ "status": {
137
+ "const": "error"
138
+ },
139
+ "success": {
140
+ "const": false
141
+ }
142
+ },
143
+ "required": [
144
+ "kind",
145
+ "code",
146
+ "success",
147
+ "status",
148
+ "error"
149
+ ],
150
+ "type": "object"
151
+ },
152
+ "ErrorEnvelope403V1": {
153
+ "additionalProperties": false,
154
+ "properties": {
155
+ "code": {
156
+ "enum": [
157
+ "ACCOUNT_SCOPE_REQUIRED",
158
+ "CSRF_VALIDATION_FAILED"
159
+ ]
160
+ },
161
+ "error": {
162
+ "additionalProperties": false,
163
+ "properties": {
164
+ "data": {
165
+ "$ref": "#/$defs/EmptyErrorDataV1"
166
+ },
167
+ "message": {
168
+ "maxLength": 500,
169
+ "minLength": 1,
170
+ "type": "string"
171
+ },
172
+ "requestId": {
173
+ "maxLength": 200,
174
+ "minLength": 1,
175
+ "type": "string"
176
+ }
177
+ },
178
+ "required": [
179
+ "message",
180
+ "data"
181
+ ],
182
+ "type": "object"
183
+ },
184
+ "kind": {
185
+ "const": "financial_workspace_error.v1"
186
+ },
187
+ "status": {
188
+ "const": "error"
189
+ },
190
+ "success": {
191
+ "const": false
192
+ }
193
+ },
194
+ "required": [
195
+ "kind",
196
+ "code",
197
+ "success",
198
+ "status",
199
+ "error"
200
+ ],
201
+ "type": "object"
202
+ },
203
+ "ErrorEnvelope404V1": {
204
+ "additionalProperties": false,
205
+ "properties": {
206
+ "code": {
207
+ "enum": [
208
+ "WORKSPACE_NOT_INITIALIZED"
209
+ ]
210
+ },
211
+ "error": {
212
+ "additionalProperties": false,
213
+ "properties": {
214
+ "data": {
215
+ "$ref": "#/$defs/EmptyErrorDataV1"
216
+ },
217
+ "message": {
218
+ "maxLength": 500,
219
+ "minLength": 1,
220
+ "type": "string"
221
+ },
222
+ "requestId": {
223
+ "maxLength": 200,
224
+ "minLength": 1,
225
+ "type": "string"
226
+ }
227
+ },
228
+ "required": [
229
+ "message",
230
+ "data"
231
+ ],
232
+ "type": "object"
233
+ },
234
+ "kind": {
235
+ "const": "financial_workspace_error.v1"
236
+ },
237
+ "status": {
238
+ "const": "error"
239
+ },
240
+ "success": {
241
+ "const": false
242
+ }
243
+ },
244
+ "required": [
245
+ "kind",
246
+ "code",
247
+ "success",
248
+ "status",
249
+ "error"
250
+ ],
251
+ "type": "object"
252
+ },
253
+ "ErrorEnvelope409V1": {
254
+ "oneOf": [
255
+ {
256
+ "additionalProperties": false,
257
+ "properties": {
258
+ "code": {
259
+ "enum": [
260
+ "WORKSPACE_ALREADY_INITIALIZED",
261
+ "WORKSPACE_AUTHORITY_MISMATCH",
262
+ "IDEMPOTENCY_CONFLICT",
263
+ "PROTECTED_FACT_CHANGE_REQUIRES_PREVIEW"
264
+ ]
265
+ },
266
+ "error": {
267
+ "additionalProperties": false,
268
+ "properties": {
269
+ "data": {
270
+ "$ref": "#/$defs/EmptyErrorDataV1"
271
+ },
272
+ "message": {
273
+ "maxLength": 500,
274
+ "minLength": 1,
275
+ "type": "string"
276
+ },
277
+ "requestId": {
278
+ "maxLength": 200,
279
+ "minLength": 1,
280
+ "type": "string"
281
+ }
282
+ },
283
+ "required": [
284
+ "message",
285
+ "data"
286
+ ],
287
+ "type": "object"
288
+ },
289
+ "kind": {
290
+ "const": "financial_workspace_error.v1"
291
+ },
292
+ "status": {
293
+ "const": "error"
294
+ },
295
+ "success": {
296
+ "const": false
297
+ }
298
+ },
299
+ "required": [
300
+ "kind",
301
+ "code",
302
+ "success",
303
+ "status",
304
+ "error"
305
+ ],
306
+ "type": "object"
307
+ },
308
+ {
309
+ "additionalProperties": false,
310
+ "properties": {
311
+ "code": {
312
+ "enum": [
313
+ "VERSION_CONFLICT"
314
+ ]
315
+ },
316
+ "error": {
317
+ "additionalProperties": false,
318
+ "properties": {
319
+ "data": {
320
+ "$ref": "#/$defs/VersionConflictErrorDataV1"
321
+ },
322
+ "message": {
323
+ "maxLength": 500,
324
+ "minLength": 1,
325
+ "type": "string"
326
+ },
327
+ "requestId": {
328
+ "maxLength": 200,
329
+ "minLength": 1,
330
+ "type": "string"
331
+ }
332
+ },
333
+ "required": [
334
+ "message",
335
+ "data"
336
+ ],
337
+ "type": "object"
338
+ },
339
+ "kind": {
340
+ "const": "financial_workspace_error.v1"
341
+ },
342
+ "status": {
343
+ "const": "error"
344
+ },
345
+ "success": {
346
+ "const": false
347
+ }
348
+ },
349
+ "required": [
350
+ "kind",
351
+ "code",
352
+ "success",
353
+ "status",
354
+ "error"
355
+ ],
356
+ "type": "object"
357
+ }
358
+ ]
359
+ },
360
+ "ErrorEnvelope410V1": {
361
+ "additionalProperties": false,
362
+ "properties": {
363
+ "code": {
364
+ "enum": [
365
+ "CURSOR_EXPIRED"
366
+ ]
367
+ },
368
+ "error": {
369
+ "additionalProperties": false,
370
+ "properties": {
371
+ "data": {
372
+ "$ref": "#/$defs/CursorExpiredErrorDataV1"
373
+ },
374
+ "message": {
375
+ "maxLength": 500,
376
+ "minLength": 1,
377
+ "type": "string"
378
+ },
379
+ "requestId": {
380
+ "maxLength": 200,
381
+ "minLength": 1,
382
+ "type": "string"
383
+ }
384
+ },
385
+ "required": [
386
+ "message",
387
+ "data"
388
+ ],
389
+ "type": "object"
390
+ },
391
+ "kind": {
392
+ "const": "financial_workspace_error.v1"
393
+ },
394
+ "status": {
395
+ "const": "error"
396
+ },
397
+ "success": {
398
+ "const": false
399
+ }
400
+ },
401
+ "required": [
402
+ "kind",
403
+ "code",
404
+ "success",
405
+ "status",
406
+ "error"
407
+ ],
408
+ "type": "object"
409
+ },
410
+ "ErrorEnvelope413V1": {
411
+ "additionalProperties": false,
412
+ "properties": {
413
+ "code": {
414
+ "enum": [
415
+ "PAYLOAD_TOO_LARGE"
416
+ ]
417
+ },
418
+ "error": {
419
+ "additionalProperties": false,
420
+ "properties": {
421
+ "data": {
422
+ "$ref": "#/$defs/EmptyErrorDataV1"
423
+ },
424
+ "message": {
425
+ "maxLength": 500,
426
+ "minLength": 1,
427
+ "type": "string"
428
+ },
429
+ "requestId": {
430
+ "maxLength": 200,
431
+ "minLength": 1,
432
+ "type": "string"
433
+ }
434
+ },
435
+ "required": [
436
+ "message",
437
+ "data"
438
+ ],
439
+ "type": "object"
440
+ },
441
+ "kind": {
442
+ "const": "financial_workspace_error.v1"
443
+ },
444
+ "status": {
445
+ "const": "error"
446
+ },
447
+ "success": {
448
+ "const": false
449
+ }
450
+ },
451
+ "required": [
452
+ "kind",
453
+ "code",
454
+ "success",
455
+ "status",
456
+ "error"
457
+ ],
458
+ "type": "object"
459
+ },
460
+ "ErrorEnvelope415V1": {
461
+ "additionalProperties": false,
462
+ "properties": {
463
+ "code": {
464
+ "enum": [
465
+ "UNSUPPORTED_MEDIA_TYPE"
466
+ ]
467
+ },
468
+ "error": {
469
+ "additionalProperties": false,
470
+ "properties": {
471
+ "data": {
472
+ "$ref": "#/$defs/EmptyErrorDataV1"
473
+ },
474
+ "message": {
475
+ "maxLength": 500,
476
+ "minLength": 1,
477
+ "type": "string"
478
+ },
479
+ "requestId": {
480
+ "maxLength": 200,
481
+ "minLength": 1,
482
+ "type": "string"
483
+ }
484
+ },
485
+ "required": [
486
+ "message",
487
+ "data"
488
+ ],
489
+ "type": "object"
490
+ },
491
+ "kind": {
492
+ "const": "financial_workspace_error.v1"
493
+ },
494
+ "status": {
495
+ "const": "error"
496
+ },
497
+ "success": {
498
+ "const": false
499
+ }
500
+ },
501
+ "required": [
502
+ "kind",
503
+ "code",
504
+ "success",
505
+ "status",
506
+ "error"
507
+ ],
508
+ "type": "object"
509
+ },
510
+ "ErrorEnvelope503V1": {
511
+ "oneOf": [
512
+ {
513
+ "additionalProperties": false,
514
+ "properties": {
515
+ "code": {
516
+ "enum": [
517
+ "TRANSACTION_RETRYABLE"
518
+ ]
519
+ },
520
+ "error": {
521
+ "additionalProperties": false,
522
+ "properties": {
523
+ "data": {
524
+ "$ref": "#/$defs/TransactionRetryableErrorDataV1"
525
+ },
526
+ "message": {
527
+ "maxLength": 500,
528
+ "minLength": 1,
529
+ "type": "string"
530
+ },
531
+ "requestId": {
532
+ "maxLength": 200,
533
+ "minLength": 1,
534
+ "type": "string"
535
+ }
536
+ },
537
+ "required": [
538
+ "message",
539
+ "data"
540
+ ],
541
+ "type": "object"
542
+ },
543
+ "kind": {
544
+ "const": "financial_workspace_error.v1"
545
+ },
546
+ "status": {
547
+ "const": "error"
548
+ },
549
+ "success": {
550
+ "const": false
551
+ }
552
+ },
553
+ "required": [
554
+ "kind",
555
+ "code",
556
+ "success",
557
+ "status",
558
+ "error"
559
+ ],
560
+ "type": "object"
561
+ },
562
+ {
563
+ "additionalProperties": false,
564
+ "properties": {
565
+ "code": {
566
+ "enum": [
567
+ "REMOTE_UNAVAILABLE"
568
+ ]
569
+ },
570
+ "error": {
571
+ "additionalProperties": false,
572
+ "properties": {
573
+ "data": {
574
+ "$ref": "#/$defs/EmptyErrorDataV1"
575
+ },
576
+ "message": {
577
+ "maxLength": 500,
578
+ "minLength": 1,
579
+ "type": "string"
580
+ },
581
+ "requestId": {
582
+ "maxLength": 200,
583
+ "minLength": 1,
584
+ "type": "string"
585
+ }
586
+ },
587
+ "required": [
588
+ "message",
589
+ "data"
590
+ ],
591
+ "type": "object"
592
+ },
593
+ "kind": {
594
+ "const": "financial_workspace_error.v1"
595
+ },
596
+ "status": {
597
+ "const": "error"
598
+ },
599
+ "success": {
600
+ "const": false
601
+ }
602
+ },
603
+ "required": [
604
+ "kind",
605
+ "code",
606
+ "success",
607
+ "status",
608
+ "error"
609
+ ],
610
+ "type": "object"
611
+ }
612
+ ]
613
+ },
614
+ "ErrorEnvelopeV1": {
615
+ "oneOf": [
616
+ {
617
+ "$ref": "#/$defs/ErrorEnvelope400V1"
618
+ },
619
+ {
620
+ "$ref": "#/$defs/ErrorEnvelope401V1"
621
+ },
622
+ {
623
+ "$ref": "#/$defs/ErrorEnvelope403V1"
624
+ },
625
+ {
626
+ "$ref": "#/$defs/ErrorEnvelope404V1"
627
+ },
628
+ {
629
+ "$ref": "#/$defs/ErrorEnvelope409V1"
630
+ },
631
+ {
632
+ "$ref": "#/$defs/ErrorEnvelope410V1"
633
+ },
634
+ {
635
+ "$ref": "#/$defs/ErrorEnvelope413V1"
636
+ },
637
+ {
638
+ "$ref": "#/$defs/ErrorEnvelope415V1"
639
+ },
640
+ {
641
+ "$ref": "#/$defs/ErrorEnvelope503V1"
642
+ }
643
+ ]
644
+ },
645
+ "FinancialFactProjectionV1": {
646
+ "additionalProperties": false,
647
+ "properties": {
648
+ "asOf": {
649
+ "format": "date-time",
650
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
651
+ "type": "string"
652
+ },
653
+ "factId": {
654
+ "maxLength": 200,
655
+ "minLength": 1,
656
+ "type": "string"
657
+ },
658
+ "field": {
659
+ "enum": [
660
+ "household.total_assets",
661
+ "household.long_term_allocatable_assets",
662
+ "household.spending.last_12_months",
663
+ "household.spending.last_12_months.necessary",
664
+ "household.spending.last_12_months.discretionary",
665
+ "household.monthly_contribution",
666
+ "household.liquid_assets",
667
+ "household.investments.total",
668
+ "household.total_debt"
669
+ ],
670
+ "type": "string"
671
+ },
672
+ "kind": {
673
+ "const": "financial_fact_projection.v1"
674
+ },
675
+ "recordedAt": {
676
+ "format": "date-time",
677
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
678
+ "type": "string"
679
+ },
680
+ "recordedVersion": {
681
+ "maximum": 9007199254740991,
682
+ "minimum": 0,
683
+ "type": "integer"
684
+ },
685
+ "status": {
686
+ "enum": [
687
+ "confirmed",
688
+ "estimated"
689
+ ]
690
+ },
691
+ "value": {
692
+ "$ref": "#/$defs/FinancialTypedValueV1"
693
+ }
694
+ },
695
+ "required": [
696
+ "kind",
697
+ "factId",
698
+ "field",
699
+ "value",
700
+ "status",
701
+ "asOf",
702
+ "recordedAt",
703
+ "recordedVersion"
704
+ ],
705
+ "type": "object"
706
+ },
707
+ "FinancialTypedValueInputV1": {
708
+ "additionalProperties": false,
709
+ "properties": {
710
+ "amount": {
711
+ "format": "choosefire-money-v1",
712
+ "type": "string"
713
+ },
714
+ "currency": {
715
+ "maxLength": 32,
716
+ "minLength": 3,
717
+ "pattern": "^\\s*[A-Za-z]{3}\\s*$",
718
+ "type": "string"
719
+ },
720
+ "kind": {
721
+ "const": "money.v1"
722
+ }
723
+ },
724
+ "required": [
725
+ "kind",
726
+ "amount",
727
+ "currency"
728
+ ],
729
+ "type": "object"
730
+ },
731
+ "FinancialTypedValueV1": {
732
+ "additionalProperties": false,
733
+ "properties": {
734
+ "amount": {
735
+ "format": "choosefire-money-v1",
736
+ "type": "string"
737
+ },
738
+ "currency": {
739
+ "pattern": "^[A-Z]{3}$",
740
+ "type": "string"
741
+ },
742
+ "kind": {
743
+ "const": "money.v1"
744
+ }
745
+ },
746
+ "required": [
747
+ "kind",
748
+ "amount",
749
+ "currency"
750
+ ],
751
+ "type": "object"
752
+ },
753
+ "FinancialWorkspaceActivityPageV1": {
754
+ "additionalProperties": false,
755
+ "properties": {
756
+ "authority": {
757
+ "$ref": "#/$defs/AccountAuthorityV1"
758
+ },
759
+ "contractVersion": {
760
+ "const": 1
761
+ },
762
+ "hasMore": {
763
+ "type": "boolean"
764
+ },
765
+ "items": {
766
+ "items": {
767
+ "$ref": "#/$defs/OperationProjectionV1"
768
+ },
769
+ "maxItems": 100,
770
+ "type": "array"
771
+ },
772
+ "kind": {
773
+ "const": "financial_workspace_activity_page.v1"
774
+ },
775
+ "nextCursor": {
776
+ "maxLength": 2048,
777
+ "minLength": 1,
778
+ "type": "string"
779
+ },
780
+ "projectionVersion": {
781
+ "const": 1
782
+ },
783
+ "throughVersion": {
784
+ "maximum": 9007199254740991,
785
+ "minimum": 0,
786
+ "type": "integer"
787
+ }
788
+ },
789
+ "required": [
790
+ "kind",
791
+ "authority",
792
+ "contractVersion",
793
+ "projectionVersion",
794
+ "throughVersion",
795
+ "items",
796
+ "nextCursor",
797
+ "hasMore"
798
+ ],
799
+ "type": "object"
800
+ },
801
+ "FinancialWorkspaceActivityQueryV1": {
802
+ "additionalProperties": false,
803
+ "properties": {
804
+ "cursor": {
805
+ "maxLength": 2048,
806
+ "minLength": 1,
807
+ "type": "string"
808
+ },
809
+ "limit": {
810
+ "maximum": 100,
811
+ "minimum": 1,
812
+ "type": "integer"
813
+ }
814
+ },
815
+ "required": [
816
+ "limit"
817
+ ],
818
+ "type": "object"
819
+ },
820
+ "FinancialWorkspaceCapabilitiesV1": {
821
+ "additionalProperties": false,
822
+ "properties": {
823
+ "kind": {
824
+ "const": "financial_workspace_capabilities.v1"
825
+ },
826
+ "protectedChange": {
827
+ "const": "unavailable"
828
+ },
829
+ "readable": {
830
+ "items": false,
831
+ "maxItems": 3,
832
+ "minItems": 3,
833
+ "prefixItems": [
834
+ {
835
+ "const": "snapshot"
836
+ },
837
+ {
838
+ "const": "summary"
839
+ },
840
+ {
841
+ "const": "activity"
842
+ }
843
+ ],
844
+ "type": "array"
845
+ },
846
+ "writable": {
847
+ "items": false,
848
+ "maxItems": 1,
849
+ "minItems": 1,
850
+ "prefixItems": [
851
+ {
852
+ "const": "fact.record"
853
+ }
854
+ ],
855
+ "type": "array"
856
+ }
857
+ },
858
+ "required": [
859
+ "kind",
860
+ "readable",
861
+ "writable",
862
+ "protectedChange"
863
+ ],
864
+ "type": "object"
865
+ },
866
+ "FinancialWorkspaceCommandReceiptV1": {
867
+ "additionalProperties": false,
868
+ "properties": {
869
+ "authority": {
870
+ "$ref": "#/$defs/AccountAuthorityV1"
871
+ },
872
+ "baseVersion": {
873
+ "maximum": 9007199254740991,
874
+ "minimum": 0,
875
+ "type": "integer"
876
+ },
877
+ "committedAt": {
878
+ "format": "date-time",
879
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
880
+ "type": "string"
881
+ },
882
+ "cursor": {
883
+ "maxLength": 2048,
884
+ "minLength": 1,
885
+ "type": "string"
886
+ },
887
+ "kind": {
888
+ "const": "financial_workspace_command_receipt.v1"
889
+ },
890
+ "operation": {
891
+ "$ref": "#/$defs/OperationProjectionV1"
892
+ },
893
+ "replayed": {
894
+ "type": "boolean"
895
+ },
896
+ "resultVersion": {
897
+ "maximum": 9007199254740991,
898
+ "minimum": 0,
899
+ "type": "integer"
900
+ }
901
+ },
902
+ "required": [
903
+ "kind",
904
+ "authority",
905
+ "operation",
906
+ "baseVersion",
907
+ "resultVersion",
908
+ "replayed",
909
+ "cursor",
910
+ "committedAt"
911
+ ],
912
+ "type": "object"
913
+ },
914
+ "FinancialWorkspaceEmptyRequestV1": {
915
+ "additionalProperties": false,
916
+ "properties": {},
917
+ "required": [],
918
+ "type": "object"
919
+ },
920
+ "FinancialWorkspaceFactRecordCommandV1": {
921
+ "additionalProperties": false,
922
+ "properties": {
923
+ "asOf": {
924
+ "format": "date-time",
925
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?(?:Z|[+-]\\d{2}:\\d{2})$",
926
+ "type": "string"
927
+ },
928
+ "expectedVersion": {
929
+ "maximum": 9007199254740991,
930
+ "minimum": 0,
931
+ "type": "integer"
932
+ },
933
+ "field": {
934
+ "enum": [
935
+ "household.total_assets",
936
+ "household.long_term_allocatable_assets",
937
+ "household.spending.last_12_months",
938
+ "household.spending.last_12_months.necessary",
939
+ "household.spending.last_12_months.discretionary",
940
+ "household.monthly_contribution",
941
+ "household.liquid_assets",
942
+ "household.investments.total",
943
+ "household.total_debt"
944
+ ],
945
+ "type": "string"
946
+ },
947
+ "idempotencyKey": {
948
+ "maxLength": 200,
949
+ "minLength": 1,
950
+ "type": "string"
951
+ },
952
+ "kind": {
953
+ "const": "financial_workspace_fact_record_command.v1"
954
+ },
955
+ "status": {
956
+ "enum": [
957
+ "confirmed",
958
+ "estimated"
959
+ ]
960
+ },
961
+ "value": {
962
+ "$ref": "#/$defs/FinancialTypedValueInputV1"
963
+ }
964
+ },
965
+ "required": [
966
+ "kind",
967
+ "expectedVersion",
968
+ "idempotencyKey",
969
+ "field",
970
+ "value"
971
+ ],
972
+ "type": "object"
973
+ },
974
+ "FinancialWorkspaceFactRefV1": {
975
+ "additionalProperties": false,
976
+ "properties": {
977
+ "factId": {
978
+ "maxLength": 200,
979
+ "minLength": 1,
980
+ "type": "string"
981
+ },
982
+ "kind": {
983
+ "const": "financial_workspace_fact_ref.v1"
984
+ }
985
+ },
986
+ "required": [
987
+ "kind",
988
+ "factId"
989
+ ],
990
+ "type": "object"
991
+ },
992
+ "FinancialWorkspaceSnapshotV1": {
993
+ "additionalProperties": false,
994
+ "properties": {
995
+ "authority": {
996
+ "$ref": "#/$defs/AccountAuthorityV1"
997
+ },
998
+ "capabilities": {
999
+ "$ref": "#/$defs/FinancialWorkspaceCapabilitiesV1"
1000
+ },
1001
+ "contractVersion": {
1002
+ "const": 1
1003
+ },
1004
+ "currentFacts": {
1005
+ "additionalProperties": false,
1006
+ "properties": {
1007
+ "coverage": {
1008
+ "$ref": "#/$defs/ProjectionCoverageV1"
1009
+ },
1010
+ "items": {
1011
+ "items": {
1012
+ "$ref": "#/$defs/FinancialFactProjectionV1"
1013
+ },
1014
+ "maxItems": 9,
1015
+ "type": "array"
1016
+ }
1017
+ },
1018
+ "required": [
1019
+ "items",
1020
+ "coverage"
1021
+ ],
1022
+ "type": "object"
1023
+ },
1024
+ "cursor": {
1025
+ "maxLength": 2048,
1026
+ "minLength": 1,
1027
+ "type": "string"
1028
+ },
1029
+ "kind": {
1030
+ "const": "financial_workspace_snapshot.v1"
1031
+ },
1032
+ "projectionVersion": {
1033
+ "const": 1
1034
+ },
1035
+ "updatedAt": {
1036
+ "format": "date-time",
1037
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
1038
+ "type": "string"
1039
+ },
1040
+ "version": {
1041
+ "maximum": 9007199254740991,
1042
+ "minimum": 0,
1043
+ "type": "integer"
1044
+ }
1045
+ },
1046
+ "required": [
1047
+ "kind",
1048
+ "authority",
1049
+ "contractVersion",
1050
+ "projectionVersion",
1051
+ "version",
1052
+ "updatedAt",
1053
+ "cursor",
1054
+ "capabilities",
1055
+ "currentFacts"
1056
+ ],
1057
+ "type": "object"
1058
+ },
1059
+ "FinancialWorkspaceSummaryV1": {
1060
+ "additionalProperties": false,
1061
+ "properties": {
1062
+ "authority": {
1063
+ "$ref": "#/$defs/AccountAuthorityV1"
1064
+ },
1065
+ "capabilities": {
1066
+ "$ref": "#/$defs/FinancialWorkspaceCapabilitiesV1"
1067
+ },
1068
+ "contractVersion": {
1069
+ "const": 1
1070
+ },
1071
+ "currentFacts": {
1072
+ "$ref": "#/$defs/ProjectionCoverageV1"
1073
+ },
1074
+ "cursor": {
1075
+ "maxLength": 2048,
1076
+ "minLength": 1,
1077
+ "type": "string"
1078
+ },
1079
+ "kind": {
1080
+ "const": "financial_workspace_summary.v1"
1081
+ },
1082
+ "projectionVersion": {
1083
+ "const": 1
1084
+ },
1085
+ "updatedAt": {
1086
+ "format": "date-time",
1087
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
1088
+ "type": "string"
1089
+ },
1090
+ "version": {
1091
+ "maximum": 9007199254740991,
1092
+ "minimum": 0,
1093
+ "type": "integer"
1094
+ }
1095
+ },
1096
+ "required": [
1097
+ "kind",
1098
+ "authority",
1099
+ "contractVersion",
1100
+ "projectionVersion",
1101
+ "version",
1102
+ "updatedAt",
1103
+ "cursor",
1104
+ "capabilities",
1105
+ "currentFacts"
1106
+ ],
1107
+ "type": "object"
1108
+ },
1109
+ "FinancialWorkspaceWorkspaceRefV1": {
1110
+ "additionalProperties": false,
1111
+ "properties": {
1112
+ "kind": {
1113
+ "const": "financial_workspace_workspace_ref.v1"
1114
+ },
1115
+ "storeId": {
1116
+ "maxLength": 200,
1117
+ "minLength": 1,
1118
+ "type": "string"
1119
+ }
1120
+ },
1121
+ "required": [
1122
+ "kind",
1123
+ "storeId"
1124
+ ],
1125
+ "type": "object"
1126
+ },
1127
+ "InitializeFinancialWorkspaceCommandV1": {
1128
+ "additionalProperties": false,
1129
+ "properties": {
1130
+ "idempotencyKey": {
1131
+ "maxLength": 200,
1132
+ "minLength": 1,
1133
+ "type": "string"
1134
+ },
1135
+ "kind": {
1136
+ "const": "financial_workspace_initialize_command.v1"
1137
+ }
1138
+ },
1139
+ "required": [
1140
+ "kind",
1141
+ "idempotencyKey"
1142
+ ],
1143
+ "type": "object"
1144
+ },
1145
+ "NormalizedFinancialWorkspaceFactRecordCommandV1": {
1146
+ "additionalProperties": false,
1147
+ "properties": {
1148
+ "asOf": {
1149
+ "oneOf": [
1150
+ {
1151
+ "type": "null"
1152
+ },
1153
+ {
1154
+ "format": "date-time",
1155
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
1156
+ "type": "string"
1157
+ }
1158
+ ]
1159
+ },
1160
+ "expectedVersion": {
1161
+ "maximum": 9007199254740991,
1162
+ "minimum": 0,
1163
+ "type": "integer"
1164
+ },
1165
+ "field": {
1166
+ "enum": [
1167
+ "household.total_assets",
1168
+ "household.long_term_allocatable_assets",
1169
+ "household.spending.last_12_months",
1170
+ "household.spending.last_12_months.necessary",
1171
+ "household.spending.last_12_months.discretionary",
1172
+ "household.monthly_contribution",
1173
+ "household.liquid_assets",
1174
+ "household.investments.total",
1175
+ "household.total_debt"
1176
+ ],
1177
+ "type": "string"
1178
+ },
1179
+ "idempotencyKey": {
1180
+ "maxLength": 200,
1181
+ "minLength": 1,
1182
+ "type": "string"
1183
+ },
1184
+ "kind": {
1185
+ "const": "financial_workspace_fact_record_command.v1"
1186
+ },
1187
+ "status": {
1188
+ "enum": [
1189
+ "confirmed",
1190
+ "estimated"
1191
+ ]
1192
+ },
1193
+ "value": {
1194
+ "$ref": "#/$defs/FinancialTypedValueV1"
1195
+ }
1196
+ },
1197
+ "required": [
1198
+ "kind",
1199
+ "expectedVersion",
1200
+ "idempotencyKey",
1201
+ "field",
1202
+ "value",
1203
+ "status",
1204
+ "asOf"
1205
+ ],
1206
+ "type": "object"
1207
+ },
1208
+ "ObjectRefV1": {
1209
+ "oneOf": [
1210
+ {
1211
+ "$ref": "#/$defs/FinancialWorkspaceWorkspaceRefV1"
1212
+ },
1213
+ {
1214
+ "$ref": "#/$defs/FinancialWorkspaceFactRefV1"
1215
+ }
1216
+ ]
1217
+ },
1218
+ "OperationProjectionV1": {
1219
+ "additionalProperties": false,
1220
+ "properties": {
1221
+ "affectedObjects": {
1222
+ "items": {
1223
+ "oneOf": [
1224
+ {
1225
+ "$ref": "#/$defs/FinancialWorkspaceWorkspaceRefV1"
1226
+ },
1227
+ {
1228
+ "$ref": "#/$defs/FinancialWorkspaceFactRefV1"
1229
+ }
1230
+ ]
1231
+ },
1232
+ "maxItems": 2,
1233
+ "minItems": 1,
1234
+ "type": "array",
1235
+ "uniqueItems": true
1236
+ },
1237
+ "baseVersion": {
1238
+ "maximum": 9007199254740991,
1239
+ "minimum": 0,
1240
+ "type": "integer"
1241
+ },
1242
+ "channel": {
1243
+ "enum": [
1244
+ "web",
1245
+ "cli"
1246
+ ]
1247
+ },
1248
+ "committedAt": {
1249
+ "format": "date-time",
1250
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
1251
+ "type": "string"
1252
+ },
1253
+ "kind": {
1254
+ "const": "financial_workspace_operation.v1"
1255
+ },
1256
+ "operation": {
1257
+ "enum": [
1258
+ "workspace.initialize",
1259
+ "fact.record"
1260
+ ]
1261
+ },
1262
+ "operationId": {
1263
+ "maxLength": 200,
1264
+ "minLength": 1,
1265
+ "type": "string"
1266
+ },
1267
+ "primaryObject": {
1268
+ "oneOf": [
1269
+ {
1270
+ "$ref": "#/$defs/FinancialWorkspaceWorkspaceRefV1"
1271
+ },
1272
+ {
1273
+ "$ref": "#/$defs/FinancialWorkspaceFactRefV1"
1274
+ }
1275
+ ]
1276
+ },
1277
+ "resultVersion": {
1278
+ "maximum": 9007199254740991,
1279
+ "minimum": 0,
1280
+ "type": "integer"
1281
+ }
1282
+ },
1283
+ "required": [
1284
+ "kind",
1285
+ "operationId",
1286
+ "operation",
1287
+ "channel",
1288
+ "baseVersion",
1289
+ "resultVersion",
1290
+ "committedAt",
1291
+ "primaryObject",
1292
+ "affectedObjects"
1293
+ ],
1294
+ "type": "object"
1295
+ },
1296
+ "ProjectionCoverageV1": {
1297
+ "additionalProperties": false,
1298
+ "properties": {
1299
+ "kind": {
1300
+ "const": "financial_workspace_fact_coverage.v1"
1301
+ },
1302
+ "missingFields": {
1303
+ "items": {
1304
+ "enum": [
1305
+ "household.total_assets",
1306
+ "household.long_term_allocatable_assets",
1307
+ "household.spending.last_12_months",
1308
+ "household.spending.last_12_months.necessary",
1309
+ "household.spending.last_12_months.discretionary",
1310
+ "household.monthly_contribution",
1311
+ "household.liquid_assets",
1312
+ "household.investments.total",
1313
+ "household.total_debt"
1314
+ ],
1315
+ "type": "string"
1316
+ },
1317
+ "maxItems": 9,
1318
+ "type": "array",
1319
+ "uniqueItems": true
1320
+ },
1321
+ "recordedFields": {
1322
+ "items": {
1323
+ "enum": [
1324
+ "household.total_assets",
1325
+ "household.long_term_allocatable_assets",
1326
+ "household.spending.last_12_months",
1327
+ "household.spending.last_12_months.necessary",
1328
+ "household.spending.last_12_months.discretionary",
1329
+ "household.monthly_contribution",
1330
+ "household.liquid_assets",
1331
+ "household.investments.total",
1332
+ "household.total_debt"
1333
+ ],
1334
+ "type": "string"
1335
+ },
1336
+ "maxItems": 9,
1337
+ "type": "array",
1338
+ "uniqueItems": true
1339
+ },
1340
+ "supportedFields": {
1341
+ "const": [
1342
+ "household.total_assets",
1343
+ "household.long_term_allocatable_assets",
1344
+ "household.spending.last_12_months",
1345
+ "household.spending.last_12_months.necessary",
1346
+ "household.spending.last_12_months.discretionary",
1347
+ "household.monthly_contribution",
1348
+ "household.liquid_assets",
1349
+ "household.investments.total",
1350
+ "household.total_debt"
1351
+ ]
1352
+ }
1353
+ },
1354
+ "required": [
1355
+ "kind",
1356
+ "supportedFields",
1357
+ "recordedFields",
1358
+ "missingFields"
1359
+ ],
1360
+ "type": "object"
1361
+ },
1362
+ "SuccessEnvelopeFinancialWorkspaceActivityPageV1": {
1363
+ "additionalProperties": false,
1364
+ "properties": {
1365
+ "code": {
1366
+ "const": 0
1367
+ },
1368
+ "data": {
1369
+ "$ref": "#/$defs/FinancialWorkspaceActivityPageV1"
1370
+ },
1371
+ "status": {
1372
+ "const": "success"
1373
+ },
1374
+ "success": {
1375
+ "const": true
1376
+ }
1377
+ },
1378
+ "required": [
1379
+ "code",
1380
+ "success",
1381
+ "status",
1382
+ "data"
1383
+ ],
1384
+ "type": "object"
1385
+ },
1386
+ "SuccessEnvelopeFinancialWorkspaceCommandReceiptV1": {
1387
+ "additionalProperties": false,
1388
+ "properties": {
1389
+ "code": {
1390
+ "const": 0
1391
+ },
1392
+ "data": {
1393
+ "$ref": "#/$defs/FinancialWorkspaceCommandReceiptV1"
1394
+ },
1395
+ "status": {
1396
+ "const": "success"
1397
+ },
1398
+ "success": {
1399
+ "const": true
1400
+ }
1401
+ },
1402
+ "required": [
1403
+ "code",
1404
+ "success",
1405
+ "status",
1406
+ "data"
1407
+ ],
1408
+ "type": "object"
1409
+ },
1410
+ "SuccessEnvelopeFinancialWorkspaceSnapshotV1": {
1411
+ "additionalProperties": false,
1412
+ "properties": {
1413
+ "code": {
1414
+ "const": 0
1415
+ },
1416
+ "data": {
1417
+ "$ref": "#/$defs/FinancialWorkspaceSnapshotV1"
1418
+ },
1419
+ "status": {
1420
+ "const": "success"
1421
+ },
1422
+ "success": {
1423
+ "const": true
1424
+ }
1425
+ },
1426
+ "required": [
1427
+ "code",
1428
+ "success",
1429
+ "status",
1430
+ "data"
1431
+ ],
1432
+ "type": "object"
1433
+ },
1434
+ "SuccessEnvelopeFinancialWorkspaceSummaryV1": {
1435
+ "additionalProperties": false,
1436
+ "properties": {
1437
+ "code": {
1438
+ "const": 0
1439
+ },
1440
+ "data": {
1441
+ "$ref": "#/$defs/FinancialWorkspaceSummaryV1"
1442
+ },
1443
+ "status": {
1444
+ "const": "success"
1445
+ },
1446
+ "success": {
1447
+ "const": true
1448
+ }
1449
+ },
1450
+ "required": [
1451
+ "code",
1452
+ "success",
1453
+ "status",
1454
+ "data"
1455
+ ],
1456
+ "type": "object"
1457
+ },
1458
+ "TransactionRetryableErrorDataV1": {
1459
+ "additionalProperties": false,
1460
+ "properties": {
1461
+ "retryAfterMs": {
1462
+ "maximum": 30000,
1463
+ "minimum": 100,
1464
+ "type": "integer"
1465
+ }
1466
+ },
1467
+ "required": [
1468
+ "retryAfterMs"
1469
+ ],
1470
+ "type": "object"
1471
+ },
1472
+ "VersionConflictErrorDataV1": {
1473
+ "additionalProperties": false,
1474
+ "properties": {
1475
+ "currentCursor": {
1476
+ "maxLength": 2048,
1477
+ "minLength": 1,
1478
+ "type": "string"
1479
+ },
1480
+ "currentVersion": {
1481
+ "maximum": 9007199254740991,
1482
+ "minimum": 0,
1483
+ "type": "integer"
1484
+ }
1485
+ },
1486
+ "required": [
1487
+ "currentVersion",
1488
+ "currentCursor"
1489
+ ],
1490
+ "type": "object"
1491
+ }
1492
+ },
1493
+ "$id": "https://choosefire.com/contracts/choosefire-financial-workspace/v1/financial-workspace.v1.schema.json",
1494
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1495
+ "title": "ChooseFIRE Financial Workspace Contract v1"
1496
+ }