@yigemo/choosefire 0.1.0 → 0.2.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.
@@ -24,7 +24,8 @@
24
24
  "workspace",
25
25
  "asset_account",
26
26
  "valuation_snapshot",
27
- "classification"
27
+ "classification",
28
+ "holding"
28
29
  ]
29
30
  }
30
31
  },
@@ -57,7 +58,10 @@
57
58
  "asset_account.update.v2",
58
59
  "asset_account.archive.v2",
59
60
  "valuation_snapshot.append.v2",
60
- "classification.replace.v2"
61
+ "classification.replace.v2",
62
+ "holding.create.v2",
63
+ "holding.update.v2",
64
+ "holding.archive.v2"
61
65
  ]
62
66
  },
63
67
  "operationId": {
@@ -313,6 +317,93 @@
313
317
  ],
314
318
  "type": "object"
315
319
  },
320
+ "AssetAccountDetailQueryV2": {
321
+ "additionalProperties": false,
322
+ "properties": {
323
+ "accountId": {
324
+ "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
325
+ "type": "string"
326
+ }
327
+ },
328
+ "required": [
329
+ "accountId"
330
+ ],
331
+ "type": "object"
332
+ },
333
+ "AssetAccountDetailSuccessV2": {
334
+ "additionalProperties": false,
335
+ "properties": {
336
+ "code": {
337
+ "const": 0
338
+ },
339
+ "data": {
340
+ "$ref": "#/components/schemas/AssetAccountDetailV2"
341
+ },
342
+ "kind": {
343
+ "const": "family_wealth_success.v2"
344
+ },
345
+ "status": {
346
+ "const": "success"
347
+ },
348
+ "success": {
349
+ "const": true
350
+ }
351
+ },
352
+ "required": [
353
+ "kind",
354
+ "success",
355
+ "status",
356
+ "code",
357
+ "data"
358
+ ],
359
+ "type": "object"
360
+ },
361
+ "AssetAccountDetailV2": {
362
+ "additionalProperties": false,
363
+ "properties": {
364
+ "account": {
365
+ "$ref": "#/components/schemas/OverviewAccountV2"
366
+ },
367
+ "asOf": {
368
+ "format": "date-time",
369
+ "type": "string"
370
+ },
371
+ "authority": {
372
+ "$ref": "#/components/schemas/WorkspaceAuthorityV2"
373
+ },
374
+ "contractVersion": {
375
+ "const": 2
376
+ },
377
+ "holdings": {
378
+ "items": {
379
+ "$ref": "#/components/schemas/HoldingV2"
380
+ },
381
+ "maxItems": 1000,
382
+ "type": "array"
383
+ },
384
+ "kind": {
385
+ "const": "asset_account.detail.v2"
386
+ },
387
+ "projectionVersion": {
388
+ "const": 1
389
+ },
390
+ "workspaceVersion": {
391
+ "minimum": 1,
392
+ "type": "integer"
393
+ }
394
+ },
395
+ "required": [
396
+ "kind",
397
+ "contractVersion",
398
+ "projectionVersion",
399
+ "workspaceVersion",
400
+ "asOf",
401
+ "authority",
402
+ "account",
403
+ "holdings"
404
+ ],
405
+ "type": "object"
406
+ },
316
407
  "AssetAccountDraftV2": {
317
408
  "additionalProperties": false,
318
409
  "properties": {
@@ -644,6 +735,11 @@
644
735
  "pattern": "^(?:0|[1-9]\\d*|-[1-9]\\d*)(?:\\.\\d{1,8})?$",
645
736
  "type": "string"
646
737
  },
738
+ "DecimalQuantityV2": {
739
+ "maxLength": 48,
740
+ "pattern": "^(?:0|[1-9]\\d*)(?:\\.\\d{1,12})?$",
741
+ "type": "string"
742
+ },
647
743
  "FamilyWealthErrorV2": {
648
744
  "additionalProperties": false,
649
745
  "properties": {
@@ -710,35 +806,383 @@
710
806
  "minLength": 1,
711
807
  "type": "string"
712
808
  },
713
- "requestId": {
714
- "maxLength": 200,
715
- "minLength": 1,
716
- "type": "string"
809
+ "requestId": {
810
+ "maxLength": 200,
811
+ "minLength": 1,
812
+ "type": "string"
813
+ }
814
+ },
815
+ "required": [
816
+ "message",
817
+ "requestId",
818
+ "data"
819
+ ],
820
+ "type": "object"
821
+ },
822
+ "kind": {
823
+ "const": "family_wealth_error.v2"
824
+ },
825
+ "status": {
826
+ "const": "error"
827
+ },
828
+ "success": {
829
+ "const": false
830
+ }
831
+ },
832
+ "required": [
833
+ "kind",
834
+ "success",
835
+ "status",
836
+ "code",
837
+ "error"
838
+ ],
839
+ "type": "object"
840
+ },
841
+ "HoldingArchiveCommandV2": {
842
+ "additionalProperties": false,
843
+ "properties": {
844
+ "commandId": {
845
+ "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
846
+ "type": "string"
847
+ },
848
+ "expectedObjectRevision": {
849
+ "minimum": 1,
850
+ "type": "integer"
851
+ },
852
+ "expectedWorkspaceVersion": {
853
+ "minimum": 1,
854
+ "type": "integer"
855
+ },
856
+ "idempotencyKey": {
857
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,199}$",
858
+ "type": "string"
859
+ },
860
+ "kind": {
861
+ "const": "holding.archive.v2"
862
+ },
863
+ "payload": {
864
+ "$ref": "#/components/schemas/HoldingArchivePayloadV2"
865
+ },
866
+ "source": {
867
+ "$ref": "#/components/schemas/SourceV2"
868
+ }
869
+ },
870
+ "required": [
871
+ "kind",
872
+ "commandId",
873
+ "idempotencyKey",
874
+ "expectedWorkspaceVersion",
875
+ "expectedObjectRevision",
876
+ "source",
877
+ "payload"
878
+ ],
879
+ "type": "object"
880
+ },
881
+ "HoldingArchivePayloadV2": {
882
+ "additionalProperties": false,
883
+ "properties": {
884
+ "holdingId": {
885
+ "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
886
+ "type": "string"
887
+ },
888
+ "reason": {
889
+ "maxLength": 240,
890
+ "minLength": 1,
891
+ "type": "string"
892
+ }
893
+ },
894
+ "required": [
895
+ "holdingId",
896
+ "reason"
897
+ ],
898
+ "type": "object"
899
+ },
900
+ "HoldingCreateCommandV2": {
901
+ "additionalProperties": false,
902
+ "properties": {
903
+ "commandId": {
904
+ "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
905
+ "type": "string"
906
+ },
907
+ "expectedObjectRevision": {
908
+ "type": "null"
909
+ },
910
+ "expectedWorkspaceVersion": {
911
+ "minimum": 1,
912
+ "type": "integer"
913
+ },
914
+ "idempotencyKey": {
915
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,199}$",
916
+ "type": "string"
917
+ },
918
+ "kind": {
919
+ "const": "holding.create.v2"
920
+ },
921
+ "payload": {
922
+ "$ref": "#/components/schemas/HoldingCreatePayloadV2"
923
+ },
924
+ "source": {
925
+ "$ref": "#/components/schemas/SourceV2"
926
+ }
927
+ },
928
+ "required": [
929
+ "kind",
930
+ "commandId",
931
+ "idempotencyKey",
932
+ "expectedWorkspaceVersion",
933
+ "expectedObjectRevision",
934
+ "source",
935
+ "payload"
936
+ ],
937
+ "type": "object"
938
+ },
939
+ "HoldingCreatePayloadV2": {
940
+ "additionalProperties": false,
941
+ "properties": {
942
+ "accountId": {
943
+ "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
944
+ "type": "string"
945
+ },
946
+ "holding": {
947
+ "$ref": "#/components/schemas/HoldingDraftV2"
948
+ },
949
+ "holdingId": {
950
+ "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
951
+ "type": "string"
952
+ }
953
+ },
954
+ "required": [
955
+ "holdingId",
956
+ "accountId",
957
+ "holding"
958
+ ],
959
+ "type": "object"
960
+ },
961
+ "HoldingDraftV2": {
962
+ "additionalProperties": false,
963
+ "properties": {
964
+ "currency": {
965
+ "$ref": "#/components/schemas/CurrencyCodeV2"
966
+ },
967
+ "instrumentRef": {
968
+ "anyOf": [
969
+ {
970
+ "maxLength": 160,
971
+ "minLength": 1,
972
+ "type": "string"
973
+ },
974
+ {
975
+ "type": "null"
976
+ }
977
+ ]
978
+ },
979
+ "name": {
980
+ "maxLength": 120,
981
+ "minLength": 1,
982
+ "type": "string"
983
+ },
984
+ "quality": {
985
+ "$ref": "#/components/schemas/QualityV2"
986
+ },
987
+ "quantity": {
988
+ "anyOf": [
989
+ {
990
+ "$ref": "#/components/schemas/DecimalQuantityV2"
991
+ },
992
+ {
993
+ "type": "null"
994
+ }
995
+ ]
996
+ },
997
+ "quantityAsOf": {
998
+ "anyOf": [
999
+ {
1000
+ "format": "date-time",
1001
+ "type": "string"
1002
+ },
1003
+ {
1004
+ "type": "null"
1005
+ }
1006
+ ]
1007
+ },
1008
+ "source": {
1009
+ "$ref": "#/components/schemas/SourceV2"
1010
+ }
1011
+ },
1012
+ "required": [
1013
+ "name",
1014
+ "instrumentRef",
1015
+ "quantity",
1016
+ "quantityAsOf",
1017
+ "currency",
1018
+ "quality",
1019
+ "source"
1020
+ ],
1021
+ "type": "object"
1022
+ },
1023
+ "HoldingUpdateCommandV2": {
1024
+ "additionalProperties": false,
1025
+ "properties": {
1026
+ "commandId": {
1027
+ "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
1028
+ "type": "string"
1029
+ },
1030
+ "expectedObjectRevision": {
1031
+ "minimum": 1,
1032
+ "type": "integer"
1033
+ },
1034
+ "expectedWorkspaceVersion": {
1035
+ "minimum": 1,
1036
+ "type": "integer"
1037
+ },
1038
+ "idempotencyKey": {
1039
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,199}$",
1040
+ "type": "string"
1041
+ },
1042
+ "kind": {
1043
+ "const": "holding.update.v2"
1044
+ },
1045
+ "payload": {
1046
+ "$ref": "#/components/schemas/HoldingUpdatePayloadV2"
1047
+ },
1048
+ "source": {
1049
+ "$ref": "#/components/schemas/SourceV2"
1050
+ }
1051
+ },
1052
+ "required": [
1053
+ "kind",
1054
+ "commandId",
1055
+ "idempotencyKey",
1056
+ "expectedWorkspaceVersion",
1057
+ "expectedObjectRevision",
1058
+ "source",
1059
+ "payload"
1060
+ ],
1061
+ "type": "object"
1062
+ },
1063
+ "HoldingUpdatePayloadV2": {
1064
+ "additionalProperties": false,
1065
+ "properties": {
1066
+ "holding": {
1067
+ "$ref": "#/components/schemas/HoldingDraftV2"
1068
+ },
1069
+ "holdingId": {
1070
+ "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
1071
+ "type": "string"
1072
+ }
1073
+ },
1074
+ "required": [
1075
+ "holdingId",
1076
+ "holding"
1077
+ ],
1078
+ "type": "object"
1079
+ },
1080
+ "HoldingV2": {
1081
+ "additionalProperties": false,
1082
+ "properties": {
1083
+ "accountId": {
1084
+ "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
1085
+ "type": "string"
1086
+ },
1087
+ "assetClasses": {
1088
+ "items": {
1089
+ "$ref": "#/components/schemas/AllocationLineV2"
1090
+ },
1091
+ "maxItems": 20,
1092
+ "type": "array"
1093
+ },
1094
+ "classificationRevision": {
1095
+ "minimum": 0,
1096
+ "type": "integer"
1097
+ },
1098
+ "classificationSource": {
1099
+ "enum": [
1100
+ "holding",
1101
+ "account_default"
1102
+ ]
1103
+ },
1104
+ "currency": {
1105
+ "$ref": "#/components/schemas/CurrencyCodeV2"
1106
+ },
1107
+ "holdingId": {
1108
+ "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
1109
+ "type": "string"
1110
+ },
1111
+ "instrumentRef": {
1112
+ "anyOf": [
1113
+ {
1114
+ "maxLength": 160,
1115
+ "minLength": 1,
1116
+ "type": "string"
1117
+ },
1118
+ {
1119
+ "type": "null"
717
1120
  }
1121
+ ]
1122
+ },
1123
+ "name": {
1124
+ "maxLength": 120,
1125
+ "minLength": 1,
1126
+ "type": "string"
1127
+ },
1128
+ "purposeBuckets": {
1129
+ "items": {
1130
+ "$ref": "#/components/schemas/AllocationLineV2"
718
1131
  },
719
- "required": [
720
- "message",
721
- "requestId",
722
- "data"
723
- ],
724
- "type": "object"
1132
+ "maxItems": 20,
1133
+ "type": "array"
725
1134
  },
726
- "kind": {
727
- "const": "family_wealth_error.v2"
1135
+ "quality": {
1136
+ "$ref": "#/components/schemas/QualityV2"
728
1137
  },
729
- "status": {
730
- "const": "error"
1138
+ "quantity": {
1139
+ "anyOf": [
1140
+ {
1141
+ "$ref": "#/components/schemas/DecimalQuantityV2"
1142
+ },
1143
+ {
1144
+ "type": "null"
1145
+ }
1146
+ ]
731
1147
  },
732
- "success": {
733
- "const": false
1148
+ "quantityAsOf": {
1149
+ "anyOf": [
1150
+ {
1151
+ "format": "date-time",
1152
+ "type": "string"
1153
+ },
1154
+ {
1155
+ "type": "null"
1156
+ }
1157
+ ]
1158
+ },
1159
+ "revision": {
1160
+ "minimum": 1,
1161
+ "type": "integer"
1162
+ },
1163
+ "source": {
1164
+ "$ref": "#/components/schemas/SourceV2"
1165
+ },
1166
+ "valuation": {
1167
+ "$ref": "#/components/schemas/OverviewValuationV2"
734
1168
  }
735
1169
  },
736
1170
  "required": [
737
- "kind",
738
- "success",
739
- "status",
740
- "code",
741
- "error"
1171
+ "holdingId",
1172
+ "accountId",
1173
+ "name",
1174
+ "instrumentRef",
1175
+ "quantity",
1176
+ "quantityAsOf",
1177
+ "currency",
1178
+ "quality",
1179
+ "source",
1180
+ "revision",
1181
+ "classificationRevision",
1182
+ "classificationSource",
1183
+ "assetClasses",
1184
+ "purposeBuckets",
1185
+ "valuation"
742
1186
  ],
743
1187
  "type": "object"
744
1188
  },
@@ -1452,7 +1896,8 @@
1452
1896
  "enum": [
1453
1897
  "workspace.summary.v2",
1454
1898
  "activity.page.v2",
1455
- "workspace.overview.v2"
1899
+ "workspace.overview.v2",
1900
+ "asset_account.detail.v2"
1456
1901
  ]
1457
1902
  },
1458
1903
  "type": "array",
@@ -1465,7 +1910,10 @@
1465
1910
  "asset_account.update.v2",
1466
1911
  "asset_account.archive.v2",
1467
1912
  "valuation_snapshot.append.v2",
1468
- "classification.replace.v2"
1913
+ "classification.replace.v2",
1914
+ "holding.create.v2",
1915
+ "holding.update.v2",
1916
+ "holding.archive.v2"
1469
1917
  ]
1470
1918
  },
