@hyperscale0/udl 2.6.1 → 3.0.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.
- package/CHANGELOG.md +2 -330
- package/LICENSING.md +1 -2
- package/README.md +3 -114
- package/TRADEMARKS.md +2 -2
- package/dist/diagnostics.d.ts +21 -201
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js +29 -193
- package/dist/diagnostics.js.map +1 -1
- package/dist/evolution.d.ts +3 -132
- package/dist/evolution.d.ts.map +1 -1
- package/dist/evolution.js +29 -633
- package/dist/evolution.js.map +1 -1
- package/dist/finance.d.ts +5 -72
- package/dist/finance.d.ts.map +1 -1
- package/dist/finance.js +233 -737
- package/dist/finance.js.map +1 -1
- package/dist/index.d.ts +7 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -12
- package/dist/index.js.map +1 -1
- package/dist/instrument-references.d.ts.map +1 -1
- package/dist/instrument-references.js +3 -2
- package/dist/instrument-references.js.map +1 -1
- package/dist/schema.d.ts +2079 -4564
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +270 -1609
- package/dist/schema.js.map +1 -1
- package/dist/validation.d.ts +8 -104
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +653 -3271
- package/dist/validation.js.map +1 -1
- package/docs/README.md +147 -14
- package/package.json +7 -11
- package/spec/README.md +151 -164
- package/spec/darb.udl.json +249 -0
- package/spec/udl.schema.json +4104 -3202
- package/src/diagnostics.ts +51 -246
- package/src/evolution.ts +39 -1045
- package/src/finance.ts +287 -1127
- package/src/index.ts +18 -142
- package/src/instrument-references.ts +3 -2
- package/src/schema.ts +285 -1843
- package/src/validation.ts +870 -5611
- package/conformance/README.md +0 -82
- package/conformance/evolution/action-contract.expected.json +0 -10
- package/conformance/evolution/action-contract.live.udl +0 -44
- package/conformance/evolution/action-contract.next.udl +0 -45
- package/conformance/evolution/product-identity.expected.json +0 -10
- package/conformance/evolution/product-identity.live.udl +0 -55
- package/conformance/evolution/product-identity.next.udl +0 -55
- package/conformance/evolution/version-required.expected.json +0 -10
- package/conformance/evolution/version-required.live.udl +0 -55
- package/conformance/evolution/version-required.next.udl +0 -58
- package/conformance/invalid/action-without-transition.expected.json +0 -10
- package/conformance/invalid/action-without-transition.udl +0 -60
- package/conformance/invalid/agent-description-too-long.expected.json +0 -10
- package/conformance/invalid/agent-description-too-long.udl +0 -57
- package/conformance/invalid/blank-title.expected.json +0 -10
- package/conformance/invalid/blank-title.udl +0 -54
- package/conformance/invalid/call-binds-results.expected.json +0 -10
- package/conformance/invalid/call-binds-results.udl +0 -314
- package/conformance/invalid/call-unknown-action.expected.json +0 -10
- package/conformance/invalid/call-unknown-action.udl +0 -314
- package/conformance/invalid/composition-dial-duplicate-key.expected.json +0 -10
- package/conformance/invalid/composition-dial-duplicate-key.udl +0 -73
- package/conformance/invalid/depth-budget.expected.json +0 -10
- package/conformance/invalid/depth-budget.udl +0 -49
- package/conformance/invalid/duplicate-subject.expected.json +0 -10
- package/conformance/invalid/duplicate-subject.udl +0 -230
- package/conformance/invalid/forged-effects.expected.json +0 -10
- package/conformance/invalid/forged-effects.udl +0 -76
- package/conformance/invalid/format-version.expected.json +0 -10
- package/conformance/invalid/format-version.udl +0 -54
- package/conformance/invalid/instrument-id-not-snake-case.expected.json +0 -10
- package/conformance/invalid/instrument-id-not-snake-case.udl +0 -54
- package/conformance/invalid/invalid-aggregate-gate-shape.expected.json +0 -10
- package/conformance/invalid/invalid-aggregate-gate-shape.udl +0 -1819
- package/conformance/invalid/invalid-check-duration.expected.json +0 -10
- package/conformance/invalid/invalid-check-duration.udl +0 -219
- package/conformance/invalid/invalid-dial-anchor.expected.json +0 -10
- package/conformance/invalid/invalid-dial-anchor.udl +0 -219
- package/conformance/invalid/invalid-exception-parent-ref.expected.json +0 -10
- package/conformance/invalid/invalid-exception-parent-ref.udl +0 -2487
- package/conformance/invalid/invalid-exposure-shape.expected.json +0 -10
- package/conformance/invalid/invalid-exposure-shape.udl +0 -1819
- package/conformance/invalid/invalid-journeys.expected.json +0 -10
- package/conformance/invalid/invalid-journeys.udl +0 -77
- package/conformance/invalid/invalid-remainder.expected.json +0 -10
- package/conformance/invalid/invalid-remainder.udl +0 -220
- package/conformance/invalid/invalid-schema-keyword.expected.json +0 -10
- package/conformance/invalid/invalid-schema-keyword.udl +0 -220
- package/conformance/invalid/invalid-utf8.expected.json +0 -10
- package/conformance/invalid/invalid-utf8.udl +0 -1
- package/conformance/invalid/leaf-effect-mismatch.expected.json +0 -10
- package/conformance/invalid/leaf-effect-mismatch.udl +0 -314
- package/conformance/invalid/malformed-json.expected.json +0 -10
- package/conformance/invalid/malformed-json.udl +0 -1
- package/conformance/invalid/missing-create-action.expected.json +0 -10
- package/conformance/invalid/missing-create-action.udl +0 -48
- package/conformance/invalid/missing-exception-amount-field.expected.json +0 -10
- package/conformance/invalid/missing-exception-amount-field.udl +0 -2487
- package/conformance/invalid/missing-exception-contract.expected.json +0 -14
- package/conformance/invalid/missing-exception-contract.udl +0 -2523
- package/conformance/invalid/missing-exception-reason-field.expected.json +0 -10
- package/conformance/invalid/missing-exception-reason-field.udl +0 -2487
- package/conformance/invalid/not-an-object.expected.json +0 -10
- package/conformance/invalid/not-an-object.udl +0 -1
- package/conformance/invalid/payout-reconcile-not-a-bank-debit.expected.json +0 -10
- package/conformance/invalid/payout-reconcile-not-a-bank-debit.udl +0 -259
- package/conformance/invalid/piece-plan-without-partition.expected.json +0 -10
- package/conformance/invalid/piece-plan-without-partition.udl +0 -305
- package/conformance/invalid/private-action-independent-approval.expected.json +0 -10
- package/conformance/invalid/private-action-independent-approval.udl +0 -314
- package/conformance/invalid/quote-freeze-set-incomplete.expected.json +0 -10
- package/conformance/invalid/quote-freeze-set-incomplete.udl +0 -261
- package/conformance/invalid/quote-named-reference-gate.expected.json +0 -10
- package/conformance/invalid/quote-named-reference-gate.udl +0 -50
- package/conformance/invalid/reconcile-named-reference-gate.expected.json +0 -10
- package/conformance/invalid/reconcile-named-reference-gate.udl +0 -50
- package/conformance/invalid/unfund-order-not-reversed.expected.json +0 -10
- package/conformance/invalid/unfund-order-not-reversed.udl +0 -314
- package/conformance/invalid/unknown-key.expected.json +0 -10
- package/conformance/invalid/unknown-key.udl +0 -55
- package/conformance/invalid/unknown-reference-gate-field.expected.json +0 -10
- package/conformance/invalid/unknown-reference-gate-field.udl +0 -1819
- package/conformance/invalid/unknown-required-field.expected.json +0 -10
- package/conformance/invalid/unknown-required-field.udl +0 -220
- package/conformance/invalid/unreachable-state.expected.json +0 -10
- package/conformance/invalid/unreachable-state.udl +0 -55
- package/conformance/invalid/wrong-exception-amount-field.expected.json +0 -10
- package/conformance/invalid/wrong-exception-amount-field.udl +0 -2487
- package/conformance/invalid/wrong-exception-reason-field.expected.json +0 -10
- package/conformance/invalid/wrong-exception-reason-field.udl +0 -2487
- package/conformance/valid/agent-description.expected.json +0 -6
- package/conformance/valid/agent-description.udl +0 -66
- package/conformance/valid/attested.expected.json +0 -6
- package/conformance/valid/attested.udl +0 -251
- package/conformance/valid/cards.expected.json +0 -6
- package/conformance/valid/cards.udl +0 -1579
- package/conformance/valid/commerce-escrow.expected.json +0 -6
- package/conformance/valid/commerce-escrow.udl +0 -1512
- package/conformance/valid/compiled-crowdfunding.expected.json +0 -6
- package/conformance/valid/compiled-crowdfunding.udl +0 -1843
- package/conformance/valid/compiled-watch-club.expected.json +0 -6
- package/conformance/valid/compiled-watch-club.udl +0 -2486
- package/conformance/valid/complete-contract.expected.json +0 -6
- package/conformance/valid/complete-contract.udl +0 -218
- package/conformance/valid/effect-signatures.expected.json +0 -6
- package/conformance/valid/effect-signatures.udl +0 -75
- package/conformance/valid/hand-edited.expected.json +0 -6
- package/conformance/valid/hand-edited.udl +0 -1
- package/conformance/valid/insured-car-marketplace.expected.json +0 -6
- package/conformance/valid/insured-car-marketplace.udl +0 -1050
- package/conformance/valid/insured-travel.expected.json +0 -6
- package/conformance/valid/insured-travel.udl +0 -3469
- package/conformance/valid/minimal.expected.json +0 -6
- package/conformance/valid/minimal.udl +0 -62
- package/conformance/valid/piece-plan-calls.expected.json +0 -6
- package/conformance/valid/piece-plan-calls.udl +0 -314
- package/conformance/valid/protection.expected.json +0 -6
- package/conformance/valid/protection.udl +0 -1551
- package/conformance/valid/string-escaping.expected.json +0 -6
- package/conformance/valid/string-escaping.udl +0 -54
- package/conformance/valid/vocabulary.expected.json +0 -6
- package/conformance/valid/vocabulary.udl +0 -2012
- package/dist/allocation.d.ts +0 -60
- package/dist/allocation.d.ts.map +0 -1
- package/dist/allocation.js +0 -177
- package/dist/allocation.js.map +0 -1
- package/dist/check-profiles.d.ts +0 -57
- package/dist/check-profiles.d.ts.map +0 -1
- package/dist/check-profiles.js +0 -62
- package/dist/check-profiles.js.map +0 -1
- package/dist/distribution.d.ts +0 -15
- package/dist/distribution.d.ts.map +0 -1
- package/dist/distribution.js +0 -49
- package/dist/distribution.js.map +0 -1
- package/dist/effects.d.ts +0 -58
- package/dist/effects.d.ts.map +0 -1
- package/dist/effects.js +0 -1126
- package/dist/effects.js.map +0 -1
- package/dist/reference.d.ts +0 -3
- package/dist/reference.d.ts.map +0 -1
- package/dist/reference.js +0 -28
- package/dist/reference.js.map +0 -1
- package/dist/vocabulary.d.ts +0 -23
- package/dist/vocabulary.d.ts.map +0 -1
- package/dist/vocabulary.js +0 -1052
- package/dist/vocabulary.js.map +0 -1
- package/docs/funding-custody.md +0 -165
- package/docs/guide/01-a-document.md +0 -37
- package/docs/guide/02-money-steps.md +0 -23
- package/docs/guide/03-laws.md +0 -18
- package/docs/guide/04-fees-and-remainder.md +0 -36
- package/docs/guide/05-checks-updates-dials.md +0 -7
- package/docs/guide/06-effects.md +0 -11
- package/docs/guide/07-evolution.md +0 -11
- package/docs/guide/08-implementing.md +0 -13
- package/docs/guide/09-schedules-and-allocation.md +0 -132
- package/docs/llms-full.txt +0 -2008
- package/docs/llms.txt +0 -14
- package/docs/piece-plans.md +0 -148
- package/docs/reference/canonical.md +0 -16
- package/docs/reference/clauses.md +0 -1585
- package/docs/reference/cli.md +0 -24
- package/docs/reference/diagnostics.md +0 -38
- package/skills/udl/SKILL.md +0 -28
- package/src/allocation.ts +0 -259
- package/src/check-profiles.ts +0 -80
- package/src/distribution.ts +0 -61
- package/src/effects.ts +0 -1920
- package/src/reference.ts +0 -31
- package/src/vocabulary.ts +0 -1635
|
@@ -1,1585 +0,0 @@
|
|
|
1
|
-
<!-- Generated by scripts/docs/build.ts from @hyperscale0/udl 2.6.1. Edit the source, not clauses.md. -->
|
|
2
|
-
|
|
3
|
-
# Clause reference
|
|
4
|
-
|
|
5
|
-
This page lists every entry in `udlClauseVocabulary`. The examples are copied from admitted documents under `conformance/valid`.
|
|
6
|
-
|
|
7
|
-
## funding
|
|
8
|
-
|
|
9
|
-
- Scope: action
|
|
10
|
-
- UDL target: `funding`
|
|
11
|
-
- Cardinality: one
|
|
12
|
-
- Linear outputs: none
|
|
13
|
-
- Effects: moves.transfer.internal per clause
|
|
14
|
-
- Law: Requirements-as-data law and closure law
|
|
15
|
-
- Conformance source: `vocabulary.udl`
|
|
16
|
-
|
|
17
|
-
```json
|
|
18
|
-
{
|
|
19
|
-
"capture": "snapshot",
|
|
20
|
-
"collectAction": "collect",
|
|
21
|
-
"destinationAccountField": "fundingAccount",
|
|
22
|
-
"obligationField": "obligationId",
|
|
23
|
-
"principalField": "principal",
|
|
24
|
-
"sourceAccountPath": "refs.escrow",
|
|
25
|
-
"terms": {
|
|
26
|
-
"currency": "currency",
|
|
27
|
-
"principal": "principal"
|
|
28
|
-
},
|
|
29
|
-
"ticketAccountField": "wallet",
|
|
30
|
-
"ticketAmountField": "amount",
|
|
31
|
-
"ticketInstrumentId": "ticket",
|
|
32
|
-
"ticketInvestorField": "investor",
|
|
33
|
-
"ticketRefField": "roundId",
|
|
34
|
-
"ticketStatus": "open"
|
|
35
|
-
}
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## receipt distribution
|
|
39
|
-
|
|
40
|
-
- Scope: action
|
|
41
|
-
- UDL target: `receiptDistribution`
|
|
42
|
-
- Cardinality: one
|
|
43
|
-
- Linear outputs: none
|
|
44
|
-
- Effects: decides.allocation per clause; moves.allocation per clause
|
|
45
|
-
- Law: Requirements-as-data law and closure law
|
|
46
|
-
- Conformance source: `vocabulary.udl`
|
|
47
|
-
|
|
48
|
-
```json
|
|
49
|
-
{
|
|
50
|
-
"capture": "receipt",
|
|
51
|
-
"feeAccountField": "fee",
|
|
52
|
-
"feeBps": 100,
|
|
53
|
-
"mode": "cash",
|
|
54
|
-
"receiptField": "receiptId",
|
|
55
|
-
"receiptPath": "refs.allocationReceipt",
|
|
56
|
-
"residualAccountField": "residual",
|
|
57
|
-
"roundField": "roundId",
|
|
58
|
-
"snapshotRef": "snapshot",
|
|
59
|
-
"taxAccountField": "tax",
|
|
60
|
-
"vatBps": 1500
|
|
61
|
-
}
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
## requires allocation
|
|
65
|
-
|
|
66
|
-
- Scope: action
|
|
67
|
-
- UDL target: `requiresAllocation`
|
|
68
|
-
- Cardinality: one
|
|
69
|
-
- Linear outputs: none
|
|
70
|
-
- Effects: decides.allocation per clause
|
|
71
|
-
- Law: Requirements-as-data law and closure law
|
|
72
|
-
- Conformance source: `vocabulary.udl`
|
|
73
|
-
|
|
74
|
-
```json
|
|
75
|
-
{
|
|
76
|
-
"buckets": [
|
|
77
|
-
"principal",
|
|
78
|
-
"profit"
|
|
79
|
-
],
|
|
80
|
-
"check": "settled",
|
|
81
|
-
"refField": "coverId",
|
|
82
|
-
"slice": "self"
|
|
83
|
-
}
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
## allocation
|
|
87
|
-
|
|
88
|
-
- Scope: instrument
|
|
89
|
-
- UDL target: `allocation`
|
|
90
|
-
- Cardinality: one
|
|
91
|
-
- Linear outputs: none
|
|
92
|
-
- Effects: none
|
|
93
|
-
- Law: Requirements-as-data law and closure law
|
|
94
|
-
- Conformance source: `vocabulary.udl`
|
|
95
|
-
|
|
96
|
-
```json
|
|
97
|
-
{
|
|
98
|
-
"buckets": [
|
|
99
|
-
{
|
|
100
|
-
"key": "principal",
|
|
101
|
-
"source": {
|
|
102
|
-
"amountField": "principal",
|
|
103
|
-
"destinationField": "receiver",
|
|
104
|
-
"from": "slice"
|
|
105
|
-
}
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
"key": "profit",
|
|
109
|
-
"source": {
|
|
110
|
-
"amountField": "profit",
|
|
111
|
-
"destinationField": "receiver",
|
|
112
|
-
"from": "slice"
|
|
113
|
-
}
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
"key": "cost",
|
|
117
|
-
"source": {
|
|
118
|
-
"amountField": "amount",
|
|
119
|
-
"destinationField": "receiver",
|
|
120
|
-
"from": "children",
|
|
121
|
-
"parameters": {
|
|
122
|
-
"cost": true
|
|
123
|
-
},
|
|
124
|
-
"refField": "sliceId",
|
|
125
|
-
"statuses": [
|
|
126
|
-
"open"
|
|
127
|
-
],
|
|
128
|
-
"template": "assessment"
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
],
|
|
132
|
-
"dueField": "dueAt",
|
|
133
|
-
"earningRuleField": "earningRule",
|
|
134
|
-
"positionField": "position",
|
|
135
|
-
"sliceInstrumentId": "slice",
|
|
136
|
-
"sliceRefField": "coverId",
|
|
137
|
-
"sliceStatuses": [
|
|
138
|
-
"open"
|
|
139
|
-
]
|
|
140
|
-
}
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
## contributions
|
|
144
|
-
|
|
145
|
-
- Scope: instrument
|
|
146
|
-
- UDL target: `contributions`
|
|
147
|
-
- Cardinality: one
|
|
148
|
-
- Linear outputs: none
|
|
149
|
-
- Effects: none
|
|
150
|
-
- Law: Requirements-as-data law and closure law
|
|
151
|
-
- Conformance source: `vocabulary.udl`
|
|
152
|
-
|
|
153
|
-
```json
|
|
154
|
-
{
|
|
155
|
-
"accountKey": "origin",
|
|
156
|
-
"amountKey": "amount",
|
|
157
|
-
"field": "contributions",
|
|
158
|
-
"totalField": "price"
|
|
159
|
-
}
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
## allocate
|
|
163
|
-
|
|
164
|
-
- Scope: action
|
|
165
|
-
- UDL target: `allocate`
|
|
166
|
-
- Cardinality: one
|
|
167
|
-
- Linear outputs: none
|
|
168
|
-
- Effects: decides.allocation per clause; moves.allocation per clause
|
|
169
|
-
- Law: Requirements-as-data law and closure law
|
|
170
|
-
- Conformance source: `vocabulary.udl`
|
|
171
|
-
|
|
172
|
-
```json
|
|
173
|
-
{
|
|
174
|
-
"capture": "payoffReceipt",
|
|
175
|
-
"mode": "payoff",
|
|
176
|
-
"paymentIdentityField": "paymentIdentity",
|
|
177
|
-
"sourceAccountField": "payerAccount"
|
|
178
|
-
}
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
## contribution stage
|
|
182
|
-
|
|
183
|
-
- Scope: action
|
|
184
|
-
- UDL target: `contributionStage`
|
|
185
|
-
- Cardinality: one
|
|
186
|
-
- Linear outputs: none
|
|
187
|
-
- Effects: moves.transfer.internal per clause
|
|
188
|
-
- Law: Requirements-as-data law and closure law
|
|
189
|
-
- Conformance source: `vocabulary.udl`
|
|
190
|
-
|
|
191
|
-
```json
|
|
192
|
-
{
|
|
193
|
-
"accountPath": "refs.hold",
|
|
194
|
-
"stage": "fund"
|
|
195
|
-
}
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
## date order
|
|
199
|
-
|
|
200
|
-
- Scope: instrument
|
|
201
|
-
- UDL target: `dateOrder`
|
|
202
|
-
- Cardinality: many
|
|
203
|
-
- Linear outputs: none
|
|
204
|
-
- Effects: none
|
|
205
|
-
- Law: Requirements-as-data law and closure law
|
|
206
|
-
- Conformance source: `vocabulary.udl`
|
|
207
|
-
|
|
208
|
-
```json
|
|
209
|
-
[
|
|
210
|
-
{
|
|
211
|
-
"afterField": "end",
|
|
212
|
-
"beforeField": "start",
|
|
213
|
-
"operator": "<"
|
|
214
|
-
}
|
|
215
|
-
]
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
## unique
|
|
219
|
-
|
|
220
|
-
- Scope: action
|
|
221
|
-
- UDL target: `unique`
|
|
222
|
-
- Cardinality: one
|
|
223
|
-
- Linear outputs: none
|
|
224
|
-
- Effects: decides.subject_unique per clause
|
|
225
|
-
- Law: Requirements-as-data law and closure law
|
|
226
|
-
- Conformance source: `vocabulary.udl`
|
|
227
|
-
|
|
228
|
-
```json
|
|
229
|
-
{
|
|
230
|
-
"byFields": [
|
|
231
|
-
"borrower",
|
|
232
|
-
"currency"
|
|
233
|
-
],
|
|
234
|
-
"namespace": "borrower_limit"
|
|
235
|
-
}
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
## transitions refs
|
|
239
|
-
|
|
240
|
-
- Scope: action
|
|
241
|
-
- UDL target: `transitionsRefs`
|
|
242
|
-
- Cardinality: many
|
|
243
|
-
- Linear outputs: none
|
|
244
|
-
- Effects: decides.referenced_transition per element
|
|
245
|
-
- Law: Requirements-as-data law and closure law
|
|
246
|
-
- Conformance source: `vocabulary.udl`
|
|
247
|
-
|
|
248
|
-
```json
|
|
249
|
-
[
|
|
250
|
-
{
|
|
251
|
-
"action": "close",
|
|
252
|
-
"field": "coverId"
|
|
253
|
-
}
|
|
254
|
-
]
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
## cascade
|
|
258
|
-
|
|
259
|
-
- Scope: action
|
|
260
|
-
- UDL target: `cascade`
|
|
261
|
-
- Cardinality: many
|
|
262
|
-
- Linear outputs: none
|
|
263
|
-
- Effects: decides.cascade_transition per element
|
|
264
|
-
- Law: Requirements-as-data law and closure law
|
|
265
|
-
- Conformance source: `vocabulary.udl`
|
|
266
|
-
|
|
267
|
-
A cascade target action that declares a `port` is allowed only when the parent action declares a `port`: the engine forwards the port actor.
|
|
268
|
-
|
|
269
|
-
```json
|
|
270
|
-
[
|
|
271
|
-
{
|
|
272
|
-
"action": "close",
|
|
273
|
-
"inputField": "sliceIds",
|
|
274
|
-
"instrumentId": "slice"
|
|
275
|
-
}
|
|
276
|
-
]
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
## action library
|
|
280
|
-
|
|
281
|
-
- Scope: instrument
|
|
282
|
-
- UDL target: `actionLibrary`
|
|
283
|
-
- Cardinality: one
|
|
284
|
-
- Linear outputs: none
|
|
285
|
-
- Effects: none
|
|
286
|
-
- Law: Requirements-as-data law and closure law
|
|
287
|
-
- Conformance source: `piece-plan-calls.udl`
|
|
288
|
-
|
|
289
|
-
```json
|
|
290
|
-
{
|
|
291
|
-
"transfers": {
|
|
292
|
-
"actionOrder": [
|
|
293
|
-
"execute_fund",
|
|
294
|
-
"execute_release"
|
|
295
|
-
],
|
|
296
|
-
"actions": {
|
|
297
|
-
"execute_fund": {
|
|
298
|
-
"approval": "inherit",
|
|
299
|
-
"calls": [],
|
|
300
|
-
"leaves": [
|
|
301
|
-
{
|
|
302
|
-
"bind": {
|
|
303
|
-
"amount": "$p.amount",
|
|
304
|
-
"destinationAccountId": "$p.release_to",
|
|
305
|
-
"sourceAccountId": "$inst.fields.buyerAccount"
|
|
306
|
-
},
|
|
307
|
-
"effects": [
|
|
308
|
-
{
|
|
309
|
-
"kind": "moves",
|
|
310
|
-
"signature": "moves.transfer.internal"
|
|
311
|
-
}
|
|
312
|
-
],
|
|
313
|
-
"evidence": "bank transfer confirmation receipt",
|
|
314
|
-
"id": "leaf_fund",
|
|
315
|
-
"operation": "internal_transfer.create"
|
|
316
|
-
}
|
|
317
|
-
],
|
|
318
|
-
"order": [
|
|
319
|
-
"leaf_fund"
|
|
320
|
-
],
|
|
321
|
-
"parameters": {
|
|
322
|
-
"inst": {
|
|
323
|
-
"kind": "instance"
|
|
324
|
-
},
|
|
325
|
-
"p": {
|
|
326
|
-
"kind": "piece"
|
|
327
|
-
}
|
|
328
|
-
},
|
|
329
|
-
"principal": "api_key",
|
|
330
|
-
"recovery": "local"
|
|
331
|
-
},
|
|
332
|
-
"execute_release": {
|
|
333
|
-
"approval": "inherit",
|
|
334
|
-
"calls": [],
|
|
335
|
-
"leaves": [
|
|
336
|
-
{
|
|
337
|
-
"bind": {
|
|
338
|
-
"amount": "$p.amount",
|
|
339
|
-
"destinationAccountId": "$p.release_to",
|
|
340
|
-
"sourceAccountId": "$inst.fields.escrowAccount"
|
|
341
|
-
},
|
|
342
|
-
"effects": [
|
|
343
|
-
{
|
|
344
|
-
"kind": "moves",
|
|
345
|
-
"signature": "moves.transfer.internal"
|
|
346
|
-
}
|
|
347
|
-
],
|
|
348
|
-
"evidence": "release to payee confirmation",
|
|
349
|
-
"id": "leaf_rel",
|
|
350
|
-
"operation": "internal_transfer.create"
|
|
351
|
-
}
|
|
352
|
-
],
|
|
353
|
-
"order": [
|
|
354
|
-
"leaf_rel"
|
|
355
|
-
],
|
|
356
|
-
"parameters": {
|
|
357
|
-
"inst": {
|
|
358
|
-
"kind": "instance"
|
|
359
|
-
},
|
|
360
|
-
"p": {
|
|
361
|
-
"kind": "piece"
|
|
362
|
-
}
|
|
363
|
-
},
|
|
364
|
-
"principal": "api_key",
|
|
365
|
-
"recovery": "local"
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
```
|
|
371
|
-
|
|
372
|
-
## agent description
|
|
373
|
-
|
|
374
|
-
- Scope: action
|
|
375
|
-
- UDL target: `agentDescription`
|
|
376
|
-
- Cardinality: one
|
|
377
|
-
- Linear outputs: none
|
|
378
|
-
- Effects: none
|
|
379
|
-
- Law: Requirements-as-data law and closure law
|
|
380
|
-
- Conformance source: `agent-description.udl`
|
|
381
|
-
|
|
382
|
-
```json
|
|
383
|
-
"Close a note that has already been filed. Takes the note id and nothing else, and moves no money."
|
|
384
|
-
```
|
|
385
|
-
|
|
386
|
-
## calls
|
|
387
|
-
|
|
388
|
-
- Scope: action
|
|
389
|
-
- UDL target: `calls`
|
|
390
|
-
- Cardinality: many
|
|
391
|
-
- Linear outputs: none
|
|
392
|
-
- Effects: none
|
|
393
|
-
- Law: Requirements-as-data law and closure law
|
|
394
|
-
- Conformance source: `piece-plan-calls.udl`
|
|
395
|
-
|
|
396
|
-
```json
|
|
397
|
-
[
|
|
398
|
-
{
|
|
399
|
-
"action": "transfers.execute_fund",
|
|
400
|
-
"bind": {
|
|
401
|
-
"inst": "$instance",
|
|
402
|
-
"p": "$piece"
|
|
403
|
-
},
|
|
404
|
-
"id": "call_fund"
|
|
405
|
-
}
|
|
406
|
-
]
|
|
407
|
-
```
|
|
408
|
-
|
|
409
|
-
## requires input
|
|
410
|
-
|
|
411
|
-
- Scope: action
|
|
412
|
-
- UDL target: `requiresInput`
|
|
413
|
-
- Cardinality: one
|
|
414
|
-
- Linear outputs: none
|
|
415
|
-
- Effects: none
|
|
416
|
-
- Law: Requirements-as-data law and closure law
|
|
417
|
-
- Conformance source: `attested.udl`
|
|
418
|
-
|
|
419
|
-
```json
|
|
420
|
-
{
|
|
421
|
-
"amount": "fields.amount"
|
|
422
|
-
}
|
|
423
|
-
```
|
|
424
|
-
|
|
425
|
-
## engine owned
|
|
426
|
-
|
|
427
|
-
- Scope: action
|
|
428
|
-
- UDL target: `engineOwned`
|
|
429
|
-
- Cardinality: one
|
|
430
|
-
- Linear outputs: none
|
|
431
|
-
- Effects: none
|
|
432
|
-
- Law: Requirements-as-data law and closure law
|
|
433
|
-
- Conformance source: `attested.udl`
|
|
434
|
-
|
|
435
|
-
```json
|
|
436
|
-
true
|
|
437
|
-
```
|
|
438
|
-
|
|
439
|
-
## capture engine
|
|
440
|
-
|
|
441
|
-
- Scope: action
|
|
442
|
-
- UDL target: `captureEngine`
|
|
443
|
-
- Cardinality: one
|
|
444
|
-
- Linear outputs: none
|
|
445
|
-
- Effects: none
|
|
446
|
-
- Law: Requirements-as-data law and closure law
|
|
447
|
-
- Conformance source: `attested.udl`
|
|
448
|
-
|
|
449
|
-
```json
|
|
450
|
-
{
|
|
451
|
-
"consumedByOperationId": "operationId"
|
|
452
|
-
}
|
|
453
|
-
```
|
|
454
|
-
|
|
455
|
-
## capture input
|
|
456
|
-
|
|
457
|
-
- Scope: action
|
|
458
|
-
- UDL target: `captureInput`
|
|
459
|
-
- Cardinality: one
|
|
460
|
-
- Linear outputs: none
|
|
461
|
-
- Effects: none
|
|
462
|
-
- Law: Requirements-as-data law and closure law
|
|
463
|
-
- Conformance source: `compiled-crowdfunding.udl`
|
|
464
|
-
|
|
465
|
-
```json
|
|
466
|
-
{
|
|
467
|
-
"snapshotEvidenceReference": "evidenceReference"
|
|
468
|
-
}
|
|
469
|
-
```
|
|
470
|
-
|
|
471
|
-
## commit
|
|
472
|
-
|
|
473
|
-
- Scope: action
|
|
474
|
-
- UDL target: `commit`
|
|
475
|
-
- Cardinality: one
|
|
476
|
-
- Linear outputs: none
|
|
477
|
-
- Effects: none
|
|
478
|
-
- Law: Requirements-as-data law and closure law
|
|
479
|
-
- Conformance source: `commerce-escrow.udl`
|
|
480
|
-
|
|
481
|
-
A commit has no separate effect row. The committing action consumes the quote through its `moves.*` row.
|
|
482
|
-
|
|
483
|
-
```json
|
|
484
|
-
"quote"
|
|
485
|
-
```
|
|
486
|
-
|
|
487
|
-
## quote
|
|
488
|
-
|
|
489
|
-
- Scope: action
|
|
490
|
-
- UDL target: `quote`
|
|
491
|
-
- Cardinality: one
|
|
492
|
-
- Linear outputs: `netRef`
|
|
493
|
-
- Effects: holds.quote per clause; schedules.expiry per clause
|
|
494
|
-
- Law: Requirements-as-data law and closure law
|
|
495
|
-
- Conformance source: `commerce-escrow.udl`
|
|
496
|
-
|
|
497
|
-
```json
|
|
498
|
-
{
|
|
499
|
-
"baseField": "amount",
|
|
500
|
-
"chargeRef": "unwindPenalty",
|
|
501
|
-
"charges": [
|
|
502
|
-
{
|
|
503
|
-
"bps": 0
|
|
504
|
-
}
|
|
505
|
-
],
|
|
506
|
-
"expires": {
|
|
507
|
-
"offset": "PT15M"
|
|
508
|
-
},
|
|
509
|
-
"fixes": [
|
|
510
|
-
"amount",
|
|
511
|
-
"buyerAccountId"
|
|
512
|
-
],
|
|
513
|
-
"netDestinationField": "buyerAccountId",
|
|
514
|
-
"netRef": "unwindRefund"
|
|
515
|
-
}
|
|
516
|
-
```
|
|
517
|
-
|
|
518
|
-
## decided amount
|
|
519
|
-
|
|
520
|
-
- Scope: action
|
|
521
|
-
- UDL target: `decidedAmount`
|
|
522
|
-
- Cardinality: one
|
|
523
|
-
- Linear outputs: `field`
|
|
524
|
-
- Effects: none
|
|
525
|
-
- Law: Requirements-as-data law and closure law
|
|
526
|
-
- Conformance source: `compiled-watch-club.udl`
|
|
527
|
-
|
|
528
|
-
```json
|
|
529
|
-
{
|
|
530
|
-
"boundField": "depositAmount",
|
|
531
|
-
"field": "damageAmount",
|
|
532
|
-
"remainderAction": "return_deposit"
|
|
533
|
-
}
|
|
534
|
-
```
|
|
535
|
-
|
|
536
|
-
## deadline
|
|
537
|
-
|
|
538
|
-
- Scope: action
|
|
539
|
-
- UDL target: `deadline`
|
|
540
|
-
- Cardinality: one
|
|
541
|
-
- Linear outputs: none
|
|
542
|
-
- Effects: schedules.deadline per clause
|
|
543
|
-
- Law: Time law and closure law
|
|
544
|
-
- Conformance source: `compiled-watch-club.udl`
|
|
545
|
-
|
|
546
|
-
```json
|
|
547
|
-
{
|
|
548
|
-
"field": "clawbackAt"
|
|
549
|
-
}
|
|
550
|
-
```
|
|
551
|
-
|
|
552
|
-
## decision
|
|
553
|
-
|
|
554
|
-
- Scope: action
|
|
555
|
-
- UDL target: `decision`
|
|
556
|
-
- Cardinality: one
|
|
557
|
-
- Linear outputs: none
|
|
558
|
-
- Effects: decides.value from capability per clause
|
|
559
|
-
- Law: Requirements-as-data law and closure law
|
|
560
|
-
- Conformance source: `cards.udl`
|
|
561
|
-
|
|
562
|
-
```json
|
|
563
|
-
{
|
|
564
|
-
"capability": "banking_or_card_issuing",
|
|
565
|
-
"deadlineMs": 1500,
|
|
566
|
-
"onTimeout": "decline"
|
|
567
|
-
}
|
|
568
|
-
```
|
|
569
|
-
|
|
570
|
-
## computes distribute
|
|
571
|
-
|
|
572
|
-
- Scope: action
|
|
573
|
-
- UDL target: `distribute`
|
|
574
|
-
- Cardinality: one
|
|
575
|
-
- Linear outputs: `amountRef`
|
|
576
|
-
- Effects: none
|
|
577
|
-
- Law: Requirements-as-data law and closure law
|
|
578
|
-
- Conformance source: `compiled-crowdfunding.udl`
|
|
579
|
-
|
|
580
|
-
```json
|
|
581
|
-
{
|
|
582
|
-
"amountRef": "payoutShare",
|
|
583
|
-
"onZero": "skip_steps",
|
|
584
|
-
"pool": {
|
|
585
|
-
"from": "parent",
|
|
586
|
-
"path": "fields.distributableAmount"
|
|
587
|
-
},
|
|
588
|
-
"refField": "repaymentDistributionId",
|
|
589
|
-
"statuses": [
|
|
590
|
-
"recorded",
|
|
591
|
-
"paid"
|
|
592
|
-
],
|
|
593
|
-
"weightField": "committedWeight"
|
|
594
|
-
}
|
|
595
|
-
```
|
|
596
|
-
|
|
597
|
-
## description
|
|
598
|
-
|
|
599
|
-
- Scope: action
|
|
600
|
-
- UDL target: `description`
|
|
601
|
-
- Cardinality: one
|
|
602
|
-
- Linear outputs: none
|
|
603
|
-
- Effects: none
|
|
604
|
-
- Law: One-sentence law, uniform object law, and naming law
|
|
605
|
-
- Conformance source: `cards.udl`
|
|
606
|
-
|
|
607
|
-
```json
|
|
608
|
-
"Approves the customer to hold and use cards."
|
|
609
|
-
```
|
|
610
|
-
|
|
611
|
-
## due
|
|
612
|
-
|
|
613
|
-
- Scope: action
|
|
614
|
-
- UDL target: `due`
|
|
615
|
-
- Cardinality: one
|
|
616
|
-
- Linear outputs: none
|
|
617
|
-
- Effects: schedules.due per clause
|
|
618
|
-
- Law: Time law and closure law
|
|
619
|
-
- Conformance source: `cards.udl`
|
|
620
|
-
|
|
621
|
-
```json
|
|
622
|
-
{
|
|
623
|
-
"field": "expiresAt"
|
|
624
|
-
}
|
|
625
|
-
```
|
|
626
|
-
|
|
627
|
-
## earnable
|
|
628
|
-
|
|
629
|
-
- Scope: action
|
|
630
|
-
- UDL target: `earnable`
|
|
631
|
-
- Cardinality: one
|
|
632
|
-
- Linear outputs: none
|
|
633
|
-
- Effects: none
|
|
634
|
-
- Law: Requirements-as-data law and closure law
|
|
635
|
-
- Conformance source: `cards.udl`
|
|
636
|
-
|
|
637
|
-
```json
|
|
638
|
-
true
|
|
639
|
-
```
|
|
640
|
-
|
|
641
|
-
## event name
|
|
642
|
-
|
|
643
|
-
- Scope: action
|
|
644
|
-
- UDL target: `eventName`
|
|
645
|
-
- Cardinality: one
|
|
646
|
-
- Linear outputs: none
|
|
647
|
-
- Effects: none
|
|
648
|
-
- Law: Event law and naming law
|
|
649
|
-
- Conformance source: `cards.udl`
|
|
650
|
-
|
|
651
|
-
```json
|
|
652
|
-
"card.issued"
|
|
653
|
-
```
|
|
654
|
-
|
|
655
|
-
## examples
|
|
656
|
-
|
|
657
|
-
- Scope: action
|
|
658
|
-
- UDL target: `examples`
|
|
659
|
-
- Cardinality: many
|
|
660
|
-
- Linear outputs: none
|
|
661
|
-
- Effects: none
|
|
662
|
-
- Law: Requirements-as-data law and closure law
|
|
663
|
-
- Conformance source: `cards.udl`
|
|
664
|
-
|
|
665
|
-
```json
|
|
666
|
-
[
|
|
667
|
-
{
|
|
668
|
-
"input": {
|
|
669
|
-
"cardholderId": "chd_sandbox_customer0001",
|
|
670
|
-
"tenantId": "ten_sandbox_cards000001"
|
|
671
|
-
},
|
|
672
|
-
"name": "activate_approved_cardholder"
|
|
673
|
-
}
|
|
674
|
-
]
|
|
675
|
-
```
|
|
676
|
-
|
|
677
|
-
## input
|
|
678
|
-
|
|
679
|
-
- Scope: action
|
|
680
|
-
- UDL target: `input`
|
|
681
|
-
- Cardinality: one
|
|
682
|
-
- Linear outputs: none
|
|
683
|
-
- Effects: none
|
|
684
|
-
- Law: Requirements-as-data law and closure law
|
|
685
|
-
- Conformance source: `attested.udl`
|
|
686
|
-
|
|
687
|
-
```json
|
|
688
|
-
{
|
|
689
|
-
"additionalProperties": false,
|
|
690
|
-
"properties": {
|
|
691
|
-
"amount": {
|
|
692
|
-
"pattern": "^[1-9][0-9]{0,17}$",
|
|
693
|
-
"type": "string",
|
|
694
|
-
"x-hyperscale-currency": "SAR"
|
|
695
|
-
}
|
|
696
|
-
},
|
|
697
|
-
"required": [
|
|
698
|
-
"amount"
|
|
699
|
-
],
|
|
700
|
-
"type": "object"
|
|
701
|
-
}
|
|
702
|
-
```
|
|
703
|
-
|
|
704
|
-
## moves
|
|
705
|
-
|
|
706
|
-
- Scope: action
|
|
707
|
-
- UDL target: `moves`
|
|
708
|
-
- Cardinality: many
|
|
709
|
-
- Linear outputs: none
|
|
710
|
-
- Effects: moves.movement class per element; holds.reserve per element
|
|
711
|
-
- Law: One-spine law and closure law
|
|
712
|
-
- Conformance source: `agent-description.udl`
|
|
713
|
-
|
|
714
|
-
```json
|
|
715
|
-
[]
|
|
716
|
-
```
|
|
717
|
-
|
|
718
|
-
## payout
|
|
719
|
-
|
|
720
|
-
- Scope: action
|
|
721
|
-
- UDL target: `payout`
|
|
722
|
-
- Cardinality: one
|
|
723
|
-
- Linear outputs: none
|
|
724
|
-
- Effects: moves.payout.external per clause
|
|
725
|
-
- Law: One-spine law and closure law
|
|
726
|
-
- Conformance source: `compiled-watch-club.udl`
|
|
727
|
-
|
|
728
|
-
```json
|
|
729
|
-
{
|
|
730
|
-
"amount": "refs.netPayable",
|
|
731
|
-
"beneficiaryField": "payoutBeneficiaryId",
|
|
732
|
-
"beneficiaryPartyField": "payoutDestinationAccountId",
|
|
733
|
-
"capture": "payoutId",
|
|
734
|
-
"currencyField": "currency",
|
|
735
|
-
"sourceAccountField": "clubAccountId",
|
|
736
|
-
"speed": "standard"
|
|
737
|
-
}
|
|
738
|
-
```
|
|
739
|
-
|
|
740
|
-
## piece plan
|
|
741
|
-
|
|
742
|
-
- Scope: instrument
|
|
743
|
-
- UDL target: `piecePlan`
|
|
744
|
-
- Cardinality: one
|
|
745
|
-
- Linear outputs: none
|
|
746
|
-
- Effects: none
|
|
747
|
-
- Law: Requirements-as-data law and closure law
|
|
748
|
-
- Conformance source: `piece-plan-calls.udl`
|
|
749
|
-
|
|
750
|
-
```json
|
|
751
|
-
{
|
|
752
|
-
"fund_order": [
|
|
753
|
-
"p1",
|
|
754
|
-
"p2"
|
|
755
|
-
],
|
|
756
|
-
"id": "split_plan",
|
|
757
|
-
"pieces": [
|
|
758
|
-
{
|
|
759
|
-
"amount": "p1Amount",
|
|
760
|
-
"id": "p1",
|
|
761
|
-
"refund_to": "p1Refund",
|
|
762
|
-
"release_to": "p1Release"
|
|
763
|
-
},
|
|
764
|
-
{
|
|
765
|
-
"amount": "p2Amount",
|
|
766
|
-
"id": "p2",
|
|
767
|
-
"refund_to": "p2Refund",
|
|
768
|
-
"release_to": "p2Release"
|
|
769
|
-
}
|
|
770
|
-
],
|
|
771
|
-
"refund_order": [
|
|
772
|
-
"p1"
|
|
773
|
-
],
|
|
774
|
-
"release_order": [
|
|
775
|
-
"p1",
|
|
776
|
-
"p2"
|
|
777
|
-
],
|
|
778
|
-
"total": "totalAmount",
|
|
779
|
-
"unfund_order": [
|
|
780
|
-
"p2",
|
|
781
|
-
"p1"
|
|
782
|
-
]
|
|
783
|
-
}
|
|
784
|
-
```
|
|
785
|
-
|
|
786
|
-
## piece stage
|
|
787
|
-
|
|
788
|
-
- Scope: action
|
|
789
|
-
- UDL target: `pieceStage`
|
|
790
|
-
- Cardinality: one
|
|
791
|
-
- Linear outputs: none
|
|
792
|
-
- Effects: none
|
|
793
|
-
- Law: Requirements-as-data law and closure law
|
|
794
|
-
- Conformance source: `piece-plan-calls.udl`
|
|
795
|
-
|
|
796
|
-
```json
|
|
797
|
-
{
|
|
798
|
-
"plan": "split_plan",
|
|
799
|
-
"stage": "fund"
|
|
800
|
-
}
|
|
801
|
-
```
|
|
802
|
-
|
|
803
|
-
## port
|
|
804
|
-
|
|
805
|
-
- Scope: action
|
|
806
|
-
- UDL target: `port`
|
|
807
|
-
- Cardinality: one
|
|
808
|
-
- Linear outputs: none
|
|
809
|
-
- Effects: decides.tenant_port per clause
|
|
810
|
-
- Law: Requirements-as-data law and closure law
|
|
811
|
-
- Conformance source: `attested.udl`
|
|
812
|
-
|
|
813
|
-
```json
|
|
814
|
-
{
|
|
815
|
-
"allowedParties": [
|
|
816
|
-
"decider"
|
|
817
|
-
],
|
|
818
|
-
"capture": "decidedBy"
|
|
819
|
-
}
|
|
820
|
-
```
|
|
821
|
-
|
|
822
|
-
## principal
|
|
823
|
-
|
|
824
|
-
- Scope: action
|
|
825
|
-
- UDL target: `principal`
|
|
826
|
-
- Cardinality: one
|
|
827
|
-
- Linear outputs: none
|
|
828
|
-
- Effects: none
|
|
829
|
-
- Law: Requirements-as-data law and closure law
|
|
830
|
-
- Conformance source: `complete-contract.udl`
|
|
831
|
-
|
|
832
|
-
```json
|
|
833
|
-
"user_session"
|
|
834
|
-
```
|
|
835
|
-
|
|
836
|
-
## public action
|
|
837
|
-
|
|
838
|
-
- Scope: action
|
|
839
|
-
- UDL target: `publicAction`
|
|
840
|
-
- Cardinality: one
|
|
841
|
-
- Linear outputs: none
|
|
842
|
-
- Effects: none
|
|
843
|
-
- Law: Event law and naming law
|
|
844
|
-
- Conformance source: `compiled-crowdfunding.udl`
|
|
845
|
-
|
|
846
|
-
```json
|
|
847
|
-
"abandonLenderCommitment"
|
|
848
|
-
```
|
|
849
|
-
|
|
850
|
-
## reconcile
|
|
851
|
-
|
|
852
|
-
- Scope: action
|
|
853
|
-
- UDL target: `reconcile`
|
|
854
|
-
- Cardinality: many
|
|
855
|
-
- Linear outputs: none
|
|
856
|
-
- Effects: reads.reconcile per element
|
|
857
|
-
- Law: Requirements-as-data law and closure law
|
|
858
|
-
- Conformance source: `compiled-watch-club.udl`
|
|
859
|
-
|
|
860
|
-
`exception.amountField` must name a required money field on the exception child. `exception.reasonField` must name a required text field on that child. UDL evolution supplies no default for either name.
|
|
861
|
-
|
|
862
|
-
```json
|
|
863
|
-
[
|
|
864
|
-
{
|
|
865
|
-
"amount": "refs.netPayable",
|
|
866
|
-
"capture": "settlementEvidenceId",
|
|
867
|
-
"counterpartyRef": "payoutId",
|
|
868
|
-
"currencyField": "currency",
|
|
869
|
-
"direction": "debit",
|
|
870
|
-
"evidence": "statement_line",
|
|
871
|
-
"exception": {
|
|
872
|
-
"amountField": "amount",
|
|
873
|
-
"childInstrumentId": "seller_payout_debit_adjustment",
|
|
874
|
-
"maxOpen": 1,
|
|
875
|
-
"reasonField": "adjustmentReference",
|
|
876
|
-
"refField": "sellerPayoutId"
|
|
877
|
-
},
|
|
878
|
-
"match": {
|
|
879
|
-
"law": "exact"
|
|
880
|
-
},
|
|
881
|
-
"within": {
|
|
882
|
-
"offset": "P30D"
|
|
883
|
-
}
|
|
884
|
-
}
|
|
885
|
-
]
|
|
886
|
-
```
|
|
887
|
-
|
|
888
|
-
## computes remainder
|
|
889
|
-
|
|
890
|
-
- Scope: action
|
|
891
|
-
- UDL target: `remainder`
|
|
892
|
-
- Cardinality: one
|
|
893
|
-
- Linear outputs: `amountRef`
|
|
894
|
-
- Effects: none
|
|
895
|
-
- Law: Requirements-as-data law and closure law
|
|
896
|
-
- Conformance source: `complete-contract.udl`
|
|
897
|
-
|
|
898
|
-
```json
|
|
899
|
-
{
|
|
900
|
-
"amountRef": "remainingAmount",
|
|
901
|
-
"onZero": "refuse",
|
|
902
|
-
"totalPath": "fields.amount"
|
|
903
|
-
}
|
|
904
|
-
```
|
|
905
|
-
|
|
906
|
-
## requires aggregate
|
|
907
|
-
|
|
908
|
-
- Scope: action
|
|
909
|
-
- UDL target: `requiresAggregate`
|
|
910
|
-
- Cardinality: many
|
|
911
|
-
- Linear outputs: none
|
|
912
|
-
- Effects: reads.requires_aggregate per clause
|
|
913
|
-
- Law: Requirements-as-data law and closure law
|
|
914
|
-
- Conformance source: `compiled-crowdfunding.udl`
|
|
915
|
-
|
|
916
|
-
```json
|
|
917
|
-
[
|
|
918
|
-
{
|
|
919
|
-
"check": {
|
|
920
|
-
"amountField": "amount",
|
|
921
|
-
"kind": "sum_exactly",
|
|
922
|
-
"targetField": "installment1Amount"
|
|
923
|
-
},
|
|
924
|
-
"instrumentId": "borrower_loan_installment_1_payment",
|
|
925
|
-
"over": "children",
|
|
926
|
-
"refField": "borrowerLoanId",
|
|
927
|
-
"statuses": [
|
|
928
|
-
"paid"
|
|
929
|
-
]
|
|
930
|
-
}
|
|
931
|
-
]
|
|
932
|
-
```
|
|
933
|
-
|
|
934
|
-
## requires checks
|
|
935
|
-
|
|
936
|
-
- Scope: action
|
|
937
|
-
- UDL target: `requiresChecks`
|
|
938
|
-
- Cardinality: many
|
|
939
|
-
- Linear outputs: none
|
|
940
|
-
- Effects: reads.requires_checks per clause
|
|
941
|
-
- Law: Requirements-as-data law and closure law
|
|
942
|
-
- Conformance source: `complete-contract.udl`
|
|
943
|
-
|
|
944
|
-
```json
|
|
945
|
-
[
|
|
946
|
-
{
|
|
947
|
-
"checkKind": "identity_verification",
|
|
948
|
-
"family": "national_identity",
|
|
949
|
-
"maxAge": "P30D",
|
|
950
|
-
"statuses": [
|
|
951
|
-
"completed"
|
|
952
|
-
],
|
|
953
|
-
"subjectField": "subjectId"
|
|
954
|
-
}
|
|
955
|
-
]
|
|
956
|
-
```
|
|
957
|
-
|
|
958
|
-
## requires drained
|
|
959
|
-
|
|
960
|
-
- Scope: action
|
|
961
|
-
- UDL target: `requiresDrainedAccount`
|
|
962
|
-
- Cardinality: one
|
|
963
|
-
- Linear outputs: none
|
|
964
|
-
- Effects: none
|
|
965
|
-
- Law: Requirements-as-data law and closure law
|
|
966
|
-
- Conformance source: `commerce-escrow.udl`
|
|
967
|
-
|
|
968
|
-
```json
|
|
969
|
-
{
|
|
970
|
-
"path": "refs.escrowAccountId"
|
|
971
|
-
}
|
|
972
|
-
```
|
|
973
|
-
|
|
974
|
-
## requires exposure
|
|
975
|
-
|
|
976
|
-
- Scope: action
|
|
977
|
-
- UDL target: `requiresExposure`
|
|
978
|
-
- Cardinality: many
|
|
979
|
-
- Linear outputs: none
|
|
980
|
-
- Effects: none
|
|
981
|
-
- Law: Requirements-as-data law and closure law
|
|
982
|
-
- Conformance source: `compiled-crowdfunding.udl`
|
|
983
|
-
|
|
984
|
-
```json
|
|
985
|
-
[
|
|
986
|
-
{
|
|
987
|
-
"amountField": "amount",
|
|
988
|
-
"anchorField": "borrowerLoanId",
|
|
989
|
-
"capField": "installment1Amount",
|
|
990
|
-
"capOnAnchor": true,
|
|
991
|
-
"childInstrumentId": "borrower_loan_installment_1_payment",
|
|
992
|
-
"statuses": [
|
|
993
|
-
"paid"
|
|
994
|
-
]
|
|
995
|
-
}
|
|
996
|
-
]
|
|
997
|
-
```
|
|
998
|
-
|
|
999
|
-
## requires refs
|
|
1000
|
-
|
|
1001
|
-
- Scope: action
|
|
1002
|
-
- UDL target: `requiresRefs`
|
|
1003
|
-
- Cardinality: many
|
|
1004
|
-
- Linear outputs: none
|
|
1005
|
-
- Effects: reads.requires_refs per clause
|
|
1006
|
-
- Law: Requirements-as-data law and closure law
|
|
1007
|
-
- Conformance source: `attested.udl`
|
|
1008
|
-
|
|
1009
|
-
```json
|
|
1010
|
-
[
|
|
1011
|
-
{
|
|
1012
|
-
"attests": {
|
|
1013
|
-
"action": "fields.actionName",
|
|
1014
|
-
"consume": "consume",
|
|
1015
|
-
"digest": "fields.digest",
|
|
1016
|
-
"expiresAt": "fields.expiry",
|
|
1017
|
-
"instrument": "fields.requestInstrument",
|
|
1018
|
-
"party": "decider",
|
|
1019
|
-
"role": "fields.role"
|
|
1020
|
-
},
|
|
1021
|
-
"field": "approvalId",
|
|
1022
|
-
"match": {
|
|
1023
|
-
"instrumentInstanceId": "fields.requestId"
|
|
1024
|
-
},
|
|
1025
|
-
"statuses": [
|
|
1026
|
-
"approved"
|
|
1027
|
-
]
|
|
1028
|
-
}
|
|
1029
|
-
]
|
|
1030
|
-
```
|
|
1031
|
-
|
|
1032
|
-
## sandbox failure point
|
|
1033
|
-
|
|
1034
|
-
- Scope: action
|
|
1035
|
-
- UDL target: `sandboxFailurePoint`
|
|
1036
|
-
- Cardinality: one
|
|
1037
|
-
- Linear outputs: none
|
|
1038
|
-
- Effects: none
|
|
1039
|
-
- Law: Requirements-as-data law and closure law
|
|
1040
|
-
- Conformance source: `commerce-escrow.udl`
|
|
1041
|
-
|
|
1042
|
-
```json
|
|
1043
|
-
"funding"
|
|
1044
|
-
```
|
|
1045
|
-
|
|
1046
|
-
## sets at
|
|
1047
|
-
|
|
1048
|
-
- Scope: action
|
|
1049
|
-
- UDL target: `setsAt`
|
|
1050
|
-
- Cardinality: one
|
|
1051
|
-
- Linear outputs: none
|
|
1052
|
-
- Effects: none
|
|
1053
|
-
- Law: Time law and closure law
|
|
1054
|
-
- Conformance source: `compiled-crowdfunding.udl`
|
|
1055
|
-
|
|
1056
|
-
```json
|
|
1057
|
-
{
|
|
1058
|
-
"field": "installment1DelinquentAfter",
|
|
1059
|
-
"marker": true,
|
|
1060
|
-
"offset": "PT1S"
|
|
1061
|
-
}
|
|
1062
|
-
```
|
|
1063
|
-
|
|
1064
|
-
## computes signed_sum
|
|
1065
|
-
|
|
1066
|
-
- Scope: action
|
|
1067
|
-
- UDL target: `signedSum`
|
|
1068
|
-
- Cardinality: one
|
|
1069
|
-
- Linear outputs: `amountRef`
|
|
1070
|
-
- Effects: none
|
|
1071
|
-
- Law: Requirements-as-data law and closure law
|
|
1072
|
-
- Conformance source: `compiled-watch-club.udl`
|
|
1073
|
-
|
|
1074
|
-
```json
|
|
1075
|
-
{
|
|
1076
|
-
"amountRef": "netPayable",
|
|
1077
|
-
"onNegative": "refuse",
|
|
1078
|
-
"onZero": "refuse",
|
|
1079
|
-
"sources": [
|
|
1080
|
-
{
|
|
1081
|
-
"amountField": "amount",
|
|
1082
|
-
"instrumentId": "seller_payout_capture_entry",
|
|
1083
|
-
"refField": "sellerPayoutId",
|
|
1084
|
-
"sign": "add",
|
|
1085
|
-
"statuses": [
|
|
1086
|
-
"accrued"
|
|
1087
|
-
],
|
|
1088
|
-
"subtotalRef": "grossCaptureAmount"
|
|
1089
|
-
},
|
|
1090
|
-
{
|
|
1091
|
-
"amountField": "amount",
|
|
1092
|
-
"instrumentId": "seller_payout_credit_adjustment",
|
|
1093
|
-
"refField": "sellerPayoutId",
|
|
1094
|
-
"sign": "add",
|
|
1095
|
-
"statuses": [
|
|
1096
|
-
"applied"
|
|
1097
|
-
],
|
|
1098
|
-
"subtotalRef": "creditAdjustmentAmount"
|
|
1099
|
-
},
|
|
1100
|
-
{
|
|
1101
|
-
"amountField": "amount",
|
|
1102
|
-
"instrumentId": "seller_payout_debit_adjustment",
|
|
1103
|
-
"refField": "sellerPayoutId",
|
|
1104
|
-
"sign": "subtract",
|
|
1105
|
-
"statuses": [
|
|
1106
|
-
"applied"
|
|
1107
|
-
],
|
|
1108
|
-
"subtotalRef": "debitAdjustmentAmount"
|
|
1109
|
-
}
|
|
1110
|
-
]
|
|
1111
|
-
}
|
|
1112
|
-
```
|
|
1113
|
-
|
|
1114
|
-
## steps
|
|
1115
|
-
|
|
1116
|
-
- Scope: action
|
|
1117
|
-
- UDL target: `steps`
|
|
1118
|
-
- Cardinality: many
|
|
1119
|
-
- Linear outputs: none
|
|
1120
|
-
- Effects: none
|
|
1121
|
-
- Law: One-spine law and closure law
|
|
1122
|
-
- Conformance source: `agent-description.udl`
|
|
1123
|
-
|
|
1124
|
-
```json
|
|
1125
|
-
[]
|
|
1126
|
-
```
|
|
1127
|
-
|
|
1128
|
-
## summary
|
|
1129
|
-
|
|
1130
|
-
- Scope: action
|
|
1131
|
-
- UDL target: `summary`
|
|
1132
|
-
- Cardinality: one
|
|
1133
|
-
- Linear outputs: none
|
|
1134
|
-
- Effects: none
|
|
1135
|
-
- Law: One-sentence law, uniform object law, and naming law
|
|
1136
|
-
- Conformance source: `agent-description.udl`
|
|
1137
|
-
|
|
1138
|
-
```json
|
|
1139
|
-
"Close the note."
|
|
1140
|
-
```
|
|
1141
|
-
|
|
1142
|
-
## updates
|
|
1143
|
-
|
|
1144
|
-
- Scope: action
|
|
1145
|
-
- UDL target: `updates`
|
|
1146
|
-
- Cardinality: many
|
|
1147
|
-
- Linear outputs: none
|
|
1148
|
-
- Effects: none
|
|
1149
|
-
- Law: Requirements-as-data law and closure law
|
|
1150
|
-
- Conformance source: `commerce-escrow.udl`
|
|
1151
|
-
|
|
1152
|
-
```json
|
|
1153
|
-
[
|
|
1154
|
-
"escrowOrderId"
|
|
1155
|
-
]
|
|
1156
|
-
```
|
|
1157
|
-
|
|
1158
|
-
## notify
|
|
1159
|
-
|
|
1160
|
-
- Scope: action
|
|
1161
|
-
- UDL target: `effects.notifies`
|
|
1162
|
-
- Cardinality: many
|
|
1163
|
-
- Linear outputs: none
|
|
1164
|
-
- Effects: notifies.value from channel per element
|
|
1165
|
-
- Law: Requirements-as-data law and closure law
|
|
1166
|
-
- Conformance source: `effect-signatures.udl`
|
|
1167
|
-
|
|
1168
|
-
```json
|
|
1169
|
-
[
|
|
1170
|
-
{
|
|
1171
|
-
"channel": "email",
|
|
1172
|
-
"role": "beneficiary",
|
|
1173
|
-
"signature": "notifies.email",
|
|
1174
|
-
"source": "effects.notifies[0]"
|
|
1175
|
-
}
|
|
1176
|
-
]
|
|
1177
|
-
```
|
|
1178
|
-
|
|
1179
|
-
## agent description
|
|
1180
|
-
|
|
1181
|
-
- Scope: instrument
|
|
1182
|
-
- UDL target: `agentDescription`
|
|
1183
|
-
- Cardinality: one
|
|
1184
|
-
- Linear outputs: none
|
|
1185
|
-
- Effects: none
|
|
1186
|
-
- Law: Requirements-as-data law and closure law
|
|
1187
|
-
- Conformance source: `agent-description.udl`
|
|
1188
|
-
|
|
1189
|
-
```json
|
|
1190
|
-
"Close a note that has already been filed. Takes the note id and nothing else, and moves no money."
|
|
1191
|
-
```
|
|
1192
|
-
|
|
1193
|
-
## aggregate invariants
|
|
1194
|
-
|
|
1195
|
-
- Scope: instrument
|
|
1196
|
-
- UDL target: `aggregateInvariants`
|
|
1197
|
-
- Cardinality: many
|
|
1198
|
-
- Linear outputs: none
|
|
1199
|
-
- Effects: none
|
|
1200
|
-
- Law: Closure law
|
|
1201
|
-
- Conformance source: `compiled-crowdfunding.udl`
|
|
1202
|
-
|
|
1203
|
-
```json
|
|
1204
|
-
[
|
|
1205
|
-
{
|
|
1206
|
-
"childField": "amount",
|
|
1207
|
-
"childInstrumentId": "borrower_loan_installment_1_payment",
|
|
1208
|
-
"childRefField": "borrowerLoanId",
|
|
1209
|
-
"childStatuses": [
|
|
1210
|
-
"paid"
|
|
1211
|
-
],
|
|
1212
|
-
"parentField": "installment1Amount"
|
|
1213
|
-
},
|
|
1214
|
-
{
|
|
1215
|
-
"childField": "amount",
|
|
1216
|
-
"childInstrumentId": "borrower_loan_installment_2_payment",
|
|
1217
|
-
"childRefField": "borrowerLoanId",
|
|
1218
|
-
"childStatuses": [
|
|
1219
|
-
"paid"
|
|
1220
|
-
],
|
|
1221
|
-
"parentField": "installment2Amount"
|
|
1222
|
-
}
|
|
1223
|
-
]
|
|
1224
|
-
```
|
|
1225
|
-
|
|
1226
|
-
## caller parked states
|
|
1227
|
-
|
|
1228
|
-
- Scope: instrument
|
|
1229
|
-
- UDL target: `callerParkedStates`
|
|
1230
|
-
- Cardinality: one
|
|
1231
|
-
- Linear outputs: none
|
|
1232
|
-
- Effects: none
|
|
1233
|
-
- Law: Time law and closure law
|
|
1234
|
-
- Conformance source: `cards.udl`
|
|
1235
|
-
|
|
1236
|
-
```json
|
|
1237
|
-
{
|
|
1238
|
-
"active": "a cardholder in good standing stays active until the issuer or holder acts",
|
|
1239
|
-
"pending": "activation follows the issuer's verification outcome",
|
|
1240
|
-
"suspended": "reinstatement or closure is an issuer decision"
|
|
1241
|
-
}
|
|
1242
|
-
```
|
|
1243
|
-
|
|
1244
|
-
## description
|
|
1245
|
-
|
|
1246
|
-
- Scope: instrument
|
|
1247
|
-
- UDL target: `description`
|
|
1248
|
-
- Cardinality: one
|
|
1249
|
-
- Linear outputs: none
|
|
1250
|
-
- Effects: none
|
|
1251
|
-
- Law: One-sentence law, uniform object law, and naming law
|
|
1252
|
-
- Conformance source: `cards.udl`
|
|
1253
|
-
|
|
1254
|
-
```json
|
|
1255
|
-
"Approves the customer to hold and use cards."
|
|
1256
|
-
```
|
|
1257
|
-
|
|
1258
|
-
## dials
|
|
1259
|
-
|
|
1260
|
-
- Scope: instrument
|
|
1261
|
-
- UDL target: `dials`
|
|
1262
|
-
- Cardinality: many
|
|
1263
|
-
- Linear outputs: none
|
|
1264
|
-
- Effects: none
|
|
1265
|
-
- Law: Requirements-as-data law and closure law
|
|
1266
|
-
- Conformance source: `cards.udl`
|
|
1267
|
-
|
|
1268
|
-
```json
|
|
1269
|
-
[
|
|
1270
|
-
{
|
|
1271
|
-
"field": "expiresAt",
|
|
1272
|
-
"key": "authorization_window",
|
|
1273
|
-
"kind": "window",
|
|
1274
|
-
"maxOffset": "P30D",
|
|
1275
|
-
"summary": "Grace beyond the authorization expiry timestamp before an uncaptured hold expires.",
|
|
1276
|
-
"title": "Authorization window"
|
|
1277
|
-
},
|
|
1278
|
-
{
|
|
1279
|
-
"action": "approve",
|
|
1280
|
-
"key": "policy_decision_deadline_ms",
|
|
1281
|
-
"kind": "decision_deadline_ms",
|
|
1282
|
-
"maxMs": 5000,
|
|
1283
|
-
"minMs": 500,
|
|
1284
|
-
"summary": "How long approve waits for the card policy's just-in-time decision before the timeout default declines.",
|
|
1285
|
-
"title": "Policy decision deadline"
|
|
1286
|
-
}
|
|
1287
|
-
]
|
|
1288
|
-
```
|
|
1289
|
-
|
|
1290
|
-
## distinct parties
|
|
1291
|
-
|
|
1292
|
-
- Scope: instrument
|
|
1293
|
-
- UDL target: `distinctParties`
|
|
1294
|
-
- Cardinality: one
|
|
1295
|
-
- Linear outputs: none
|
|
1296
|
-
- Effects: none
|
|
1297
|
-
- Law: Closure law
|
|
1298
|
-
- Conformance source: `compiled-watch-club.udl`
|
|
1299
|
-
|
|
1300
|
-
```json
|
|
1301
|
-
true
|
|
1302
|
-
```
|
|
1303
|
-
|
|
1304
|
-
## computes derived
|
|
1305
|
-
|
|
1306
|
-
- Scope: instrument
|
|
1307
|
-
- UDL target: `derivedAmounts`
|
|
1308
|
-
- Cardinality: many
|
|
1309
|
-
- Linear outputs: none
|
|
1310
|
-
- Effects: none
|
|
1311
|
-
- Law: One-spine law and closure law
|
|
1312
|
-
- Conformance source: `compiled-crowdfunding.udl`
|
|
1313
|
-
|
|
1314
|
-
```json
|
|
1315
|
-
[
|
|
1316
|
-
{
|
|
1317
|
-
"field": "platformFee",
|
|
1318
|
-
"rounding": "floor",
|
|
1319
|
-
"rule": {
|
|
1320
|
-
"bps": 200,
|
|
1321
|
-
"kind": "percentage_of"
|
|
1322
|
-
},
|
|
1323
|
-
"sourceField": "principalAmount"
|
|
1324
|
-
}
|
|
1325
|
-
]
|
|
1326
|
-
```
|
|
1327
|
-
|
|
1328
|
-
## computes fees
|
|
1329
|
-
|
|
1330
|
-
- Scope: instrument
|
|
1331
|
-
- UDL target: `feeRules`
|
|
1332
|
-
- Cardinality: many
|
|
1333
|
-
- Linear outputs: none
|
|
1334
|
-
- Effects: none
|
|
1335
|
-
- Law: One-spine law and closure law
|
|
1336
|
-
- Conformance source: `compiled-watch-club.udl`
|
|
1337
|
-
|
|
1338
|
-
```json
|
|
1339
|
-
[
|
|
1340
|
-
{
|
|
1341
|
-
"amountField": "checkoutFee",
|
|
1342
|
-
"baseField": "purchasePrice",
|
|
1343
|
-
"bearerField": "memberAccountId",
|
|
1344
|
-
"position": "on_top",
|
|
1345
|
-
"rule": {
|
|
1346
|
-
"currencyField": "currency",
|
|
1347
|
-
"field": "checkoutFee",
|
|
1348
|
-
"kind": "exact"
|
|
1349
|
-
}
|
|
1350
|
-
},
|
|
1351
|
-
{
|
|
1352
|
-
"amountField": "carvedFeeAmount",
|
|
1353
|
-
"baseField": "purchasePrice",
|
|
1354
|
-
"bearerField": "sellerAccountId",
|
|
1355
|
-
"position": "carved",
|
|
1356
|
-
"rule": {
|
|
1357
|
-
"kind": "tiered",
|
|
1358
|
-
"tiers": [
|
|
1359
|
-
{
|
|
1360
|
-
"fromInclusive": "0",
|
|
1361
|
-
"rule": {
|
|
1362
|
-
"bps": 100,
|
|
1363
|
-
"kind": "bps"
|
|
1364
|
-
},
|
|
1365
|
-
"toExclusive": "10000"
|
|
1366
|
-
},
|
|
1367
|
-
{
|
|
1368
|
-
"fromInclusive": "10000",
|
|
1369
|
-
"rule": {
|
|
1370
|
-
"currencyField": "currency",
|
|
1371
|
-
"field": "highValueFee",
|
|
1372
|
-
"kind": "exact"
|
|
1373
|
-
}
|
|
1374
|
-
}
|
|
1375
|
-
]
|
|
1376
|
-
}
|
|
1377
|
-
}
|
|
1378
|
-
]
|
|
1379
|
-
```
|
|
1380
|
-
|
|
1381
|
-
## id prefix
|
|
1382
|
-
|
|
1383
|
-
- Scope: instrument
|
|
1384
|
-
- UDL target: `idPrefix`
|
|
1385
|
-
- Cardinality: one
|
|
1386
|
-
- Linear outputs: none
|
|
1387
|
-
- Effects: none
|
|
1388
|
-
- Law: One-sentence law, uniform object law, and naming law
|
|
1389
|
-
- Conformance source: `agent-description.udl`
|
|
1390
|
-
|
|
1391
|
-
```json
|
|
1392
|
-
"note"
|
|
1393
|
-
```
|
|
1394
|
-
|
|
1395
|
-
## nav
|
|
1396
|
-
|
|
1397
|
-
- Scope: instrument
|
|
1398
|
-
- UDL target: `nav`
|
|
1399
|
-
- Cardinality: many
|
|
1400
|
-
- Linear outputs: none
|
|
1401
|
-
- Effects: none
|
|
1402
|
-
- Law: One-sentence law, uniform object law, and naming law
|
|
1403
|
-
- Conformance source: `cards.udl`
|
|
1404
|
-
|
|
1405
|
-
```json
|
|
1406
|
-
[
|
|
1407
|
-
"Blueprints",
|
|
1408
|
-
"Cardholders"
|
|
1409
|
-
]
|
|
1410
|
-
```
|
|
1411
|
-
|
|
1412
|
-
## partitions
|
|
1413
|
-
|
|
1414
|
-
- Scope: instrument
|
|
1415
|
-
- UDL target: `partitions`
|
|
1416
|
-
- Cardinality: many
|
|
1417
|
-
- Linear outputs: none
|
|
1418
|
-
- Effects: none
|
|
1419
|
-
- Law: One-spine law and closure law
|
|
1420
|
-
- Conformance source: `compiled-crowdfunding.udl`
|
|
1421
|
-
|
|
1422
|
-
```json
|
|
1423
|
-
[
|
|
1424
|
-
{
|
|
1425
|
-
"pieceFields": [
|
|
1426
|
-
"installment1Amount",
|
|
1427
|
-
"installment2Amount"
|
|
1428
|
-
],
|
|
1429
|
-
"totalField": "principalAmount"
|
|
1430
|
-
}
|
|
1431
|
-
]
|
|
1432
|
-
```
|
|
1433
|
-
|
|
1434
|
-
## subject
|
|
1435
|
-
|
|
1436
|
-
- Scope: instrument
|
|
1437
|
-
- UDL target: `subject`
|
|
1438
|
-
- Cardinality: one
|
|
1439
|
-
- Linear outputs: none
|
|
1440
|
-
- Effects: none
|
|
1441
|
-
- Law: Closure law
|
|
1442
|
-
- Conformance source: `commerce-escrow.udl`
|
|
1443
|
-
|
|
1444
|
-
```json
|
|
1445
|
-
{
|
|
1446
|
-
"kinds": [
|
|
1447
|
-
"vehicle",
|
|
1448
|
-
"merchandise"
|
|
1449
|
-
]
|
|
1450
|
-
}
|
|
1451
|
-
```
|
|
1452
|
-
|
|
1453
|
-
## summary
|
|
1454
|
-
|
|
1455
|
-
- Scope: instrument
|
|
1456
|
-
- UDL target: `summary`
|
|
1457
|
-
- Cardinality: one
|
|
1458
|
-
- Linear outputs: none
|
|
1459
|
-
- Effects: none
|
|
1460
|
-
- Law: One-sentence law, uniform object law, and naming law
|
|
1461
|
-
- Conformance source: `agent-description.udl`
|
|
1462
|
-
|
|
1463
|
-
```json
|
|
1464
|
-
"Close the note."
|
|
1465
|
-
```
|
|
1466
|
-
|
|
1467
|
-
## surface visibility
|
|
1468
|
-
|
|
1469
|
-
- Scope: instrument
|
|
1470
|
-
- UDL target: `surfaceVisibility`
|
|
1471
|
-
- Cardinality: one
|
|
1472
|
-
- Linear outputs: none
|
|
1473
|
-
- Effects: none
|
|
1474
|
-
- Law: One-sentence law, uniform object law, and naming law
|
|
1475
|
-
- Conformance source: `complete-contract.udl`
|
|
1476
|
-
|
|
1477
|
-
```json
|
|
1478
|
-
"public"
|
|
1479
|
-
```
|
|
1480
|
-
|
|
1481
|
-
## template binding
|
|
1482
|
-
|
|
1483
|
-
- Scope: instrument
|
|
1484
|
-
- UDL target: `templateBinding`
|
|
1485
|
-
- Cardinality: one
|
|
1486
|
-
- Linear outputs: none
|
|
1487
|
-
- Effects: none
|
|
1488
|
-
- Law: Requirements-as-data law and closure law
|
|
1489
|
-
- Conformance source: `vocabulary.udl`
|
|
1490
|
-
|
|
1491
|
-
```json
|
|
1492
|
-
{
|
|
1493
|
-
"id": "assessment",
|
|
1494
|
-
"parameters": {
|
|
1495
|
-
"cost": true
|
|
1496
|
-
}
|
|
1497
|
-
}
|
|
1498
|
-
```
|
|
1499
|
-
|
|
1500
|
-
## template id
|
|
1501
|
-
|
|
1502
|
-
- Scope: instrument
|
|
1503
|
-
- UDL target: `templateId`
|
|
1504
|
-
- Cardinality: one
|
|
1505
|
-
- Linear outputs: none
|
|
1506
|
-
- Effects: none
|
|
1507
|
-
- Law: One-sentence law, uniform object law, and naming law
|
|
1508
|
-
- Conformance source: `cards.udl`
|
|
1509
|
-
|
|
1510
|
-
```json
|
|
1511
|
-
"wallet_cards"
|
|
1512
|
-
```
|
|
1513
|
-
|
|
1514
|
-
## title
|
|
1515
|
-
|
|
1516
|
-
- Scope: instrument
|
|
1517
|
-
- UDL target: `title`
|
|
1518
|
-
- Cardinality: one
|
|
1519
|
-
- Linear outputs: none
|
|
1520
|
-
- Effects: none
|
|
1521
|
-
- Law: One-sentence law, uniform object law, and naming law
|
|
1522
|
-
- Conformance source: `agent-description.udl`
|
|
1523
|
-
|
|
1524
|
-
```json
|
|
1525
|
-
"Note"
|
|
1526
|
-
```
|
|
1527
|
-
|
|
1528
|
-
## update
|
|
1529
|
-
|
|
1530
|
-
- Scope: instrument
|
|
1531
|
-
- UDL target: `update`
|
|
1532
|
-
- Cardinality: one
|
|
1533
|
-
- Linear outputs: none
|
|
1534
|
-
- Effects: none
|
|
1535
|
-
- Law: Closure law
|
|
1536
|
-
- Conformance source: `cards.udl`
|
|
1537
|
-
|
|
1538
|
-
```json
|
|
1539
|
-
{
|
|
1540
|
-
"examples": [
|
|
1541
|
-
{
|
|
1542
|
-
"input": {
|
|
1543
|
-
"cardholderId": "chd_sandbox_customer0001",
|
|
1544
|
-
"displayName": "Noura Al Saud",
|
|
1545
|
-
"email": "noura@example.test",
|
|
1546
|
-
"tenantId": "ten_sandbox_cards000001"
|
|
1547
|
-
},
|
|
1548
|
-
"name": "update_cardholder_contact"
|
|
1549
|
-
}
|
|
1550
|
-
],
|
|
1551
|
-
"fields": [
|
|
1552
|
-
"displayName",
|
|
1553
|
-
"email",
|
|
1554
|
-
"phoneNumber"
|
|
1555
|
-
],
|
|
1556
|
-
"states": [
|
|
1557
|
-
"pending",
|
|
1558
|
-
"active",
|
|
1559
|
-
"suspended"
|
|
1560
|
-
]
|
|
1561
|
-
}
|
|
1562
|
-
```
|
|
1563
|
-
|
|
1564
|
-
## request authority
|
|
1565
|
-
|
|
1566
|
-
- Scope: action
|
|
1567
|
-
- UDL target: `requestAuthority`
|
|
1568
|
-
- Cardinality: one
|
|
1569
|
-
- Linear outputs: none
|
|
1570
|
-
- Effects: none
|
|
1571
|
-
- Law: Requirements-as-data law and closure law
|
|
1572
|
-
- Conformance source: `attested.udl`
|
|
1573
|
-
|
|
1574
|
-
```json
|
|
1575
|
-
{
|
|
1576
|
-
"actionField": "actionName",
|
|
1577
|
-
"digestField": "digest",
|
|
1578
|
-
"expiresField": "expiry",
|
|
1579
|
-
"inputField": "requestInput",
|
|
1580
|
-
"instanceField": "requestId",
|
|
1581
|
-
"instrumentField": "requestInstrument",
|
|
1582
|
-
"party": "decider",
|
|
1583
|
-
"roleField": "role"
|
|
1584
|
-
}
|
|
1585
|
-
```
|