@hyperscale0/udl 2.3.0 → 2.4.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 +26 -0
- package/README.md +5 -1
- package/conformance/invalid/invalid-journeys.expected.json +3 -19
- package/conformance/invalid/invalid-journeys.udl +47 -49
- package/conformance/valid/attested.expected.json +6 -0
- package/conformance/valid/attested.udl +251 -0
- package/conformance/valid/hand-edited.expected.json +1 -1
- package/conformance/valid/hand-edited.udl +1 -1
- package/conformance/valid/minimal.expected.json +1 -1
- package/conformance/valid/minimal.udl +0 -15
- package/conformance/valid/vocabulary.expected.json +6 -0
- package/conformance/valid/vocabulary.udl +1999 -0
- package/dist/allocation.d.ts +60 -0
- package/dist/allocation.d.ts.map +1 -0
- package/dist/allocation.js +177 -0
- package/dist/allocation.js.map +1 -0
- package/dist/diagnostics.d.ts +1 -31
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js +0 -30
- package/dist/diagnostics.js.map +1 -1
- package/dist/distribution.d.ts +15 -0
- package/dist/distribution.d.ts.map +1 -0
- package/dist/distribution.js +49 -0
- package/dist/distribution.js.map +1 -0
- package/dist/effects.d.ts.map +1 -1
- package/dist/effects.js +23 -1
- package/dist/effects.js.map +1 -1
- package/dist/evolution.d.ts +12 -0
- package/dist/evolution.d.ts.map +1 -1
- package/dist/evolution.js +42 -1
- package/dist/evolution.js.map +1 -1
- package/dist/finance.d.ts +18 -1
- package/dist/finance.d.ts.map +1 -1
- package/dist/finance.js +158 -27
- package/dist/finance.js.map +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/instrument-references.d.ts +5 -0
- package/dist/instrument-references.d.ts.map +1 -0
- package/dist/instrument-references.js +69 -0
- package/dist/instrument-references.js.map +1 -0
- package/dist/limits.d.ts +3 -3
- package/dist/limits.d.ts.map +1 -1
- package/dist/limits.js +3 -7
- package/dist/limits.js.map +1 -1
- package/dist/reference.d.ts +3 -0
- package/dist/reference.d.ts.map +1 -0
- package/dist/reference.js +28 -0
- package/dist/reference.js.map +1 -0
- package/dist/schema.d.ts +1232 -83
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +398 -60
- package/dist/schema.js.map +1 -1
- package/dist/validation.d.ts +14 -0
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +75 -131
- package/dist/validation.js.map +1 -1
- package/dist/vocabulary.d.ts +23 -0
- package/dist/vocabulary.d.ts.map +1 -0
- package/dist/vocabulary.js +965 -0
- package/dist/vocabulary.js.map +1 -0
- package/docs/README.md +2 -1
- package/docs/funding-custody.md +165 -0
- package/docs/guide/09-schedules-and-allocation.md +130 -0
- package/docs/llms-full.txt +620 -101
- package/docs/llms.txt +1 -1
- package/docs/reference/clauses.md +451 -63
- package/docs/reference/cli.md +3 -1
- package/docs/reference/diagnostics.md +33 -38
- package/package.json +5 -6
- package/spec/udl.schema.json +1095 -118
- package/src/allocation.ts +259 -0
- package/src/diagnostics.ts +0 -32
- package/src/distribution.ts +61 -0
- package/src/effects.ts +27 -1
- package/src/evolution.ts +63 -3
- package/src/finance.ts +218 -24
- package/src/index.ts +30 -3
- package/src/instrument-references.ts +98 -0
- package/src/limits.ts +3 -7
- package/src/reference.ts +31 -0
- package/src/schema.ts +417 -66
- package/src/validation.ts +112 -182
- package/src/vocabulary.ts +1508 -0
package/docs/llms.txt
CHANGED
|
@@ -1,9 +1,259 @@
|
|
|
1
|
-
<!-- Generated by scripts/docs/build.ts from @hyperscale0/udl 2.
|
|
1
|
+
<!-- Generated by scripts/docs/build.ts from @hyperscale0/udl 2.4.0. Edit the source, not clauses.md. -->
|
|
2
2
|
|
|
3
3
|
# Clause reference
|
|
4
4
|
|
|
5
5
|
This page lists every entry in `udlClauseVocabulary`. The examples are copied from admitted documents under `conformance/valid`.
|
|
6
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
|
+
|
|
7
257
|
## action library
|
|
8
258
|
|
|
9
259
|
- Scope: instrument
|
|
@@ -17,7 +267,10 @@ This page lists every entry in `udlClauseVocabulary`. The examples are copied fr
|
|
|
17
267
|
```json
|
|
18
268
|
{
|
|
19
269
|
"transfers": {
|
|
20
|
-
"actionOrder": [
|
|
270
|
+
"actionOrder": [
|
|
271
|
+
"execute_fund",
|
|
272
|
+
"execute_release"
|
|
273
|
+
],
|
|
21
274
|
"actions": {
|
|
22
275
|
"execute_fund": {
|
|
23
276
|
"approval": "inherit",
|
|
@@ -40,7 +293,9 @@ This page lists every entry in `udlClauseVocabulary`. The examples are copied fr
|
|
|
40
293
|
"operation": "internal_transfer.create"
|
|
41
294
|
}
|
|
42
295
|
],
|
|
43
|
-
"order": [
|
|
296
|
+
"order": [
|
|
297
|
+
"leaf_fund"
|
|
298
|
+
],
|
|
44
299
|
"parameters": {
|
|
45
300
|
"inst": {
|
|
46
301
|
"kind": "instance"
|
|
@@ -73,7 +328,9 @@ This page lists every entry in `udlClauseVocabulary`. The examples are copied fr
|
|
|
73
328
|
"operation": "internal_transfer.create"
|
|
74
329
|
}
|
|
75
330
|
],
|
|
76
|
-
"order": [
|
|
331
|
+
"order": [
|
|
332
|
+
"leaf_rel"
|
|
333
|
+
],
|
|
77
334
|
"parameters": {
|
|
78
335
|
"inst": {
|
|
79
336
|
"kind": "instance"
|
|
@@ -127,6 +384,52 @@ This page lists every entry in `udlClauseVocabulary`. The examples are copied fr
|
|
|
127
384
|
]
|
|
128
385
|
```
|
|
129
386
|
|
|
387
|
+
## requires input
|
|
388
|
+
|
|
389
|
+
- Scope: action
|
|
390
|
+
- UDL target: `requiresInput`
|
|
391
|
+
- Cardinality: one
|
|
392
|
+
- Linear outputs: none
|
|
393
|
+
- Effects: none
|
|
394
|
+
- Law: Requirements-as-data law and closure law
|
|
395
|
+
- Conformance source: `attested.udl`
|
|
396
|
+
|
|
397
|
+
```json
|
|
398
|
+
{
|
|
399
|
+
"amount": "fields.amount"
|
|
400
|
+
}
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
## engine owned
|
|
404
|
+
|
|
405
|
+
- Scope: action
|
|
406
|
+
- UDL target: `engineOwned`
|
|
407
|
+
- Cardinality: one
|
|
408
|
+
- Linear outputs: none
|
|
409
|
+
- Effects: none
|
|
410
|
+
- Law: Requirements-as-data law and closure law
|
|
411
|
+
- Conformance source: `attested.udl`
|
|
412
|
+
|
|
413
|
+
```json
|
|
414
|
+
true
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
## capture engine
|
|
418
|
+
|
|
419
|
+
- Scope: action
|
|
420
|
+
- UDL target: `captureEngine`
|
|
421
|
+
- Cardinality: one
|
|
422
|
+
- Linear outputs: none
|
|
423
|
+
- Effects: none
|
|
424
|
+
- Law: Requirements-as-data law and closure law
|
|
425
|
+
- Conformance source: `attested.udl`
|
|
426
|
+
|
|
427
|
+
```json
|
|
428
|
+
{
|
|
429
|
+
"consumedByOperationId": "operationId"
|
|
430
|
+
}
|
|
431
|
+
```
|
|
432
|
+
|
|
130
433
|
## capture input
|
|
131
434
|
|
|
132
435
|
- Scope: action
|
|
@@ -181,7 +484,10 @@ A commit has no separate effect row. The committing action consumes the quote th
|
|
|
181
484
|
"expires": {
|
|
182
485
|
"offset": "PT15M"
|
|
183
486
|
},
|
|
184
|
-
"fixes": [
|
|
487
|
+
"fixes": [
|
|
488
|
+
"amount",
|
|
489
|
+
"buyerAccountId"
|
|
490
|
+
],
|
|
185
491
|
"netDestinationField": "buyerAccountId",
|
|
186
492
|
"netRef": "unwindRefund"
|
|
187
493
|
}
|
|
@@ -258,7 +564,10 @@ A commit has no separate effect row. The committing action consumes the quote th
|
|
|
258
564
|
"path": "fields.distributableAmount"
|
|
259
565
|
},
|
|
260
566
|
"refField": "repaymentDistributionId",
|
|
261
|
-
"statuses": [
|
|
567
|
+
"statuses": [
|
|
568
|
+
"recorded",
|
|
569
|
+
"paid"
|
|
570
|
+
],
|
|
262
571
|
"weightField": "committedWeight"
|
|
263
572
|
}
|
|
264
573
|
```
|
|
@@ -351,19 +660,21 @@ true
|
|
|
351
660
|
- Linear outputs: none
|
|
352
661
|
- Effects: none
|
|
353
662
|
- Law: Requirements-as-data law and closure law
|
|
354
|
-
- Conformance source: `
|
|
663
|
+
- Conformance source: `attested.udl`
|
|
355
664
|
|
|
356
665
|
```json
|
|
357
666
|
{
|
|
358
667
|
"additionalProperties": false,
|
|
359
668
|
"properties": {
|
|
360
|
-
"
|
|
361
|
-
"
|
|
362
|
-
"
|
|
363
|
-
"
|
|
669
|
+
"amount": {
|
|
670
|
+
"pattern": "^[1-9][0-9]{0,17}$",
|
|
671
|
+
"type": "string",
|
|
672
|
+
"x-hyperscale-currency": "SAR"
|
|
364
673
|
}
|
|
365
674
|
},
|
|
366
|
-
"required": [
|
|
675
|
+
"required": [
|
|
676
|
+
"amount"
|
|
677
|
+
],
|
|
367
678
|
"type": "object"
|
|
368
679
|
}
|
|
369
680
|
```
|
|
@@ -416,7 +727,10 @@ true
|
|
|
416
727
|
|
|
417
728
|
```json
|
|
418
729
|
{
|
|
419
|
-
"fund_order": [
|
|
730
|
+
"fund_order": [
|
|
731
|
+
"p1",
|
|
732
|
+
"p2"
|
|
733
|
+
],
|
|
420
734
|
"id": "split_plan",
|
|
421
735
|
"pieces": [
|
|
422
736
|
{
|
|
@@ -432,10 +746,18 @@ true
|
|
|
432
746
|
"release_to": "p2Release"
|
|
433
747
|
}
|
|
434
748
|
],
|
|
435
|
-
"refund_order": [
|
|
436
|
-
|
|
749
|
+
"refund_order": [
|
|
750
|
+
"p1"
|
|
751
|
+
],
|
|
752
|
+
"release_order": [
|
|
753
|
+
"p1",
|
|
754
|
+
"p2"
|
|
755
|
+
],
|
|
437
756
|
"total": "totalAmount",
|
|
438
|
-
"unfund_order": [
|
|
757
|
+
"unfund_order": [
|
|
758
|
+
"p2",
|
|
759
|
+
"p1"
|
|
760
|
+
]
|
|
439
761
|
}
|
|
440
762
|
```
|
|
441
763
|
|
|
@@ -464,11 +786,14 @@ true
|
|
|
464
786
|
- Linear outputs: none
|
|
465
787
|
- Effects: decides.tenant_port per clause
|
|
466
788
|
- Law: Requirements-as-data law and closure law
|
|
467
|
-
- Conformance source: `
|
|
789
|
+
- Conformance source: `attested.udl`
|
|
468
790
|
|
|
469
791
|
```json
|
|
470
792
|
{
|
|
471
|
-
"allowedParties": [
|
|
793
|
+
"allowedParties": [
|
|
794
|
+
"decider"
|
|
795
|
+
],
|
|
796
|
+
"capture": "decidedBy"
|
|
472
797
|
}
|
|
473
798
|
```
|
|
474
799
|
|
|
@@ -577,7 +902,9 @@ true
|
|
|
577
902
|
"instrumentId": "borrower_loan_installment_1_payment",
|
|
578
903
|
"over": "children",
|
|
579
904
|
"refField": "borrowerLoanId",
|
|
580
|
-
"statuses": [
|
|
905
|
+
"statuses": [
|
|
906
|
+
"paid"
|
|
907
|
+
]
|
|
581
908
|
}
|
|
582
909
|
]
|
|
583
910
|
```
|
|
@@ -598,7 +925,9 @@ true
|
|
|
598
925
|
"checkKind": "identity_verification",
|
|
599
926
|
"family": "national_identity",
|
|
600
927
|
"maxAge": "P30D",
|
|
601
|
-
"statuses": [
|
|
928
|
+
"statuses": [
|
|
929
|
+
"completed"
|
|
930
|
+
],
|
|
602
931
|
"subjectField": "subjectId"
|
|
603
932
|
}
|
|
604
933
|
]
|
|
@@ -638,7 +967,9 @@ true
|
|
|
638
967
|
"capField": "installment1Amount",
|
|
639
968
|
"capOnAnchor": true,
|
|
640
969
|
"childInstrumentId": "borrower_loan_installment_1_payment",
|
|
641
|
-
"statuses": [
|
|
970
|
+
"statuses": [
|
|
971
|
+
"paid"
|
|
972
|
+
]
|
|
642
973
|
}
|
|
643
974
|
]
|
|
644
975
|
```
|
|
@@ -651,13 +982,27 @@ true
|
|
|
651
982
|
- Linear outputs: none
|
|
652
983
|
- Effects: reads.requires_refs per clause
|
|
653
984
|
- Law: Requirements-as-data law and closure law
|
|
654
|
-
- Conformance source: `
|
|
985
|
+
- Conformance source: `attested.udl`
|
|
655
986
|
|
|
656
987
|
```json
|
|
657
988
|
[
|
|
658
989
|
{
|
|
659
|
-
"
|
|
660
|
-
|
|
990
|
+
"attests": {
|
|
991
|
+
"action": "fields.actionName",
|
|
992
|
+
"consume": "consume",
|
|
993
|
+
"digest": "fields.digest",
|
|
994
|
+
"expiresAt": "fields.expiry",
|
|
995
|
+
"instrument": "fields.requestInstrument",
|
|
996
|
+
"party": "decider",
|
|
997
|
+
"role": "fields.role"
|
|
998
|
+
},
|
|
999
|
+
"field": "approvalId",
|
|
1000
|
+
"match": {
|
|
1001
|
+
"instrumentInstanceId": "fields.requestId"
|
|
1002
|
+
},
|
|
1003
|
+
"statuses": [
|
|
1004
|
+
"approved"
|
|
1005
|
+
]
|
|
661
1006
|
}
|
|
662
1007
|
]
|
|
663
1008
|
```
|
|
@@ -715,7 +1060,9 @@ true
|
|
|
715
1060
|
"instrumentId": "seller_payout_capture_entry",
|
|
716
1061
|
"refField": "sellerPayoutId",
|
|
717
1062
|
"sign": "add",
|
|
718
|
-
"statuses": [
|
|
1063
|
+
"statuses": [
|
|
1064
|
+
"accrued"
|
|
1065
|
+
],
|
|
719
1066
|
"subtotalRef": "grossCaptureAmount"
|
|
720
1067
|
},
|
|
721
1068
|
{
|
|
@@ -723,7 +1070,9 @@ true
|
|
|
723
1070
|
"instrumentId": "seller_payout_credit_adjustment",
|
|
724
1071
|
"refField": "sellerPayoutId",
|
|
725
1072
|
"sign": "add",
|
|
726
|
-
"statuses": [
|
|
1073
|
+
"statuses": [
|
|
1074
|
+
"applied"
|
|
1075
|
+
],
|
|
727
1076
|
"subtotalRef": "creditAdjustmentAmount"
|
|
728
1077
|
},
|
|
729
1078
|
{
|
|
@@ -731,7 +1080,9 @@ true
|
|
|
731
1080
|
"instrumentId": "seller_payout_debit_adjustment",
|
|
732
1081
|
"refField": "sellerPayoutId",
|
|
733
1082
|
"sign": "subtract",
|
|
734
|
-
"statuses": [
|
|
1083
|
+
"statuses": [
|
|
1084
|
+
"applied"
|
|
1085
|
+
],
|
|
735
1086
|
"subtotalRef": "debitAdjustmentAmount"
|
|
736
1087
|
}
|
|
737
1088
|
]
|
|
@@ -777,7 +1128,9 @@ true
|
|
|
777
1128
|
- Conformance source: `commerce-escrow.udl`
|
|
778
1129
|
|
|
779
1130
|
```json
|
|
780
|
-
[
|
|
1131
|
+
[
|
|
1132
|
+
"escrowOrderId"
|
|
1133
|
+
]
|
|
781
1134
|
```
|
|
782
1135
|
|
|
783
1136
|
## notify
|
|
@@ -831,14 +1184,18 @@ true
|
|
|
831
1184
|
"childField": "amount",
|
|
832
1185
|
"childInstrumentId": "borrower_loan_installment_1_payment",
|
|
833
1186
|
"childRefField": "borrowerLoanId",
|
|
834
|
-
"childStatuses": [
|
|
1187
|
+
"childStatuses": [
|
|
1188
|
+
"paid"
|
|
1189
|
+
],
|
|
835
1190
|
"parentField": "installment1Amount"
|
|
836
1191
|
},
|
|
837
1192
|
{
|
|
838
1193
|
"childField": "amount",
|
|
839
1194
|
"childInstrumentId": "borrower_loan_installment_2_payment",
|
|
840
1195
|
"childRefField": "borrowerLoanId",
|
|
841
|
-
"childStatuses": [
|
|
1196
|
+
"childStatuses": [
|
|
1197
|
+
"paid"
|
|
1198
|
+
],
|
|
842
1199
|
"parentField": "installment2Amount"
|
|
843
1200
|
}
|
|
844
1201
|
]
|
|
@@ -1013,34 +1370,6 @@ true
|
|
|
1013
1370
|
"note"
|
|
1014
1371
|
```
|
|
1015
1372
|
|
|
1016
|
-
## journeys
|
|
1017
|
-
|
|
1018
|
-
- Scope: instrument
|
|
1019
|
-
- UDL target: `journeys`
|
|
1020
|
-
- Cardinality: many
|
|
1021
|
-
- Linear outputs: none
|
|
1022
|
-
- Effects: none
|
|
1023
|
-
- Law: Requirements-as-data law and closure law
|
|
1024
|
-
- Conformance source: `hand-edited.udl`
|
|
1025
|
-
|
|
1026
|
-
```json
|
|
1027
|
-
[
|
|
1028
|
-
{
|
|
1029
|
-
"id": "file_note",
|
|
1030
|
-
"label": "File a note",
|
|
1031
|
-
"steps": [
|
|
1032
|
-
{
|
|
1033
|
-
"bind": {},
|
|
1034
|
-
"example": "default",
|
|
1035
|
-
"id": "note",
|
|
1036
|
-
"operation": "note.create"
|
|
1037
|
-
}
|
|
1038
|
-
],
|
|
1039
|
-
"summary": "File a note."
|
|
1040
|
-
}
|
|
1041
|
-
]
|
|
1042
|
-
```
|
|
1043
|
-
|
|
1044
1373
|
## nav
|
|
1045
1374
|
|
|
1046
1375
|
- Scope: instrument
|
|
@@ -1052,7 +1381,10 @@ true
|
|
|
1052
1381
|
- Conformance source: `cards.udl`
|
|
1053
1382
|
|
|
1054
1383
|
```json
|
|
1055
|
-
[
|
|
1384
|
+
[
|
|
1385
|
+
"Blueprints",
|
|
1386
|
+
"Cardholders"
|
|
1387
|
+
]
|
|
1056
1388
|
```
|
|
1057
1389
|
|
|
1058
1390
|
## partitions
|
|
@@ -1068,7 +1400,10 @@ true
|
|
|
1068
1400
|
```json
|
|
1069
1401
|
[
|
|
1070
1402
|
{
|
|
1071
|
-
"pieceFields": [
|
|
1403
|
+
"pieceFields": [
|
|
1404
|
+
"installment1Amount",
|
|
1405
|
+
"installment2Amount"
|
|
1406
|
+
],
|
|
1072
1407
|
"totalField": "principalAmount"
|
|
1073
1408
|
}
|
|
1074
1409
|
]
|
|
@@ -1086,7 +1421,10 @@ true
|
|
|
1086
1421
|
|
|
1087
1422
|
```json
|
|
1088
1423
|
{
|
|
1089
|
-
"kinds": [
|
|
1424
|
+
"kinds": [
|
|
1425
|
+
"vehicle",
|
|
1426
|
+
"merchandise"
|
|
1427
|
+
]
|
|
1090
1428
|
}
|
|
1091
1429
|
```
|
|
1092
1430
|
|
|
@@ -1118,6 +1456,25 @@ true
|
|
|
1118
1456
|
"public"
|
|
1119
1457
|
```
|
|
1120
1458
|
|
|
1459
|
+
## template binding
|
|
1460
|
+
|
|
1461
|
+
- Scope: instrument
|
|
1462
|
+
- UDL target: `templateBinding`
|
|
1463
|
+
- Cardinality: one
|
|
1464
|
+
- Linear outputs: none
|
|
1465
|
+
- Effects: none
|
|
1466
|
+
- Law: Requirements-as-data law and closure law
|
|
1467
|
+
- Conformance source: `vocabulary.udl`
|
|
1468
|
+
|
|
1469
|
+
```json
|
|
1470
|
+
{
|
|
1471
|
+
"id": "assessment",
|
|
1472
|
+
"parameters": {
|
|
1473
|
+
"cost": true
|
|
1474
|
+
}
|
|
1475
|
+
}
|
|
1476
|
+
```
|
|
1477
|
+
|
|
1121
1478
|
## template id
|
|
1122
1479
|
|
|
1123
1480
|
- Scope: instrument
|
|
@@ -1169,7 +1526,38 @@ true
|
|
|
1169
1526
|
"name": "update_cardholder_contact"
|
|
1170
1527
|
}
|
|
1171
1528
|
],
|
|
1172
|
-
"fields": [
|
|
1173
|
-
|
|
1529
|
+
"fields": [
|
|
1530
|
+
"displayName",
|
|
1531
|
+
"email",
|
|
1532
|
+
"phoneNumber"
|
|
1533
|
+
],
|
|
1534
|
+
"states": [
|
|
1535
|
+
"pending",
|
|
1536
|
+
"active",
|
|
1537
|
+
"suspended"
|
|
1538
|
+
]
|
|
1539
|
+
}
|
|
1540
|
+
```
|
|
1541
|
+
|
|
1542
|
+
## request authority
|
|
1543
|
+
|
|
1544
|
+
- Scope: action
|
|
1545
|
+
- UDL target: `requestAuthority`
|
|
1546
|
+
- Cardinality: one
|
|
1547
|
+
- Linear outputs: none
|
|
1548
|
+
- Effects: none
|
|
1549
|
+
- Law: Requirements-as-data law and closure law
|
|
1550
|
+
- Conformance source: `attested.udl`
|
|
1551
|
+
|
|
1552
|
+
```json
|
|
1553
|
+
{
|
|
1554
|
+
"actionField": "actionName",
|
|
1555
|
+
"digestField": "digest",
|
|
1556
|
+
"expiresField": "expiry",
|
|
1557
|
+
"inputField": "requestInput",
|
|
1558
|
+
"instanceField": "requestId",
|
|
1559
|
+
"instrumentField": "requestInstrument",
|
|
1560
|
+
"party": "decider",
|
|
1561
|
+
"roleField": "role"
|
|
1174
1562
|
}
|
|
1175
1563
|
```
|