1471
1919
  "type": "array",
@@ -1677,20 +2125,43 @@
1677
2125
  "additionalProperties": false,
1678
2126
  "properties": {
1679
2127
  "readable": {
1680
- "maxItems": 3,
1681
- "minItems": 3,
1682
- "prefixItems": [
2128
+ "oneOf": [
1683
2129
  {
1684
- "const": "workspace.summary.v2"
1685
- },
1686
- {
1687
- "const": "activity.page.v2"
2130
+ "maxItems": 3,
2131
+ "minItems": 3,
2132
+ "prefixItems": [
2133
+ {
2134
+ "const": "workspace.summary.v2"
2135
+ },
2136
+ {
2137
+ "const": "activity.page.v2"
2138
+ },
2139
+ {
2140
+ "const": "workspace.overview.v2"
2141
+ }
2142
+ ],
2143
+ "type": "array"
1688
2144
  },
1689
2145
  {
1690
- "const": "workspace.overview.v2"
2146
+ "maxItems": 4,
2147
+ "minItems": 4,
2148
+ "prefixItems": [
2149
+ {
2150
+ "const": "workspace.summary.v2"
2151
+ },
2152
+ {
2153
+ "const": "activity.page.v2"
2154
+ },
2155
+ {
2156
+ "const": "workspace.overview.v2"
2157
+ },
2158
+ {
2159
+ "const": "asset_account.detail.v2"
2160
+ }
2161
+ ],
2162
+ "type": "array"
1691
2163
  }
1692
- ],
1693
- "type": "array"
2164
+ ]
1694
2165
  },
1695
2166
  "role": {
1696
2167
  "anyOf": [
@@ -2064,7 +2535,8 @@
2064
2535
  "type": "integer"
2065
2536
  },
2066
2537
  "holdings": {
2067
- "const": 0
2538
+ "minimum": 0,
2539
+ "type": "integer"
2068
2540
  },
2069
2541
  "pendingItems": {
2070
2542
  "minimum": 0,
@@ -2131,8 +2603,8 @@
2131
2603
  }
2132
2604
  },
2133
2605
  "info": {
2134
- "title": "ChooseFIRE Family Wealth v2 R2 Contract",
2135
- "version": "2.0.0-r2"
2606
+ "title": "ChooseFIRE Family Wealth v2 R3 Holdings Contract",
2607
+ "version": "2.0.0-r3-holdings"
2136
2608
  },
2137
2609
  "openapi": "3.1.0",
2138
2610
  "paths": {
@@ -2380,6 +2852,50 @@
2380
2852
  "summary": "Archive one active asset account without deleting history"
2381
2853
  }
2382
2854
  },
