@hyperscale0/udl 1.0.0 → 1.0.124
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 +5 -216
- package/LICENSE.md +356 -0
- package/NOTICE.md +8 -0
- package/README.md +14 -106
- package/dist/canonical.d.ts.map +1 -1
- package/dist/canonical.js +1 -29
- package/dist/canonical.js.map +1 -1
- package/dist/diagnostics.d.ts +13 -165
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js +33 -157
- package/dist/diagnostics.js.map +1 -1
- package/dist/field-value.d.ts +5 -0
- package/dist/field-value.d.ts.map +1 -0
- package/dist/field-value.js +85 -0
- package/dist/field-value.js.map +1 -0
- package/dist/finance.d.ts +10 -53
- package/dist/finance.d.ts.map +1 -1
- package/dist/finance.js +252 -536
- package/dist/finance.js.map +1 -1
- package/dist/index.d.ts +9 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -9
- package/dist/index.js.map +1 -1
- package/dist/json.d.ts +2 -0
- package/dist/json.d.ts.map +1 -0
- package/dist/json.js +30 -0
- package/dist/json.js.map +1 -0
- package/dist/limits.d.ts +3 -28
- package/dist/limits.d.ts.map +1 -1
- package/dist/limits.js +5 -31
- package/dist/limits.js.map +1 -1
- package/dist/object-contract.d.ts +140 -0
- package/dist/object-contract.d.ts.map +1 -0
- package/dist/object-contract.js +314 -0
- package/dist/object-contract.js.map +1 -0
- package/dist/object-semantics-schema.d.ts +5710 -0
- package/dist/object-semantics-schema.d.ts.map +1 -0
- package/dist/object-semantics-schema.js +119 -0
- package/dist/object-semantics-schema.js.map +1 -0
- package/dist/object-semantics.d.ts +6 -0
- package/dist/object-semantics.d.ts.map +1 -0
- package/dist/object-semantics.js +279 -0
- package/dist/object-semantics.js.map +1 -0
- package/dist/object-structures.d.ts +4 -0
- package/dist/object-structures.d.ts.map +1 -0
- package/dist/object-structures.js +134 -0
- package/dist/object-structures.js.map +1 -0
- package/dist/reporting-validation.d.ts +8 -0
- package/dist/reporting-validation.d.ts.map +1 -0
- package/dist/reporting-validation.js +252 -0
- package/dist/reporting-validation.js.map +1 -0
- package/dist/reporting.d.ts +477 -0
- package/dist/reporting.d.ts.map +1 -0
- package/dist/reporting.js +169 -0
- package/dist/reporting.js.map +1 -0
- package/dist/schema.d.ts +5572 -2710
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +444 -1121
- package/dist/schema.js.map +1 -1
- package/dist/validation.d.ts +10 -73
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +1109 -2569
- package/dist/validation.js.map +1 -1
- package/docs/assets/brand/manifest.json +30 -0
- package/docs/assets/brand/udl-horizontal-white.svg +1 -0
- package/docs/assets/brand/udl-horizontal.svg +1 -0
- package/docs/assets/brand/udl-stacked-white.svg +1 -0
- package/docs/assets/brand/udl-stacked.svg +1 -0
- package/docs/assets/udl.svg +11 -0
- package/package.json +13 -22
- package/spec/README.md +300 -172
- package/spec/cars.udl.json +249 -0
- package/spec/udl.schema.json +3066 -2242
- package/src/canonical.ts +1 -35
- package/src/diagnostics.ts +76 -209
- package/src/field-value.ts +87 -0
- package/src/finance.ts +327 -832
- package/src/index.ts +18 -95
- package/src/json.ts +34 -0
- package/src/limits.ts +5 -31
- package/src/object-contract.ts +559 -0
- package/src/object-semantics-schema.ts +148 -0
- package/src/object-semantics.ts +378 -0
- package/src/object-structures.ts +255 -0
- package/src/reporting-validation.ts +383 -0
- package/src/reporting.ts +178 -0
- package/src/schema.ts +510 -1277
- package/src/validation.ts +1630 -4545
- package/LICENSE +0 -661
- package/LICENSING.md +0 -51
- package/TRADEMARKS.md +0 -35
- 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/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-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/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/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/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/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 -54
- 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/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/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -184
- package/dist/cli.js.map +0 -1
- package/dist/effects.d.ts +0 -41
- package/dist/effects.d.ts.map +0 -1
- package/dist/effects.js +0 -110
- package/dist/effects.js.map +0 -1
- package/dist/evolution.d.ts +0 -120
- package/dist/evolution.d.ts.map +0 -1
- package/dist/evolution.js +0 -567
- package/dist/evolution.js.map +0 -1
- package/dist/parser.d.ts +0 -4
- package/dist/parser.d.ts.map +0 -1
- package/dist/parser.js +0 -44
- package/dist/parser.js.map +0 -1
- package/docs/README.md +0 -14
- 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 -15
- 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/llms-full.txt +0 -1241
- package/docs/llms.txt +0 -14
- package/docs/reference/canonical.md +0 -16
- package/docs/reference/clauses.md +0 -986
- package/docs/reference/cli.md +0 -22
- package/docs/reference/diagnostics.md +0 -32
- package/skills/udl/SKILL.md +0 -28
- package/src/check-profiles.ts +0 -80
- package/src/cli.ts +0 -196
- package/src/effects.ts +0 -163
- package/src/evolution.ts +0 -965
- package/src/parser.ts +0 -58
package/LICENSING.md
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
# Licensing
|
|
2
|
-
|
|
3
|
-
The code in this repository is Copyright 2026 Hyperscale LLC and is licensed
|
|
4
|
-
under the GNU Affero General Public License version 3 only
|
|
5
|
-
(`AGPL-3.0-only`). The full text is in [`LICENSE`](./LICENSE).
|
|
6
|
-
|
|
7
|
-
## What the AGPL asks of you
|
|
8
|
-
|
|
9
|
-
Two obligations matter in practice.
|
|
10
|
-
|
|
11
|
-
**If you distribute a copy in object form**, modified or not, you make its
|
|
12
|
-
Corresponding Source available under the same license.
|
|
13
|
-
|
|
14
|
-
**If you run a modified copy as a network service**, section 13 applies: the
|
|
15
|
-
users interacting with it over the network get an offer of the source of the
|
|
16
|
-
version you are running. Running UDL unmodified behind your own service does
|
|
17
|
-
not trigger this. Changing the parser, the validator, or the canonical
|
|
18
|
-
serializer and then serving that change does.
|
|
19
|
-
|
|
20
|
-
Using `@hyperscale0/udl` as a library inside your own program is a combined
|
|
21
|
-
work under the AGPL. If that does not fit how you ship, take the commercial
|
|
22
|
-
license instead.
|
|
23
|
-
|
|
24
|
-
## Commercial license
|
|
25
|
-
|
|
26
|
-
Hyperscale LLC sells a commercial license to organisations that cannot accept
|
|
27
|
-
the AGPL, for the usual reasons: a proprietary product that links the library,
|
|
28
|
-
a hosted service you will not open, a procurement policy that refuses copyleft.
|
|
29
|
-
It grants the same code under ordinary commercial terms with no source
|
|
30
|
-
obligation.
|
|
31
|
-
|
|
32
|
-
Ask through <https://hyperscale0.ai>.
|
|
33
|
-
|
|
34
|
-
## The license covers code, not marks
|
|
35
|
-
|
|
36
|
-
"Hyperscale" and "UDL" are trademarks of Hyperscale LLC. A copyright license
|
|
37
|
-
says nothing about trademarks in either direction, so
|
|
38
|
-
[`TRADEMARKS.md`](./TRADEMARKS.md) draws that boundary.
|
|
39
|
-
|
|
40
|
-
## The format is not the implementation
|
|
41
|
-
|
|
42
|
-
UDL the format is separate from this implementation of it. The JSON Schema in
|
|
43
|
-
[`spec/`](./spec) and the conformance cases in [`conformance/`](./conformance)
|
|
44
|
-
are data describing a format, and anyone may write their own parser, validator,
|
|
45
|
-
or serializer against them, in any language, under any license, without
|
|
46
|
-
touching this code.
|
|
47
|
-
|
|
48
|
-
What you may then say about it is a trademark question, not a copyright one.
|
|
49
|
-
[`TRADEMARKS.md`](./TRADEMARKS.md) has the rule: claim compatibility with a UDL
|
|
50
|
-
version only when your implementation passes that version's published
|
|
51
|
-
conformance cases unmodified.
|
package/TRADEMARKS.md
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# Trademarks
|
|
2
|
-
|
|
3
|
-
"Hyperscale" and "UDL" are trademarks of Hyperscale LLC.
|
|
4
|
-
|
|
5
|
-
The AGPL covers the code in this repository and nothing else. It grants no
|
|
6
|
-
rights to the marks, and it never mentions them: a copyright license says
|
|
7
|
-
nothing about trademarks either way. This file draws that boundary so nobody
|
|
8
|
-
has to guess where it sits.
|
|
9
|
-
|
|
10
|
-
What that means in practice:
|
|
11
|
-
|
|
12
|
-
- **Yes.** Say your project uses UDL, reads UDL, or is compatible with UDL.
|
|
13
|
-
Say it in your README, your docs, your talk, and your package description.
|
|
14
|
-
Fork this repository and keep the notices intact.
|
|
15
|
-
- **Yes.** Publish a UDL implementation in another language, and name it in a
|
|
16
|
-
way that describes what it does: `udl-rs`, `udl-parser`, `python-udl`.
|
|
17
|
-
- **No.** Name your project, company, or product in a way that suggests
|
|
18
|
-
Hyperscale LLC published it or endorses it. `@hyperscale0/*` on npm and the
|
|
19
|
-
`hyperscale0` GitHub organisation are ours.
|
|
20
|
-
- **No.** Use the marks or our logo in a way that implies affiliation,
|
|
21
|
-
sponsorship, or certification we have not given.
|
|
22
|
-
|
|
23
|
-
## Claiming compatibility
|
|
24
|
-
|
|
25
|
-
An independent implementation may say it "implements UDL version X" or "passes
|
|
26
|
-
the UDL conformance suite version X" only while it passes the published
|
|
27
|
-
conformance cases for that version, unmodified. The cases in
|
|
28
|
-
[`conformance/`](./conformance) are the whole test: no skipped case, no edited
|
|
29
|
-
expectation, no local fork of the fixtures.
|
|
30
|
-
|
|
31
|
-
That claim is a statement about your implementation, so keep the marks out of
|
|
32
|
-
its name and off its logo, and do not present it as endorsement or
|
|
33
|
-
certification by Hyperscale LLC. We certify nothing; the suite does.
|
|
34
|
-
|
|
35
|
-
If you are unsure, open an issue and ask. Nobody has ever regretted asking.
|
package/conformance/README.md
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
# The UDL conformance suite
|
|
2
|
-
|
|
3
|
-
Every file here is data. An implementation in any language can run the suite
|
|
4
|
-
without importing the TypeScript reference implementation.
|
|
5
|
-
|
|
6
|
-
## Layout
|
|
7
|
-
|
|
8
|
-
```
|
|
9
|
-
conformance/
|
|
10
|
-
valid/<case>.udl
|
|
11
|
-
valid/<case>.expected.json
|
|
12
|
-
invalid/<case>.udl
|
|
13
|
-
invalid/<case>.expected.json
|
|
14
|
-
evolution/<case>.live.udl
|
|
15
|
-
evolution/<case>.next.udl
|
|
16
|
-
evolution/<case>.expected.json
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
The runner fails if either half of a case is missing. An evolution case must
|
|
20
|
-
have all three named files.
|
|
21
|
-
|
|
22
|
-
## Expected files
|
|
23
|
-
|
|
24
|
-
A valid case:
|
|
25
|
-
|
|
26
|
-
```json
|
|
27
|
-
{
|
|
28
|
-
"canonical": "minimal.udl",
|
|
29
|
-
"digest": "c21d198d69e9d4cadb33aaacf37581bb388e4a8964b7fc284606cfa9f65d35bb",
|
|
30
|
-
"summary": "The smallest admitted document.",
|
|
31
|
-
"verdict": "valid"
|
|
32
|
-
}
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
`digest` is lowercase SHA-256 over the canonical UTF-8 bytes. A document that
|
|
36
|
-
is already canonical names itself.
|
|
37
|
-
|
|
38
|
-
An invalid case:
|
|
39
|
-
|
|
40
|
-
```json
|
|
41
|
-
{
|
|
42
|
-
"issues": [{ "code": "UDL3001", "path": "$.instruments[0].actions" }],
|
|
43
|
-
"summary": "Every instrument declares create.",
|
|
44
|
-
"verdict": "invalid"
|
|
45
|
-
}
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
The runner requires a non-blank `summary`. It never compares messages.
|
|
49
|
-
|
|
50
|
-
## Conformance levels
|
|
51
|
-
|
|
52
|
-
An implementation claims the highest level it passes.
|
|
53
|
-
|
|
54
|
-
1. Verdict. Admit every `valid/` document and refuse every `invalid/` document.
|
|
55
|
-
2. Canonical bytes. Serialize every valid document byte for byte as its named
|
|
56
|
-
canonical file, including the trailing line feed, and match its digest.
|
|
57
|
-
3. Diagnostics. Report every listed code and path for each invalid document.
|
|
58
|
-
The implementation may report extra issues.
|
|
59
|
-
4. Evolution. Admit both documents, then compare the live and next definitions.
|
|
60
|
-
Report every listed UDL7xxx code and path. The implementation may report
|
|
61
|
-
extra issues.
|
|
62
|
-
|
|
63
|
-
## Path grammar
|
|
64
|
-
|
|
65
|
-
Issue paths use `$` for the document root, `.name` for an object member, and
|
|
66
|
-
`[n]` for a zero-based array index. Evolution paths use the instrument index
|
|
67
|
-
from the live document and continue to the changed member, such as
|
|
68
|
-
`$.instruments[3].actions.reconcile`. A direct `diffInstrumentEvolution` call
|
|
69
|
-
has no document index, so its paths start at `$.instruments`.
|
|
70
|
-
|
|
71
|
-
## Runner exit rule
|
|
72
|
-
|
|
73
|
-
The runner exits 0 only if every case at the claimed level passes. A missing
|
|
74
|
-
file, malformed expected file, unexpected verdict, byte mismatch, digest
|
|
75
|
-
mismatch, or missing issue pair makes it exit nonzero.
|
|
76
|
-
|
|
77
|
-
## Adding a case
|
|
78
|
-
|
|
79
|
-
Start from the smallest admitted document that carries the needed clause.
|
|
80
|
-
Change one law where possible. Pin codes and paths, never messages. Valid cases
|
|
81
|
-
must keep one example of every target in `udlClauseVocabulary`, including
|
|
82
|
-
quote, commit, reconcile, checks, updates, dials, effects, and money clauses.
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"instruments": [
|
|
3
|
-
{
|
|
4
|
-
"actionOrder": ["close", "create"],
|
|
5
|
-
"actions": {
|
|
6
|
-
"close": {
|
|
7
|
-
"moves": [],
|
|
8
|
-
"steps": [],
|
|
9
|
-
"summary": "Close the note."
|
|
10
|
-
},
|
|
11
|
-
"create": {
|
|
12
|
-
"moves": [],
|
|
13
|
-
"steps": [],
|
|
14
|
-
"summary": "File the note."
|
|
15
|
-
}
|
|
16
|
-
},
|
|
17
|
-
"fields": {
|
|
18
|
-
"reference": {
|
|
19
|
-
"type": "string"
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
"id": "note",
|
|
23
|
-
"idPrefix": "note",
|
|
24
|
-
"lifecycle": {
|
|
25
|
-
"initial": "open",
|
|
26
|
-
"states": ["open", "closed"],
|
|
27
|
-
"transitions": {
|
|
28
|
-
"close": {
|
|
29
|
-
"from": ["open"],
|
|
30
|
-
"to": "closed"
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
"required": ["reference"],
|
|
35
|
-
"summary": "A note a tenant files and later closes.",
|
|
36
|
-
"title": "Note"
|
|
37
|
-
}
|
|
38
|
-
],
|
|
39
|
-
"product": "minimal",
|
|
40
|
-
"subjects": [],
|
|
41
|
-
"title": "Minimal",
|
|
42
|
-
"udl": 1,
|
|
43
|
-
"version": 1
|
|
44
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"instruments": [
|
|
3
|
-
{
|
|
4
|
-
"actionOrder": ["close", "create"],
|
|
5
|
-
"actions": {
|
|
6
|
-
"close": {
|
|
7
|
-
"eventName": "note.closed",
|
|
8
|
-
"moves": [],
|
|
9
|
-
"steps": [],
|
|
10
|
-
"summary": "Close the note."
|
|
11
|
-
},
|
|
12
|
-
"create": {
|
|
13
|
-
"moves": [],
|
|
14
|
-
"steps": [],
|
|
15
|
-
"summary": "File the note."
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
"fields": {
|
|
19
|
-
"reference": {
|
|
20
|
-
"type": "string"
|
|
21
|
-
}
|
|
22
|
-
},
|
|
23
|
-
"id": "note",
|
|
24
|
-
"idPrefix": "note",
|
|
25
|
-
"lifecycle": {
|
|
26
|
-
"initial": "open",
|
|
27
|
-
"states": ["open", "closed"],
|
|
28
|
-
"transitions": {
|
|
29
|
-
"close": {
|
|
30
|
-
"from": ["open"],
|
|
31
|
-
"to": "closed"
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
"required": ["reference"],
|
|
36
|
-
"summary": "A note a tenant files and later closes.",
|
|
37
|
-
"title": "Note"
|
|
38
|
-
}
|
|
39
|
-
],
|
|
40
|
-
"product": "minimal",
|
|
41
|
-
"subjects": [],
|
|
42
|
-
"title": "Minimal",
|
|
43
|
-
"udl": 1,
|
|
44
|
-
"version": 2
|
|
45
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"instruments": [
|
|
3
|
-
{
|
|
4
|
-
"actionOrder": [
|
|
5
|
-
"close",
|
|
6
|
-
"create"
|
|
7
|
-
],
|
|
8
|
-
"actions": {
|
|
9
|
-
"close": {
|
|
10
|
-
"moves": [],
|
|
11
|
-
"steps": [],
|
|
12
|
-
"summary": "Close the note."
|
|
13
|
-
},
|
|
14
|
-
"create": {
|
|
15
|
-
"moves": [],
|
|
16
|
-
"steps": [],
|
|
17
|
-
"summary": "File the note."
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
"fields": {
|
|
21
|
-
"reference": {
|
|
22
|
-
"type": "string"
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
"id": "note",
|
|
26
|
-
"idPrefix": "note",
|
|
27
|
-
"lifecycle": {
|
|
28
|
-
"initial": "open",
|
|
29
|
-
"states": [
|
|
30
|
-
"open",
|
|
31
|
-
"closed"
|
|
32
|
-
],
|
|
33
|
-
"transitions": {
|
|
34
|
-
"close": {
|
|
35
|
-
"from": [
|
|
36
|
-
"open"
|
|
37
|
-
],
|
|
38
|
-
"to": "closed"
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
"required": [
|
|
43
|
-
"reference"
|
|
44
|
-
],
|
|
45
|
-
"summary": "A note a tenant files and later closes.",
|
|
46
|
-
"title": "Note"
|
|
47
|
-
}
|
|
48
|
-
],
|
|
49
|
-
"product": "minimal",
|
|
50
|
-
"subjects": [],
|
|
51
|
-
"title": "Minimal",
|
|
52
|
-
"udl": 1,
|
|
53
|
-
"version": 1
|
|
54
|
-
}
|
|
55
|
-
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"instruments": [
|
|
3
|
-
{
|
|
4
|
-
"actionOrder": [
|
|
5
|
-
"close",
|
|
6
|
-
"create"
|
|
7
|
-
],
|
|
8
|
-
"actions": {
|
|
9
|
-
"close": {
|
|
10
|
-
"moves": [],
|
|
11
|
-
"steps": [],
|
|
12
|
-
"summary": "Close the note."
|
|
13
|
-
},
|
|
14
|
-
"create": {
|
|
15
|
-
"moves": [],
|
|
16
|
-
"steps": [],
|
|
17
|
-
"summary": "File the note."
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
"fields": {
|
|
21
|
-
"reference": {
|
|
22
|
-
"type": "string"
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
"id": "note",
|
|
26
|
-
"idPrefix": "note",
|
|
27
|
-
"lifecycle": {
|
|
28
|
-
"initial": "open",
|
|
29
|
-
"states": [
|
|
30
|
-
"open",
|
|
31
|
-
"closed"
|
|
32
|
-
],
|
|
33
|
-
"transitions": {
|
|
34
|
-
"close": {
|
|
35
|
-
"from": [
|
|
36
|
-
"open"
|
|
37
|
-
],
|
|
38
|
-
"to": "closed"
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
"required": [
|
|
43
|
-
"reference"
|
|
44
|
-
],
|
|
45
|
-
"summary": "A note a tenant files and later closes.",
|
|
46
|
-
"title": "Note"
|
|
47
|
-
}
|
|
48
|
-
],
|
|
49
|
-
"product": "renamed",
|
|
50
|
-
"subjects": [],
|
|
51
|
-
"title": "Minimal",
|
|
52
|
-
"udl": 1,
|
|
53
|
-
"version": 1
|
|
54
|
-
}
|
|
55
|
-
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"instruments": [
|
|
3
|
-
{
|
|
4
|
-
"actionOrder": [
|
|
5
|
-
"close",
|
|
6
|
-
"create"
|
|
7
|
-
],
|
|
8
|
-
"actions": {
|
|
9
|
-
"close": {
|
|
10
|
-
"moves": [],
|
|
11
|
-
"steps": [],
|
|
12
|
-
"summary": "Close the note."
|
|
13
|
-
},
|
|
14
|
-
"create": {
|
|
15
|
-
"moves": [],
|
|
16
|
-
"steps": [],
|
|
17
|
-
"summary": "File the note."
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
"fields": {
|
|
21
|
-
"reference": {
|
|
22
|
-
"type": "string"
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
"id": "note",
|
|
26
|
-
"idPrefix": "note",
|
|
27
|
-
"lifecycle": {
|
|
28
|
-
"initial": "open",
|
|
29
|
-
"states": [
|
|
30
|
-
"open",
|
|
31
|
-
"closed"
|
|
32
|
-
],
|
|
33
|
-
"transitions": {
|
|
34
|
-
"close": {
|
|
35
|
-
"from": [
|
|
36
|
-
"open"
|
|
37
|
-
],
|
|
38
|
-
"to": "closed"
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
"required": [
|
|
43
|
-
"reference"
|
|
44
|
-
],
|
|
45
|
-
"summary": "A note a tenant files and later closes.",
|
|
46
|
-
"title": "Note"
|
|
47
|
-
}
|
|
48
|
-
],
|
|
49
|
-
"product": "minimal",
|
|
50
|
-
"subjects": [],
|
|
51
|
-
"title": "Minimal",
|
|
52
|
-
"udl": 1,
|
|
53
|
-
"version": 1
|
|
54
|
-
}
|
|
55
|
-
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"instruments": [
|
|
3
|
-
{
|
|
4
|
-
"actionOrder": [
|
|
5
|
-
"close",
|
|
6
|
-
"create"
|
|
7
|
-
],
|
|
8
|
-
"actions": {
|
|
9
|
-
"close": {
|
|
10
|
-
"moves": [],
|
|
11
|
-
"steps": [],
|
|
12
|
-
"summary": "Close the note."
|
|
13
|
-
},
|
|
14
|
-
"create": {
|
|
15
|
-
"moves": [],
|
|
16
|
-
"steps": [],
|
|
17
|
-
"summary": "File the note."
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
"fields": {
|
|
21
|
-
"reference": {
|
|
22
|
-
"type": "string"
|
|
23
|
-
},
|
|
24
|
-
"memo": {
|
|
25
|
-
"type": "string"
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
"id": "note",
|
|
29
|
-
"idPrefix": "note",
|
|
30
|
-
"lifecycle": {
|
|
31
|
-
"initial": "open",
|
|
32
|
-
"states": [
|
|
33
|
-
"open",
|
|
34
|
-
"closed"
|
|
35
|
-
],
|
|
36
|
-
"transitions": {
|
|
37
|
-
"close": {
|
|
38
|
-
"from": [
|
|
39
|
-
"open"
|
|
40
|
-
],
|
|
41
|
-
"to": "closed"
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
"required": [
|
|
46
|
-
"reference"
|
|
47
|
-
],
|
|
48
|
-
"summary": "A note a tenant files and later closes.",
|
|
49
|
-
"title": "Note"
|
|
50
|
-
}
|
|
51
|
-
],
|
|
52
|
-
"product": "minimal",
|
|
53
|
-
"subjects": [],
|
|
54
|
-
"title": "Minimal",
|
|
55
|
-
"udl": 1,
|
|
56
|
-
"version": 1
|
|
57
|
-
}
|
|
58
|
-
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"instruments": [
|
|
3
|
-
{
|
|
4
|
-
"fields": {
|
|
5
|
-
"reference": {
|
|
6
|
-
"type": "string"
|
|
7
|
-
}
|
|
8
|
-
},
|
|
9
|
-
"id": "note",
|
|
10
|
-
"idPrefix": "note",
|
|
11
|
-
"lifecycle": {
|
|
12
|
-
"initial": "open",
|
|
13
|
-
"states": [
|
|
14
|
-
"open",
|
|
15
|
-
"closed"
|
|
16
|
-
],
|
|
17
|
-
"transitions": {
|
|
18
|
-
"close": {
|
|
19
|
-
"from": [
|
|
20
|
-
"open"
|
|
21
|
-
],
|
|
22
|
-
"to": "closed"
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
"required": [
|
|
27
|
-
"reference"
|
|
28
|
-
],
|
|
29
|
-
"summary": "A note a tenant files and later closes.",
|
|
30
|
-
"title": "Note",
|
|
31
|
-
"actionOrder": [
|
|
32
|
-
"close",
|
|
33
|
-
"create",
|
|
34
|
-
"touch"
|
|
35
|
-
],
|
|
36
|
-
"actions": {
|
|
37
|
-
"close": {
|
|
38
|
-
"moves": [],
|
|
39
|
-
"steps": [],
|
|
40
|
-
"summary": "Close the note."
|
|
41
|
-
},
|
|
42
|
-
"create": {
|
|
43
|
-
"moves": [],
|
|
44
|
-
"steps": [],
|
|
45
|
-
"summary": "File the note."
|
|
46
|
-
},
|
|
47
|
-
"touch": {
|
|
48
|
-
"moves": [],
|
|
49
|
-
"steps": [],
|
|
50
|
-
"summary": "Touch the note."
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
],
|
|
55
|
-
"product": "minimal",
|
|
56
|
-
"subjects": [],
|
|
57
|
-
"title": "Minimal",
|
|
58
|
-
"udl": 1,
|
|
59
|
-
"version": 1
|
|
60
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"instruments": [
|
|
3
|
-
{
|
|
4
|
-
"actionOrder": [
|
|
5
|
-
"close",
|
|
6
|
-
"create"
|
|
7
|
-
],
|
|
8
|
-
"actions": {
|
|
9
|
-
"close": {
|
|
10
|
-
"agentDescription": "Close a note that has already been filed. Takes the note id and nothing else, and moves no money.",
|
|
11
|
-
"moves": [],
|
|
12
|
-
"steps": [],
|
|
13
|
-
"summary": "Close the note."
|
|
14
|
-
},
|
|
15
|
-
"create": {
|
|
16
|
-
"agentDescription": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
|
17
|
-
"moves": [],
|
|
18
|
-
"steps": [],
|
|
19
|
-
"summary": "File the note."
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
"agentDescription": "A filed note. Read it to recover the reference an operator recorded, and close it when the matter it tracks is settled.",
|
|
23
|
-
"fields": {
|
|
24
|
-
"reference": {
|
|
25
|
-
"type": "string"
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
"id": "note",
|
|
29
|
-
"idPrefix": "note",
|
|
30
|
-
"lifecycle": {
|
|
31
|
-
"initial": "open",
|
|
32
|
-
"states": [
|
|
33
|
-
"open",
|
|
34
|
-
"closed"
|
|
35
|
-
],
|
|
36
|
-
"transitions": {
|
|
37
|
-
"close": {
|
|
38
|
-
"from": [
|
|
39
|
-
"open"
|
|
40
|
-
],
|
|
41
|
-
"to": "closed"
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
"required": [
|
|
46
|
-
"reference"
|
|
47
|
-
],
|
|
48
|
-
"summary": "A note a tenant files and later closes.",
|
|
49
|
-
"title": "Note"
|
|
50
|
-
}
|
|
51
|
-
],
|
|
52
|
-
"product": "minimal",
|
|
53
|
-
"subjects": [],
|
|
54
|
-
"title": "Minimal",
|
|
55
|
-
"udl": 1,
|
|
56
|
-
"version": 1
|
|
57
|
-
}
|