2855
+ "/choosefire/v2/workspace/asset-accounts/{accountId}": {
2856
+ "get": {
2857
+ "operationId": "getFamilyWealthAssetAccountDetailV2",
2858
+ "parameters": [
2859
+ {
2860
+ "in": "path",
2861
+ "name": "accountId",
2862
+ "required": true,
2863
+ "schema": {
2864
+ "format": "uuid",
2865
+ "type": "string"
2866
+ }
2867
+ }
2868
+ ],
2869
+ "responses": {
2870
+ "200": {
2871
+ "content": {
2872
+ "application/json": {
2873
+ "schema": {
2874
+ "$ref": "#/components/schemas/AssetAccountDetailSuccessV2"
2875
+ }
2876
+ }
2877
+ },
2878
+ "description": "Role-bound asset account detail"
2879
+ },
2880
+ "404": {
2881
+ "content": {
2882
+ "application/json": {
2883
+ "schema": {
2884
+ "$ref": "#/components/schemas/FamilyWealthErrorV2"
2885
+ }
2886
+ }
2887
+ },
2888
+ "description": "Account is absent, archived, or hidden from the caller"
2889
+ }
2890
+ },
2891
+ "security": [
2892
+ {
2893
+ "bearer": []
2894
+ }
2895
+ ],
2896
+ "summary": "Read one account and its bounded active holdings"
2897
+ }
2898
+ },
2383
2899
  "/choosefire/v2/workspace/classifications": {
2384
2900
  "put": {
2385
2901
  "operationId": "replaceFamilyWealthClassificationV2",
@@ -2433,6 +2949,133 @@
2433
2949
  "summary": "Replace account or holding asset and purpose allocations"
2434
2950
  }
2435
2951
  },
2952
+ "/choosefire/v2/workspace/holdings": {
2953
+ "post": {
2954
+ "operationId": "createFamilyWealthHoldingV2",
2955
+ "requestBody": {
2956
+ "content": {
2957
+ "application/json": {
2958
+ "schema": {
2959
+ "$ref": "#/components/schemas/HoldingCreateCommandV2"
2960
+ }
2961
+ }
2962
+ },
2963
+ "required": true
2964
+ },
2965
+ "responses": {
2966
+ "200": {
2967
+ "content": {
2968
+ "application/json": {
2969
+ "schema": {
2970
+ "$ref": "#/components/schemas/CommandSuccessV2"
2971
+ }
2972
+ }
2973
+ },
2974
+ "description": "Committed holding receipt"
2975
+ },
2976
+ "409": {
2977
+ "content": {
2978
+ "application/json": {
2979
+ "schema": {
2980
+ "$ref": "#/components/schemas/FamilyWealthErrorV2"
2981
+ }
2982
+ }
2983
+ },
2984
+ "description": "Workspace or object conflict"
2985
+ }
2986
+ },
2987
+ "security": [
2988
+ {
2989
+ "bearer": []
2990
+ }
2991
+ ],
2992
+ "summary": "Create one holding under an active detailed account"
2993
+ },
2994
+ "put": {
2995
+ "operationId": "updateFamilyWealthHoldingV2",
2996
+ "requestBody": {
2997
+ "content": {
2998
+ "application/json": {
2999
+ "schema": {
3000
+ "$ref": "#/components/schemas/HoldingUpdateCommandV2"
3001
+ }
3002
+ }
3003
+ },
3004
+ "required": true
3005
+ },
3006
+ "responses": {
3007
+ "200": {
3008
+ "content": {
3009
+ "application/json": {
3010
+ "schema": {
3011
+ "$ref": "#/components/schemas/CommandSuccessV2"
3012
+ }
3013
+ }
3014
+ },
3015
+ "description": "Committed holding update receipt"
3016
+ },
3017
+ "409": {
3018
+ "content": {
3019
+ "application/json": {
3020
+ "schema": {
3021
+ "$ref": "#/components/schemas/FamilyWealthErrorV2"
3022
+ }
3023
+ }
3024
+ },
3025
+ "description": "Workspace or holding revision conflict"
3026
+ }
3027
+ },
3028
+ "security": [
3029
+ {
3030
+ "bearer": []
3031
+ }
3032
+ ],
3033
+ "summary": "Replace editable metadata for one active holding"
3034
+ }
3035
+ },
3036
+ "/choosefire/v2/workspace/holdings/archive": {
3037
+ "post": {
3038
+ "operationId": "archiveFamilyWealthHoldingV2",
3039
+ "requestBody": {
3040
+ "content": {
3041
+ "application/json": {
3042
+ "schema": {
3043
+ "$ref": "#/components/schemas/HoldingArchiveCommandV2"
3044
+ }
3045
+ }
3046
+ },
3047
+ "required": true
3048
+ },
3049
+ "responses": {
3050
+ "200": {
3051
+ "content": {
3052
+ "application/json": {
3053
+ "schema": {
3054
+ "$ref": "#/components/schemas/CommandSuccessV2"
3055
+ }
3056
+ }
3057
+ },
3058
+ "description": "Committed holding archive receipt"
3059
+ },
3060
+ "409": {
3061
+ "content": {
3062
+ "application/json": {
3063
+ "schema": {
3064
+ "$ref": "#/components/schemas/FamilyWealthErrorV2"
3065
+ }
3066
+ }
3067
+ },
3068
+ "description": "Workspace or holding revision conflict"
3069
+ }
3070
+ },
3071
+ "security": [
3072
+ {
3073
+ "bearer": []
3074
+ }
3075
+ ],
3076
+ "summary": "Archive one active holding without deleting history"
3077
+ }
3078
+ },
2436
3079
  "/choosefire/v2/workspace/mcp/delegation": {
2437
3080
  "post": {
2438
3081
  "operationId": "issueFamilyWealthWorkspaceMcpDelegationV2",
@@ -2601,5 +3244,5 @@
2601
3244
  },
2602
3245
  "x-choosefire-contract-id": "choosefire-family-wealth.v2",
2603
3246
  "x-choosefire-contract-version": 2,
2604
- "x-choosefire-runtime-state": "r1-runtime-r2-contract-only"
3247
+ "x-choosefire-runtime-state": "r3-holdings-parity"
2605
3248
  }