pi-outpost 0.32.4 → 0.34.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/dist/contract/README.md +120 -1
- package/dist/contract/conformance/README.md +29 -5
- package/dist/contract/conformance/index.json +115 -0
- package/dist/contract/conformance/invalid/unknown-version.json +1 -1
- package/dist/contract/conformance/invalid/v3-timeline-comparison-without-reference.json +123 -0
- package/dist/contract/conformance/invalid/v3-timeline-contradictory-change.json +128 -0
- package/dist/contract/conformance/invalid/v3-timeline-dependency-cycle.json +124 -0
- package/dist/contract/conformance/invalid/v3-timeline-dependency-on-removed.json +125 -0
- package/dist/contract/conformance/invalid/v3-timeline-duplicate-dependency.json +125 -0
- package/dist/contract/conformance/invalid/v3-timeline-duplicate-identifier.json +120 -0
- package/dist/contract/conformance/invalid/v3-timeline-empty-task-endpoint.json +124 -0
- package/dist/contract/conformance/invalid/v3-timeline-impossible-date.json +101 -0
- package/dist/contract/conformance/invalid/v3-timeline-inverted-activity.json +120 -0
- package/dist/contract/conformance/invalid/v3-timeline-inverted-range.json +120 -0
- package/dist/contract/conformance/invalid/v3-timeline-milestone-outside-range.json +120 -0
- package/dist/contract/conformance/invalid/v3-timeline-period-outside-range.json +139 -0
- package/dist/contract/conformance/invalid/v3-timeline-presentation-property.json +121 -0
- package/dist/contract/conformance/invalid/v3-timeline-previous-outside-range.json +128 -0
- package/dist/contract/conformance/invalid/v3-timeline-previous-wrong-shape.json +128 -0
- package/dist/contract/conformance/invalid/v3-timeline-reference-outside-range.json +140 -0
- package/dist/contract/conformance/invalid/v3-timeline-self-dependency.json +124 -0
- package/dist/contract/conformance/invalid/v3-timeline-under-version-2.json +120 -0
- package/dist/contract/conformance/invalid/v3-timeline-unknown-dependency-type.json +121 -0
- package/dist/contract/conformance/invalid/v3-timeline-unresolved-dependency-endpoint.json +120 -0
- package/dist/contract/conformance/invalid/v3-timeline-unsupported-scale.json +120 -0
- package/dist/contract/conformance/invalid/v3-timeline-with-target.json +123 -0
- package/dist/contract/conformance/valid/v3-timeline-calendar.json +140 -0
- package/dist/contract/conformance/valid/v3-timeline-compared.json +142 -0
- package/dist/contract/conformance/valid/v3-timeline-empty-task-and-anonymous-separator.json +35 -0
- package/dist/contract/conformance/valid/v3-timeline-four-dependency-types.json +61 -0
- package/dist/contract/conformance/valid/v3-timeline-programme.json +44 -0
- package/dist/contract/conformance/valid/v3-timeline-quarter-scale.json +42 -0
- package/dist/contract/conformance/valid/v3-timeline-single-day-activity.json +27 -0
- package/dist/contract/conformance/valid/v3-timeline-unsatisfied-dependency.json +45 -0
- package/dist/contract/conformance/valid/v3-timeline-week-scale.json +35 -0
- package/dist/contract/conformance/version-1.lock.json +2 -2
- package/dist/contract/schemas/structured-exchange-3.json +1263 -0
- package/dist/contract/schemas/structured-exchange-profile-registry-2.json +94 -0
- package/dist/contract/structured-exchange-project-setup.md +36 -0
- package/dist/contract/validate-structured-exchange.mjs +1981 -174
- package/dist/pi-outpost-tools.mjs +4556 -1130
- package/dist/pi-outpost.mjs +5733 -1898
- package/dist/pi-outpost.sea.mjs +2 -2
- package/dist/sea-prep.blob +2 -2
- package/dist/skills/structured-exchange/SKILL.md +90 -378
- package/dist/skills/structured-exchange/references/enriched-contract.md +158 -0
- package/dist/skills/structured-exchange/references/figures.md +52 -0
- package/dist/skills/structured-exchange/references/graphs-and-tables.md +115 -0
- package/dist/skills/structured-exchange/references/proposals.md +86 -0
- package/dist/skills/structured-exchange/references/timelines.md +87 -0
- package/dist/skills/structured-exchange/structured-exchange-3.json +1263 -0
- package/dist/skills/structured-exchange/structured-exchange-profile-registry-2.json +94 -0
- package/dist/skills/structured-exchange-project/SKILL.md +22 -0
- package/dist/web/assets/{PdfViewer-DHIy06i5.js → PdfViewer-9kadnb9W.js} +2 -2
- package/dist/web/assets/{abnfDiagram-VCTEODGH-0IqI620v.js → abnfDiagram-YUKMZFIV-BUZ7jF1I.js} +1 -1
- package/dist/web/assets/architecture-WOLXFQ4H-CxBmyj2Z.js +1 -0
- package/dist/web/assets/architectureDiagram-47P4ROYG-BAvert-J.js +36 -0
- package/dist/web/assets/{blockDiagram-OSKFZWR5-sw0nzjYC.js → blockDiagram-E7TT5TSB-CXQT_J2x.js} +16 -5
- package/dist/web/assets/c4Diagram-CRA5TL53-Byqo5aDs.js +38 -0
- package/dist/web/assets/channel-D3nE3SyW.js +1 -0
- package/dist/web/assets/chunk-2BW5OAIV-D9dSVCv2.js +10 -0
- package/dist/web/assets/chunk-3YJQHVM4-D6IQcIQB.js +2 -0
- package/dist/web/assets/chunk-4EA7E6EY-BxZ_5HMn.js +1 -0
- package/dist/web/assets/{chunk-F27PBJKO-C6rqX2gT.js → chunk-7TKQ45FW-G9TsFldk.js} +1 -1
- package/dist/web/assets/{chunk-SVP7TREG-CYXVRfc0.js → chunk-AW2ZBBNX-nmg5rsd5.js} +3 -3
- package/dist/web/assets/{chunk-GVQU2GXP-BtSmWzHA.js → chunk-DBDB3WZW-BwVIGLtu.js} +1 -1
- package/dist/web/assets/chunk-DUW6YSOI-Dgx8z5s3.js +1 -0
- package/dist/web/assets/chunk-E2ZNV5FY-VD95O25Z.js +72 -0
- package/dist/web/assets/chunk-EU5HNXII-CSnybkPb.js +213 -0
- package/dist/web/assets/chunk-FVRAUYC3-TBqluQ8N.js +2 -0
- package/dist/web/assets/{chunk-PWAF6VOD-Dup_NAkl.js → chunk-HJ2JQQFS-BiLMpVsO.js} +1 -1
- package/dist/web/assets/chunk-HTAEGDNF-QDOAuhR5.js +1 -0
- package/dist/web/assets/chunk-J5ZVWO5B-oDCd-gWO.js +1 -0
- package/dist/web/assets/{chunk-POPQ4Y6H-BrnPOTT-.js → chunk-KQW6MTUR-_WxFaX97.js} +1 -1
- package/dist/web/assets/chunk-NGNAAXSQ-BW1P8EP7.js +136 -0
- package/dist/web/assets/chunk-NTY3LDVX-BI0Pj8F6.js +1 -0
- package/dist/web/assets/chunk-VPRB5NB3-BBDlNNll.js +129 -0
- package/dist/web/assets/chunk-XC4XBNZT-Ba1ra4Jd.js +62 -0
- package/dist/web/assets/classDiagram-v2-K4WV4PDN-CksBjG_q.js +217 -0
- package/dist/web/assets/{conversationExport-CfUybHMU.js → conversationExport-q-9NUHuj.js} +1 -1
- package/dist/web/assets/cynefin-EF2NZ3EQ-ucJDz_S5.js +1 -0
- package/dist/web/assets/{cynefinDiagram-5FMLGOSQ-BKvXEDID.js → cynefinDiagram-3GCD6N5R-qPxcNdaa.js} +1 -1
- package/dist/web/assets/dagre-W4DXFKR2-ChflYJGj.js +4 -0
- package/dist/web/assets/diagram-2UJZ2QOL-Bi9ngdu2.js +200 -0
- package/dist/web/assets/{diagram-VX7I27RA-D5POkb-9.js → diagram-OVF4WLC6-iSSbF5Cd.js} +10 -10
- package/dist/web/assets/{diagram-S7CK7UJ4-DTvEAe9r.js → diagram-PFPMY2P6-BeEOD8rR.js} +2 -2
- package/dist/web/assets/{diagram-Z3DM3KII-CC2Mxm4H.js → diagram-UMYRVEAY-BckO6iZI.js} +1 -1
- package/dist/web/assets/{diagram-UQ7AKVKN-CVGEkml-.js → diagram-YEKJPTXX-BzzDIAmO.js} +2 -2
- package/dist/web/assets/diagram-ZIFT7M5P-ByjWOPbN.js +3 -0
- package/dist/web/assets/{docxExport-ErgwApAZ.js → docxExport-BO7j3Xnv.js} +1 -1
- package/dist/web/assets/{ebnfDiagram-PWID7BFC-CbDy2vxX.js → ebnfDiagram-VR2GEFS7-DRp-A5JC.js} +1 -1
- package/dist/web/assets/elk-IJKZMXRS-QzeiQ3l1.js +27 -0
- package/dist/web/assets/{erDiagram-2YWLMYGG-DUdStx-7.js → erDiagram-O2IAPWRE-BewZvI56.js} +15 -15
- package/dist/web/assets/eventmodeling-K75KTNOO-CX7X0bsf.js +1 -0
- package/dist/web/assets/flowDiagram-OXPTDLAJ-CSIHFoeR.js +1 -0
- package/dist/web/assets/ganttDiagram-R7TSEDQI-BT8Lcdwc.js +292 -0
- package/dist/web/assets/gitGraph-VSP46ZUC-BxYbaxeg.js +1 -0
- package/dist/web/assets/gitGraphDiagram-XJZIOB7I-B0fqVCqP.js +106 -0
- package/dist/web/assets/index-DcqvxkHN.css +2 -0
- package/dist/web/assets/index-eTp_lQUc.js +350 -0
- package/dist/web/assets/info-OHQRW6UA-DV3PDKXA.js +1 -0
- package/dist/web/assets/infoDiagram-5W2HQ5XZ-DfHpZ9RG.js +2 -0
- package/dist/web/assets/{ishikawaDiagram-5VMMS53U-D-gYpOUM.js → ishikawaDiagram-K3B6WC7H-DuwLwL9k.js} +2 -2
- package/dist/web/assets/{journeyDiagram-EYS64GPL-B0WqOtZ4.js → journeyDiagram-COXZFDF6-CMOfweZO.js} +4 -4
- package/dist/web/assets/{kanban-definition-UXKFOSKX-DIrVFtP3.js → kanban-definition-P3RFRI5V-DjHhlDbk.js} +9 -9
- package/dist/web/assets/{line-CuEhAU65.js → line-CGIAMPkR.js} +1 -1
- package/dist/web/assets/loadReferencedImage-DZ5eApE4.js +2 -0
- package/dist/web/assets/{mermaid-parser.core-CzCh9EE1.js → mermaid-parser.core-C18KmsD9.js} +6 -6
- package/dist/web/assets/mermaid.core-C9srNL3b.js +44 -0
- package/dist/web/assets/{mindmap-definition-THT77NOG-CBH0Z9AJ.js → mindmap-definition-LZFPQGKD-C38HXkG2.js} +24 -24
- package/dist/web/assets/packet-JDAUHWVQ-Br-8ADK6.js +1 -0
- package/dist/web/assets/{pdf-6mG9havR.js → pdf-C3f6Vjz7.js} +1 -1
- package/dist/web/assets/{pegDiagram-XKGWAZYB-BNpTWHo8.js → pegDiagram-BGZESJAR-Be49dM_b.js} +1 -1
- package/dist/web/assets/pie-XZMESJXO-68ykK6i1.js +1 -0
- package/dist/web/assets/{pieDiagram-E7YTZNPT-CZ34Q1W-.js → pieDiagram-CAPJLFHJ-DVOWjXQ_.js} +2 -2
- package/dist/web/assets/{quadrantDiagram-AXDQQJYC-C5aFQsIe.js → quadrantDiagram-GDMTTRAM-8la_R53U.js} +3 -3
- package/dist/web/assets/radar-ABXABTNO-K00ZGu13.js +1 -0
- package/dist/web/assets/railroad-I3PHUGI6-W7QuDysT.js +1 -0
- package/dist/web/assets/railroad-abnf-LNEFI6M7-DR6CNkaK.js +1 -0
- package/dist/web/assets/railroad-ebnf-DWYD2UWJ-dAhaGv5L.js +1 -0
- package/dist/web/assets/railroad-peg-JR7BVNR7-DwoiiDdE.js +1 -0
- package/dist/web/assets/{railroadDiagram-O6MQD6OU-B0ctRtRT.js → railroadDiagram-SM67HX2B-BuSjCs02.js} +1 -1
- package/dist/web/assets/{requirementDiagram-IS5BZ75X-BuOtNPGm.js → requirementDiagram-X7JNWC4A-3uq8m_5E.js} +11 -11
- package/dist/web/assets/{sankeyDiagram-P5KCCOFB-CybICPpQ.js → sankeyDiagram-UM26HJRW-BB9_G8bN.js} +3 -3
- package/dist/web/assets/sequenceDiagram-ZO4K6R2Y-CGehVq9k.js +169 -0
- package/dist/web/assets/stateDiagram-v2-TBUQTH76-CwMywh5s.js +291 -0
- package/dist/web/assets/swimlanes-N4OXWK64-CqjihurI.js +1 -0
- package/dist/web/assets/swimlanesDiagram-K3J5GTZL-Blk5ohUI.js +8 -0
- package/dist/web/assets/timeline-definition-YOQAKGHF-BtKnuY5Y.js +120 -0
- package/dist/web/assets/treeView-D4JQ5SDB-Dy4jC4wa.js +1 -0
- package/dist/web/assets/treemap-SAJKECNS-CHtGJD8P.js +1 -0
- package/dist/web/assets/usecaseDiagram-VIAY4XPW-BjnstWbR.js +328 -0
- package/dist/web/assets/vennDiagram-BLWOH2XV-o_EtJWVA.js +34 -0
- package/dist/web/assets/wardley-7MLQ67FV-BTheL3FW.js +1 -0
- package/dist/web/assets/{wardleyDiagram-VM6X3IG4-CzB2tR_t.js → wardleyDiagram-YMQ3BMBF-Bp_sv2v4.js} +3 -3
- package/dist/web/assets/xychartDiagram-TAQBALBS-C0IpEfij.js +7 -0
- package/dist/web/index.html +2 -2
- package/package.json +3 -3
- package/dist/web/assets/architecture-7GRP2DOG-BqTZwqCY.js +0 -1
- package/dist/web/assets/architectureDiagram-5GKGNRK7-BEGSAGSn.js +0 -36
- package/dist/web/assets/c4Diagram-7LVT6UL2-C6wQYxBC.js +0 -38
- package/dist/web/assets/channel-CbMG5PZq.js +0 -1
- package/dist/web/assets/chunk-3NF5O7KM-Dni31-nE.js +0 -168
- package/dist/web/assets/chunk-4HAMMTFA-hiqoLVtf.js +0 -62
- package/dist/web/assets/chunk-75Z2AOVW-1k7HRGrm.js +0 -2
- package/dist/web/assets/chunk-DU6HZSFF-Dy05V--k.js +0 -127
- package/dist/web/assets/chunk-FOHPRMQF-DHwB1DNv.js +0 -161
- package/dist/web/assets/chunk-GMAD6QVW-Bi5Ne8OE.js +0 -72
- package/dist/web/assets/chunk-HLEWEB6X-yamDqy1M.js +0 -206
- package/dist/web/assets/chunk-L3NEJ4N5-CQSamtuJ.js +0 -1
- package/dist/web/assets/chunk-OSK3NFVY-S95igUko.js +0 -10
- package/dist/web/assets/chunk-P2QGCYS3-BPor-azX.js +0 -1
- package/dist/web/assets/chunk-ZLD2IHE6-D0uZMMWb.js +0 -231
- package/dist/web/assets/classDiagram-CYGNFDIV-2Yl201cv.js +0 -1
- package/dist/web/assets/classDiagram-v2-TLXNO2FR-2Yl201cv.js +0 -1
- package/dist/web/assets/cynefin-OW5HDTMX-ua6bZIWp.js +0 -1
- package/dist/web/assets/dagre-OS7QT2EB-BRxaZdm2.js +0 -4
- package/dist/web/assets/dagre-PrKaheQc.js +0 -1
- package/dist/web/assets/diagram-VSXAHHWV-Dkh-RvzE.js +0 -3
- package/dist/web/assets/eventmodeling-NTZA5JFV-Bw8wULv_.js +0 -1
- package/dist/web/assets/flowDiagram-T62WH6J4-Dp4v9IDN.js +0 -1
- package/dist/web/assets/ganttDiagram-EL5Y4UJY-6dI1H52q.js +0 -292
- package/dist/web/assets/gitGraph-4MIJSDKK-UXnB0IFr.js +0 -1
- package/dist/web/assets/gitGraphDiagram-WWUBYQGX-B_wXPpx0.js +0 -106
- package/dist/web/assets/index-9y9n2Dul.css +0 -2
- package/dist/web/assets/index-COu8CnNa.js +0 -350
- package/dist/web/assets/info-A6RAGUB7-C2WWyNzF.js +0 -1
- package/dist/web/assets/infoDiagram-FKFFQAWI-DY65_ndC.js +0 -2
- package/dist/web/assets/loadReferencedImage-DgHMXQNZ.js +0 -2
- package/dist/web/assets/mermaid.core-BmGW_v8T.js +0 -44
- package/dist/web/assets/packet-AYTQ26CC-BYG_KViO.js +0 -1
- package/dist/web/assets/pie-WAS4IAKB-wBoUHr8R.js +0 -1
- package/dist/web/assets/radar-RG4KPBEZ-D4K5XP7X.js +0 -1
- package/dist/web/assets/railroad-74A4TZTK-Haum25Us.js +0 -1
- package/dist/web/assets/railroad-abnf-HS5TGJTU-D-kbOsoZ.js +0 -1
- package/dist/web/assets/railroad-ebnf-LZEXJU2U-CWtixpZf.js +0 -1
- package/dist/web/assets/railroad-peg-WCYAUIDC-BeY7arxf.js +0 -1
- package/dist/web/assets/sequenceDiagram-WJ2MYXX4-Dvo8sl8e.js +0 -162
- package/dist/web/assets/stateDiagram-XQSTLZYL-BcM-hGJa.js +0 -1
- package/dist/web/assets/stateDiagram-v2-IH3M54BS-hYgwFLzv.js +0 -1
- package/dist/web/assets/swimlanes-V6O3JKXN-mOOjKnlm.js +0 -1
- package/dist/web/assets/swimlanesDiagram-JKAHXJPX-C_yinM3f.js +0 -8
- package/dist/web/assets/timeline-definition-24CTP7MA-DuwMztTy.js +0 -120
- package/dist/web/assets/treeView-Q6P3EWNA-BT4vRttT.js +0 -1
- package/dist/web/assets/treemap-WGGIJYW6-Df6GHCE2.js +0 -1
- package/dist/web/assets/vennDiagram-4TSXK5OY-BbcbGn7o.js +0 -34
- package/dist/web/assets/wardley-WFR3VGLG-L_G3ydHA.js +0 -1
- package/dist/web/assets/xychartDiagram-S5SC5T6Z-CKHwJboP.js +0 -7
|
@@ -0,0 +1,1263 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "urn:structured-exchange:3",
|
|
4
|
+
"title": "Structured exchange envelope v3",
|
|
5
|
+
"description": "Version 2 plus one kind, the timeline. Every version 2 construct keeps its definition, so a version 2 document means the same thing once its identifier is changed to this one.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"schema",
|
|
10
|
+
"kind",
|
|
11
|
+
"data"
|
|
12
|
+
],
|
|
13
|
+
"$defs": {
|
|
14
|
+
"ref": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"minLength": 1,
|
|
17
|
+
"maxLength": 200
|
|
18
|
+
},
|
|
19
|
+
"localId": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"minLength": 1,
|
|
22
|
+
"maxLength": 200
|
|
23
|
+
},
|
|
24
|
+
"label": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"maxLength": 500
|
|
27
|
+
},
|
|
28
|
+
"kind": {
|
|
29
|
+
"description": "The producing tool's type or stereotype for this thing \u2014 'block', 'sensor', 'requirement', 'power'. Free text, because the vocabulary belongs to the domain and not to this contract; a profile names which domain owns it.",
|
|
30
|
+
"type": "string",
|
|
31
|
+
"minLength": 1,
|
|
32
|
+
"maxLength": 100
|
|
33
|
+
},
|
|
34
|
+
"reference": {
|
|
35
|
+
"description": "Something owned elsewhere, named by the identifier its authority knows it by. Opaque: never parsed, resolved or fetched.",
|
|
36
|
+
"type": "object",
|
|
37
|
+
"additionalProperties": false,
|
|
38
|
+
"required": [
|
|
39
|
+
"ref"
|
|
40
|
+
],
|
|
41
|
+
"properties": {
|
|
42
|
+
"ref": {
|
|
43
|
+
"$ref": "#/$defs/ref"
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"attributeScalar": {
|
|
48
|
+
"type": [
|
|
49
|
+
"string",
|
|
50
|
+
"number",
|
|
51
|
+
"boolean",
|
|
52
|
+
"null"
|
|
53
|
+
],
|
|
54
|
+
"maxLength": 1000
|
|
55
|
+
},
|
|
56
|
+
"attributeValue": {
|
|
57
|
+
"description": "A scalar, an opaque reference, or one flat list of those. Lists never nest and no other object shape is allowed: recursive values would weaken size analysis, generic rendering and deterministic comparison.",
|
|
58
|
+
"oneOf": [
|
|
59
|
+
{
|
|
60
|
+
"$ref": "#/$defs/attributeScalar"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"$ref": "#/$defs/reference"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"type": "array",
|
|
67
|
+
"maxItems": 50,
|
|
68
|
+
"items": {
|
|
69
|
+
"oneOf": [
|
|
70
|
+
{
|
|
71
|
+
"$ref": "#/$defs/attributeScalar"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"$ref": "#/$defs/reference"
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
"attributes": {
|
|
82
|
+
"description": "Domain-owned properties of this item. Names belong to the profile's vocabulary; this contract bounds them and reads none of them.",
|
|
83
|
+
"type": "object",
|
|
84
|
+
"maxProperties": 50,
|
|
85
|
+
"propertyNames": {
|
|
86
|
+
"minLength": 1,
|
|
87
|
+
"maxLength": 200
|
|
88
|
+
},
|
|
89
|
+
"additionalProperties": {
|
|
90
|
+
"$ref": "#/$defs/attributeValue"
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"removeAttributes": {
|
|
94
|
+
"description": "Attribute names this proposal takes away. Deletion is explicit because null is an ordinary value: a producer that means 'unset' says so here.",
|
|
95
|
+
"type": "array",
|
|
96
|
+
"maxItems": 50,
|
|
97
|
+
"items": {
|
|
98
|
+
"$ref": "#/$defs/localId"
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"revision": {
|
|
102
|
+
"description": "The revision an authority knows its state by. Opaque: compared by the authority, never interpreted here.",
|
|
103
|
+
"type": "string",
|
|
104
|
+
"minLength": 1,
|
|
105
|
+
"maxLength": 200
|
|
106
|
+
},
|
|
107
|
+
"position": {
|
|
108
|
+
"type": "integer",
|
|
109
|
+
"minimum": 0,
|
|
110
|
+
"maximum": 1000000
|
|
111
|
+
},
|
|
112
|
+
"location": {
|
|
113
|
+
"description": "Where this item can be found, as a hint for a reader. Never an identity: locations take no part in endpoint resolution, duplicate detection, or what a proposal addresses, and moving the thing does not change what it is.",
|
|
114
|
+
"type": "object",
|
|
115
|
+
"additionalProperties": false,
|
|
116
|
+
"required": [
|
|
117
|
+
"uri"
|
|
118
|
+
],
|
|
119
|
+
"properties": {
|
|
120
|
+
"uri": {
|
|
121
|
+
"type": "string",
|
|
122
|
+
"minLength": 1,
|
|
123
|
+
"maxLength": 2000
|
|
124
|
+
},
|
|
125
|
+
"revision": {
|
|
126
|
+
"$ref": "#/$defs/revision"
|
|
127
|
+
},
|
|
128
|
+
"range": {
|
|
129
|
+
"type": "object",
|
|
130
|
+
"additionalProperties": false,
|
|
131
|
+
"required": [
|
|
132
|
+
"startLine",
|
|
133
|
+
"endLine"
|
|
134
|
+
],
|
|
135
|
+
"description": "A zero-based range inside the resource. Ordering is checked after the schema, which cannot conveniently compare two positions.",
|
|
136
|
+
"properties": {
|
|
137
|
+
"startLine": {
|
|
138
|
+
"$ref": "#/$defs/position"
|
|
139
|
+
},
|
|
140
|
+
"startCharacter": {
|
|
141
|
+
"$ref": "#/$defs/position"
|
|
142
|
+
},
|
|
143
|
+
"endLine": {
|
|
144
|
+
"$ref": "#/$defs/position"
|
|
145
|
+
},
|
|
146
|
+
"endCharacter": {
|
|
147
|
+
"$ref": "#/$defs/position"
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"locations": {
|
|
154
|
+
"type": "array",
|
|
155
|
+
"maxItems": 10,
|
|
156
|
+
"items": {
|
|
157
|
+
"$ref": "#/$defs/location"
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
"artifact": {
|
|
161
|
+
"description": "A related artifact \u2014 an implementation, a report, a piece of evidence \u2014 named rather than carried. The digest is mandatory so an approval refers to stable bytes even when the URI is not: nothing here is retrieved by validation or by rendering.",
|
|
162
|
+
"type": "object",
|
|
163
|
+
"additionalProperties": false,
|
|
164
|
+
"required": [
|
|
165
|
+
"rel",
|
|
166
|
+
"uri",
|
|
167
|
+
"sha256"
|
|
168
|
+
],
|
|
169
|
+
"properties": {
|
|
170
|
+
"rel": {
|
|
171
|
+
"type": "string",
|
|
172
|
+
"minLength": 1,
|
|
173
|
+
"maxLength": 100
|
|
174
|
+
},
|
|
175
|
+
"uri": {
|
|
176
|
+
"type": "string",
|
|
177
|
+
"minLength": 1,
|
|
178
|
+
"maxLength": 2000
|
|
179
|
+
},
|
|
180
|
+
"sha256": {
|
|
181
|
+
"type": "string",
|
|
182
|
+
"pattern": "^sha256:[0-9a-f]{64}$"
|
|
183
|
+
},
|
|
184
|
+
"mediaType": {
|
|
185
|
+
"type": "string",
|
|
186
|
+
"minLength": 1,
|
|
187
|
+
"maxLength": 100
|
|
188
|
+
},
|
|
189
|
+
"label": {
|
|
190
|
+
"$ref": "#/$defs/label"
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
"artifacts": {
|
|
195
|
+
"type": "array",
|
|
196
|
+
"maxItems": 20,
|
|
197
|
+
"items": {
|
|
198
|
+
"$ref": "#/$defs/artifact"
|
|
199
|
+
}
|
|
200
|
+
},
|
|
201
|
+
"expect": {
|
|
202
|
+
"description": "What the producer believes is true of this item right now. A declaration for the receiving authority to check immediately before applying, never a claim this application has established.",
|
|
203
|
+
"type": "object",
|
|
204
|
+
"additionalProperties": false,
|
|
205
|
+
"minProperties": 1,
|
|
206
|
+
"properties": {
|
|
207
|
+
"label": {
|
|
208
|
+
"$ref": "#/$defs/label"
|
|
209
|
+
},
|
|
210
|
+
"kind": {
|
|
211
|
+
"$ref": "#/$defs/kind"
|
|
212
|
+
},
|
|
213
|
+
"container": {
|
|
214
|
+
"$ref": "#/$defs/localId"
|
|
215
|
+
},
|
|
216
|
+
"revision": {
|
|
217
|
+
"$ref": "#/$defs/revision"
|
|
218
|
+
},
|
|
219
|
+
"attributes": {
|
|
220
|
+
"$ref": "#/$defs/attributes"
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
"elementChange": {
|
|
225
|
+
"type": "object",
|
|
226
|
+
"additionalProperties": false,
|
|
227
|
+
"minProperties": 1,
|
|
228
|
+
"properties": {
|
|
229
|
+
"label": {
|
|
230
|
+
"$ref": "#/$defs/label"
|
|
231
|
+
},
|
|
232
|
+
"kind": {
|
|
233
|
+
"$ref": "#/$defs/kind"
|
|
234
|
+
},
|
|
235
|
+
"container": {
|
|
236
|
+
"$ref": "#/$defs/localId"
|
|
237
|
+
},
|
|
238
|
+
"attributes": {
|
|
239
|
+
"$ref": "#/$defs/attributes"
|
|
240
|
+
},
|
|
241
|
+
"removeAttributes": {
|
|
242
|
+
"$ref": "#/$defs/removeAttributes"
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
"edgeChange": {
|
|
247
|
+
"type": "object",
|
|
248
|
+
"additionalProperties": false,
|
|
249
|
+
"minProperties": 1,
|
|
250
|
+
"properties": {
|
|
251
|
+
"kind": {
|
|
252
|
+
"$ref": "#/$defs/kind"
|
|
253
|
+
},
|
|
254
|
+
"label": {
|
|
255
|
+
"$ref": "#/$defs/label"
|
|
256
|
+
},
|
|
257
|
+
"attributes": {
|
|
258
|
+
"$ref": "#/$defs/attributes"
|
|
259
|
+
},
|
|
260
|
+
"removeAttributes": {
|
|
261
|
+
"$ref": "#/$defs/removeAttributes"
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
},
|
|
265
|
+
"messageChange": {
|
|
266
|
+
"type": "object",
|
|
267
|
+
"additionalProperties": false,
|
|
268
|
+
"minProperties": 1,
|
|
269
|
+
"properties": {
|
|
270
|
+
"label": {
|
|
271
|
+
"$ref": "#/$defs/label"
|
|
272
|
+
},
|
|
273
|
+
"attributes": {
|
|
274
|
+
"$ref": "#/$defs/attributes"
|
|
275
|
+
},
|
|
276
|
+
"removeAttributes": {
|
|
277
|
+
"$ref": "#/$defs/removeAttributes"
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
},
|
|
281
|
+
"rowChange": {
|
|
282
|
+
"type": "object",
|
|
283
|
+
"additionalProperties": false,
|
|
284
|
+
"minProperties": 1,
|
|
285
|
+
"properties": {
|
|
286
|
+
"label": {
|
|
287
|
+
"$ref": "#/$defs/label"
|
|
288
|
+
},
|
|
289
|
+
"kind": {
|
|
290
|
+
"$ref": "#/$defs/kind"
|
|
291
|
+
},
|
|
292
|
+
"cells": {
|
|
293
|
+
"$ref": "#/$defs/cells"
|
|
294
|
+
},
|
|
295
|
+
"attributes": {
|
|
296
|
+
"$ref": "#/$defs/attributes"
|
|
297
|
+
},
|
|
298
|
+
"removeAttributes": {
|
|
299
|
+
"$ref": "#/$defs/removeAttributes"
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
"container": {
|
|
304
|
+
"description": "A named group of elements or participants. Grouping only: relationships connect elements and cross container boundaries freely, and a container carries no relationship of its own.",
|
|
305
|
+
"type": "object",
|
|
306
|
+
"additionalProperties": false,
|
|
307
|
+
"required": [
|
|
308
|
+
"id",
|
|
309
|
+
"label"
|
|
310
|
+
],
|
|
311
|
+
"properties": {
|
|
312
|
+
"id": {
|
|
313
|
+
"$ref": "#/$defs/localId"
|
|
314
|
+
},
|
|
315
|
+
"label": {
|
|
316
|
+
"$ref": "#/$defs/label"
|
|
317
|
+
},
|
|
318
|
+
"kind": {
|
|
319
|
+
"$ref": "#/$defs/kind"
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
},
|
|
323
|
+
"element": {
|
|
324
|
+
"type": "object",
|
|
325
|
+
"additionalProperties": false,
|
|
326
|
+
"required": [
|
|
327
|
+
"id"
|
|
328
|
+
],
|
|
329
|
+
"properties": {
|
|
330
|
+
"id": {
|
|
331
|
+
"$ref": "#/$defs/localId"
|
|
332
|
+
},
|
|
333
|
+
"ref": {
|
|
334
|
+
"$ref": "#/$defs/ref"
|
|
335
|
+
},
|
|
336
|
+
"label": {
|
|
337
|
+
"$ref": "#/$defs/label"
|
|
338
|
+
},
|
|
339
|
+
"kind": {
|
|
340
|
+
"$ref": "#/$defs/kind"
|
|
341
|
+
},
|
|
342
|
+
"set": {
|
|
343
|
+
"$ref": "#/$defs/elementChange"
|
|
344
|
+
},
|
|
345
|
+
"container": {
|
|
346
|
+
"$ref": "#/$defs/localId"
|
|
347
|
+
},
|
|
348
|
+
"attributes": {
|
|
349
|
+
"$ref": "#/$defs/attributes"
|
|
350
|
+
},
|
|
351
|
+
"expect": {
|
|
352
|
+
"$ref": "#/$defs/expect"
|
|
353
|
+
},
|
|
354
|
+
"locations": {
|
|
355
|
+
"$ref": "#/$defs/locations"
|
|
356
|
+
},
|
|
357
|
+
"artifacts": {
|
|
358
|
+
"$ref": "#/$defs/artifacts"
|
|
359
|
+
}
|
|
360
|
+
},
|
|
361
|
+
"if": {
|
|
362
|
+
"not": {
|
|
363
|
+
"required": [
|
|
364
|
+
"ref"
|
|
365
|
+
]
|
|
366
|
+
}
|
|
367
|
+
},
|
|
368
|
+
"then": {
|
|
369
|
+
"required": [
|
|
370
|
+
"label"
|
|
371
|
+
]
|
|
372
|
+
}
|
|
373
|
+
},
|
|
374
|
+
"edge": {
|
|
375
|
+
"type": "object",
|
|
376
|
+
"additionalProperties": false,
|
|
377
|
+
"required": [
|
|
378
|
+
"from",
|
|
379
|
+
"to"
|
|
380
|
+
],
|
|
381
|
+
"properties": {
|
|
382
|
+
"from": {
|
|
383
|
+
"$ref": "#/$defs/localId"
|
|
384
|
+
},
|
|
385
|
+
"to": {
|
|
386
|
+
"$ref": "#/$defs/localId"
|
|
387
|
+
},
|
|
388
|
+
"kind": {
|
|
389
|
+
"$ref": "#/$defs/kind"
|
|
390
|
+
},
|
|
391
|
+
"ref": {
|
|
392
|
+
"$ref": "#/$defs/ref"
|
|
393
|
+
},
|
|
394
|
+
"label": {
|
|
395
|
+
"$ref": "#/$defs/label"
|
|
396
|
+
},
|
|
397
|
+
"set": {
|
|
398
|
+
"$ref": "#/$defs/edgeChange"
|
|
399
|
+
},
|
|
400
|
+
"attributes": {
|
|
401
|
+
"$ref": "#/$defs/attributes"
|
|
402
|
+
},
|
|
403
|
+
"expect": {
|
|
404
|
+
"$ref": "#/$defs/expect"
|
|
405
|
+
},
|
|
406
|
+
"locations": {
|
|
407
|
+
"$ref": "#/$defs/locations"
|
|
408
|
+
},
|
|
409
|
+
"artifacts": {
|
|
410
|
+
"$ref": "#/$defs/artifacts"
|
|
411
|
+
}
|
|
412
|
+
},
|
|
413
|
+
"if": {
|
|
414
|
+
"not": {
|
|
415
|
+
"required": [
|
|
416
|
+
"ref"
|
|
417
|
+
]
|
|
418
|
+
}
|
|
419
|
+
},
|
|
420
|
+
"then": {
|
|
421
|
+
"required": [
|
|
422
|
+
"kind"
|
|
423
|
+
]
|
|
424
|
+
}
|
|
425
|
+
},
|
|
426
|
+
"message": {
|
|
427
|
+
"type": "object",
|
|
428
|
+
"additionalProperties": false,
|
|
429
|
+
"required": [
|
|
430
|
+
"from",
|
|
431
|
+
"to"
|
|
432
|
+
],
|
|
433
|
+
"properties": {
|
|
434
|
+
"from": {
|
|
435
|
+
"$ref": "#/$defs/localId"
|
|
436
|
+
},
|
|
437
|
+
"to": {
|
|
438
|
+
"$ref": "#/$defs/localId"
|
|
439
|
+
},
|
|
440
|
+
"ref": {
|
|
441
|
+
"$ref": "#/$defs/ref"
|
|
442
|
+
},
|
|
443
|
+
"label": {
|
|
444
|
+
"$ref": "#/$defs/label"
|
|
445
|
+
},
|
|
446
|
+
"set": {
|
|
447
|
+
"$ref": "#/$defs/messageChange"
|
|
448
|
+
},
|
|
449
|
+
"attributes": {
|
|
450
|
+
"$ref": "#/$defs/attributes"
|
|
451
|
+
},
|
|
452
|
+
"expect": {
|
|
453
|
+
"$ref": "#/$defs/expect"
|
|
454
|
+
},
|
|
455
|
+
"locations": {
|
|
456
|
+
"$ref": "#/$defs/locations"
|
|
457
|
+
},
|
|
458
|
+
"artifacts": {
|
|
459
|
+
"$ref": "#/$defs/artifacts"
|
|
460
|
+
}
|
|
461
|
+
},
|
|
462
|
+
"if": {
|
|
463
|
+
"not": {
|
|
464
|
+
"required": [
|
|
465
|
+
"ref"
|
|
466
|
+
]
|
|
467
|
+
}
|
|
468
|
+
},
|
|
469
|
+
"then": {
|
|
470
|
+
"required": [
|
|
471
|
+
"label"
|
|
472
|
+
]
|
|
473
|
+
}
|
|
474
|
+
},
|
|
475
|
+
"removal": {
|
|
476
|
+
"description": "Something to take out of the target, named by the reference the authority knows it by. The other fields describe it and never identify it: they exist so a reader can see what they are approving the removal of.",
|
|
477
|
+
"type": "object",
|
|
478
|
+
"additionalProperties": false,
|
|
479
|
+
"required": [
|
|
480
|
+
"type",
|
|
481
|
+
"ref"
|
|
482
|
+
],
|
|
483
|
+
"properties": {
|
|
484
|
+
"type": {
|
|
485
|
+
"enum": [
|
|
486
|
+
"element",
|
|
487
|
+
"relationship",
|
|
488
|
+
"row"
|
|
489
|
+
]
|
|
490
|
+
},
|
|
491
|
+
"ref": {
|
|
492
|
+
"$ref": "#/$defs/ref"
|
|
493
|
+
},
|
|
494
|
+
"label": {
|
|
495
|
+
"$ref": "#/$defs/label"
|
|
496
|
+
},
|
|
497
|
+
"kind": {
|
|
498
|
+
"$ref": "#/$defs/kind"
|
|
499
|
+
},
|
|
500
|
+
"from": {
|
|
501
|
+
"$ref": "#/$defs/localId"
|
|
502
|
+
},
|
|
503
|
+
"to": {
|
|
504
|
+
"$ref": "#/$defs/localId"
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
},
|
|
508
|
+
"cells": {
|
|
509
|
+
"type": "array",
|
|
510
|
+
"items": {
|
|
511
|
+
"type": [
|
|
512
|
+
"string",
|
|
513
|
+
"number",
|
|
514
|
+
"boolean",
|
|
515
|
+
"null"
|
|
516
|
+
],
|
|
517
|
+
"maxLength": 1000
|
|
518
|
+
},
|
|
519
|
+
"maxItems": 50
|
|
520
|
+
},
|
|
521
|
+
"role": {
|
|
522
|
+
"enum": [
|
|
523
|
+
"added",
|
|
524
|
+
"changed",
|
|
525
|
+
"context",
|
|
526
|
+
"removed"
|
|
527
|
+
]
|
|
528
|
+
},
|
|
529
|
+
"dataRow": {
|
|
530
|
+
"description": "A row of the table. It may carry an identity of its own \u2014 a document-local id, the reference its authority knows it by, and the kind of thing it is \u2014 which is what lets a relation point at it and a patch address it.",
|
|
531
|
+
"type": "object",
|
|
532
|
+
"additionalProperties": false,
|
|
533
|
+
"required": [
|
|
534
|
+
"cells"
|
|
535
|
+
],
|
|
536
|
+
"properties": {
|
|
537
|
+
"cells": {
|
|
538
|
+
"$ref": "#/$defs/cells"
|
|
539
|
+
},
|
|
540
|
+
"role": {
|
|
541
|
+
"$ref": "#/$defs/role"
|
|
542
|
+
},
|
|
543
|
+
"id": {
|
|
544
|
+
"$ref": "#/$defs/localId"
|
|
545
|
+
},
|
|
546
|
+
"ref": {
|
|
547
|
+
"$ref": "#/$defs/ref"
|
|
548
|
+
},
|
|
549
|
+
"kind": {
|
|
550
|
+
"$ref": "#/$defs/kind"
|
|
551
|
+
},
|
|
552
|
+
"label": {
|
|
553
|
+
"$ref": "#/$defs/label"
|
|
554
|
+
},
|
|
555
|
+
"set": {
|
|
556
|
+
"$ref": "#/$defs/rowChange"
|
|
557
|
+
},
|
|
558
|
+
"attributes": {
|
|
559
|
+
"$ref": "#/$defs/attributes"
|
|
560
|
+
},
|
|
561
|
+
"expect": {
|
|
562
|
+
"$ref": "#/$defs/expect"
|
|
563
|
+
},
|
|
564
|
+
"locations": {
|
|
565
|
+
"$ref": "#/$defs/locations"
|
|
566
|
+
},
|
|
567
|
+
"artifacts": {
|
|
568
|
+
"$ref": "#/$defs/artifacts"
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
},
|
|
572
|
+
"structuralRow": {
|
|
573
|
+
"description": "A heading that organises the table \u2014 a chapter, a section \u2014 rather than a row of data. It spans the table and is not aligned to its columns; it is never inferred from a data row whose cells are empty.",
|
|
574
|
+
"type": "object",
|
|
575
|
+
"additionalProperties": false,
|
|
576
|
+
"required": [
|
|
577
|
+
"heading"
|
|
578
|
+
],
|
|
579
|
+
"properties": {
|
|
580
|
+
"heading": {
|
|
581
|
+
"type": "string",
|
|
582
|
+
"minLength": 1,
|
|
583
|
+
"maxLength": 500
|
|
584
|
+
},
|
|
585
|
+
"depth": {
|
|
586
|
+
"type": "integer",
|
|
587
|
+
"minimum": 1,
|
|
588
|
+
"maximum": 6
|
|
589
|
+
},
|
|
590
|
+
"role": {
|
|
591
|
+
"$ref": "#/$defs/role"
|
|
592
|
+
},
|
|
593
|
+
"id": {
|
|
594
|
+
"$ref": "#/$defs/localId"
|
|
595
|
+
},
|
|
596
|
+
"ref": {
|
|
597
|
+
"$ref": "#/$defs/ref"
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
},
|
|
601
|
+
"endpoint": {
|
|
602
|
+
"description": "One end of a relation: a row of this document by its local id, or something outside it by the reference its authority knows. Stated explicitly so an unresolvable local endpoint is an error rather than silently reread as external.",
|
|
603
|
+
"type": "object",
|
|
604
|
+
"additionalProperties": false,
|
|
605
|
+
"minProperties": 1,
|
|
606
|
+
"maxProperties": 1,
|
|
607
|
+
"oneOf": [
|
|
608
|
+
{
|
|
609
|
+
"required": [
|
|
610
|
+
"id"
|
|
611
|
+
]
|
|
612
|
+
},
|
|
613
|
+
{
|
|
614
|
+
"required": [
|
|
615
|
+
"ref"
|
|
616
|
+
]
|
|
617
|
+
}
|
|
618
|
+
],
|
|
619
|
+
"properties": {
|
|
620
|
+
"id": {
|
|
621
|
+
"$ref": "#/$defs/localId"
|
|
622
|
+
},
|
|
623
|
+
"ref": {
|
|
624
|
+
"$ref": "#/$defs/ref"
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
},
|
|
628
|
+
"relation": {
|
|
629
|
+
"description": "A relation between rows \u2014 traceability. Carries an opaque kind from the profile's vocabulary, exactly as a relationship between graph elements does; unlike one, an end may leave the document, because the test that verifies a requirement usually lives elsewhere.",
|
|
630
|
+
"type": "object",
|
|
631
|
+
"additionalProperties": false,
|
|
632
|
+
"required": [
|
|
633
|
+
"from",
|
|
634
|
+
"to",
|
|
635
|
+
"kind"
|
|
636
|
+
],
|
|
637
|
+
"properties": {
|
|
638
|
+
"from": {
|
|
639
|
+
"$ref": "#/$defs/endpoint"
|
|
640
|
+
},
|
|
641
|
+
"to": {
|
|
642
|
+
"$ref": "#/$defs/endpoint"
|
|
643
|
+
},
|
|
644
|
+
"kind": {
|
|
645
|
+
"$ref": "#/$defs/kind"
|
|
646
|
+
},
|
|
647
|
+
"ref": {
|
|
648
|
+
"$ref": "#/$defs/ref"
|
|
649
|
+
},
|
|
650
|
+
"label": {
|
|
651
|
+
"$ref": "#/$defs/label"
|
|
652
|
+
},
|
|
653
|
+
"attributes": {
|
|
654
|
+
"$ref": "#/$defs/attributes"
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
},
|
|
658
|
+
"viewpoint": {
|
|
659
|
+
"description": "A named reading of a graph: the concern it frames, and the element and relationship kinds that address it. An inclusion \u2014 showing it shows what it retains and hides the rest, so a kind added to the model later is not shown unannounced. A vocabulary it names no kinds for is left whole. The term is ISO/IEC/IEEE 42010's.",
|
|
660
|
+
"type": "object",
|
|
661
|
+
"additionalProperties": false,
|
|
662
|
+
"required": [
|
|
663
|
+
"id",
|
|
664
|
+
"label",
|
|
665
|
+
"concern"
|
|
666
|
+
],
|
|
667
|
+
"properties": {
|
|
668
|
+
"id": {
|
|
669
|
+
"$ref": "#/$defs/localId"
|
|
670
|
+
},
|
|
671
|
+
"label": {
|
|
672
|
+
"description": "What a reader selects it by.",
|
|
673
|
+
"type": "string",
|
|
674
|
+
"minLength": 1,
|
|
675
|
+
"maxLength": 500
|
|
676
|
+
},
|
|
677
|
+
"concern": {
|
|
678
|
+
"description": "What this reading is for \u2014 stated inside every figure drawn for it, so a figure taken out of its report still says what it is a reading of.",
|
|
679
|
+
"type": "string",
|
|
680
|
+
"minLength": 1,
|
|
681
|
+
"maxLength": 500
|
|
682
|
+
},
|
|
683
|
+
"elementKinds": {
|
|
684
|
+
"description": "Element kinds this viewpoint retains. Absent leaves the element vocabulary whole.",
|
|
685
|
+
"type": "array",
|
|
686
|
+
"minItems": 1,
|
|
687
|
+
"maxItems": 64,
|
|
688
|
+
"uniqueItems": true,
|
|
689
|
+
"items": {
|
|
690
|
+
"$ref": "#/$defs/kind"
|
|
691
|
+
}
|
|
692
|
+
},
|
|
693
|
+
"relationshipKinds": {
|
|
694
|
+
"description": "Relationship kinds this viewpoint retains. Absent leaves the relationship vocabulary whole.",
|
|
695
|
+
"type": "array",
|
|
696
|
+
"minItems": 1,
|
|
697
|
+
"maxItems": 64,
|
|
698
|
+
"uniqueItems": true,
|
|
699
|
+
"items": {
|
|
700
|
+
"$ref": "#/$defs/kind"
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
},
|
|
705
|
+
"calendarDate": {
|
|
706
|
+
"description": "A calendar date, YYYY-MM-DD. A day, not an instant: no time and no zone, so a position derived from it is the same for every reader.",
|
|
707
|
+
"type": "string",
|
|
708
|
+
"pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$"
|
|
709
|
+
},
|
|
710
|
+
"timelineActivity": {
|
|
711
|
+
"description": "A duration on a task, drawn as a bar from the start of its start day to the end of its end day.",
|
|
712
|
+
"type": "object",
|
|
713
|
+
"additionalProperties": false,
|
|
714
|
+
"required": [
|
|
715
|
+
"type",
|
|
716
|
+
"start",
|
|
717
|
+
"end"
|
|
718
|
+
],
|
|
719
|
+
"properties": {
|
|
720
|
+
"type": {
|
|
721
|
+
"const": "activity"
|
|
722
|
+
},
|
|
723
|
+
"start": {
|
|
724
|
+
"$ref": "#/$defs/calendarDate"
|
|
725
|
+
},
|
|
726
|
+
"end": {
|
|
727
|
+
"$ref": "#/$defs/calendarDate"
|
|
728
|
+
},
|
|
729
|
+
"id": {
|
|
730
|
+
"$ref": "#/$defs/localId"
|
|
731
|
+
},
|
|
732
|
+
"label": {
|
|
733
|
+
"$ref": "#/$defs/label"
|
|
734
|
+
},
|
|
735
|
+
"kind": {
|
|
736
|
+
"$ref": "#/$defs/kind"
|
|
737
|
+
},
|
|
738
|
+
"previous": {
|
|
739
|
+
"description": "Where the activity stood in the plan named by comparedTo.",
|
|
740
|
+
"type": "object",
|
|
741
|
+
"additionalProperties": false,
|
|
742
|
+
"required": [
|
|
743
|
+
"start",
|
|
744
|
+
"end"
|
|
745
|
+
],
|
|
746
|
+
"properties": {
|
|
747
|
+
"start": {
|
|
748
|
+
"$ref": "#/$defs/calendarDate"
|
|
749
|
+
},
|
|
750
|
+
"end": {
|
|
751
|
+
"$ref": "#/$defs/calendarDate"
|
|
752
|
+
}
|
|
753
|
+
}
|
|
754
|
+
},
|
|
755
|
+
"role": {
|
|
756
|
+
"$ref": "#/$defs/timelineChangeRole"
|
|
757
|
+
}
|
|
758
|
+
}
|
|
759
|
+
},
|
|
760
|
+
"timelineMilestone": {
|
|
761
|
+
"description": "A point in time on a task, drawn as a star.",
|
|
762
|
+
"type": "object",
|
|
763
|
+
"additionalProperties": false,
|
|
764
|
+
"required": [
|
|
765
|
+
"type",
|
|
766
|
+
"date"
|
|
767
|
+
],
|
|
768
|
+
"properties": {
|
|
769
|
+
"type": {
|
|
770
|
+
"const": "milestone"
|
|
771
|
+
},
|
|
772
|
+
"date": {
|
|
773
|
+
"$ref": "#/$defs/calendarDate"
|
|
774
|
+
},
|
|
775
|
+
"id": {
|
|
776
|
+
"$ref": "#/$defs/localId"
|
|
777
|
+
},
|
|
778
|
+
"label": {
|
|
779
|
+
"$ref": "#/$defs/label"
|
|
780
|
+
},
|
|
781
|
+
"kind": {
|
|
782
|
+
"$ref": "#/$defs/kind"
|
|
783
|
+
},
|
|
784
|
+
"previous": {
|
|
785
|
+
"description": "Where the milestone stood in the plan named by comparedTo.",
|
|
786
|
+
"type": "object",
|
|
787
|
+
"additionalProperties": false,
|
|
788
|
+
"required": [
|
|
789
|
+
"date"
|
|
790
|
+
],
|
|
791
|
+
"properties": {
|
|
792
|
+
"date": {
|
|
793
|
+
"$ref": "#/$defs/calendarDate"
|
|
794
|
+
}
|
|
795
|
+
}
|
|
796
|
+
},
|
|
797
|
+
"role": {
|
|
798
|
+
"$ref": "#/$defs/timelineChangeRole"
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
},
|
|
802
|
+
"timelineTask": {
|
|
803
|
+
"description": "A semantic row: a named task holding any number of activities and milestones, in any order.",
|
|
804
|
+
"type": "object",
|
|
805
|
+
"additionalProperties": false,
|
|
806
|
+
"required": [
|
|
807
|
+
"type",
|
|
808
|
+
"id",
|
|
809
|
+
"label",
|
|
810
|
+
"items"
|
|
811
|
+
],
|
|
812
|
+
"properties": {
|
|
813
|
+
"type": {
|
|
814
|
+
"const": "task"
|
|
815
|
+
},
|
|
816
|
+
"id": {
|
|
817
|
+
"$ref": "#/$defs/localId"
|
|
818
|
+
},
|
|
819
|
+
"label": {
|
|
820
|
+
"$ref": "#/$defs/label"
|
|
821
|
+
},
|
|
822
|
+
"items": {
|
|
823
|
+
"type": "array",
|
|
824
|
+
"maxItems": 100,
|
|
825
|
+
"items": {
|
|
826
|
+
"$ref": "#/$defs/timelineItem"
|
|
827
|
+
}
|
|
828
|
+
},
|
|
829
|
+
"role": {
|
|
830
|
+
"$ref": "#/$defs/timelineChangeRole"
|
|
831
|
+
}
|
|
832
|
+
}
|
|
833
|
+
},
|
|
834
|
+
"timelineSeparator": {
|
|
835
|
+
"description": "A horizontal divider between groups of tasks, with an optional title. Carries no dates and takes no part in the time axis.",
|
|
836
|
+
"type": "object",
|
|
837
|
+
"additionalProperties": false,
|
|
838
|
+
"required": [
|
|
839
|
+
"type"
|
|
840
|
+
],
|
|
841
|
+
"properties": {
|
|
842
|
+
"type": {
|
|
843
|
+
"const": "separator"
|
|
844
|
+
},
|
|
845
|
+
"label": {
|
|
846
|
+
"$ref": "#/$defs/label"
|
|
847
|
+
}
|
|
848
|
+
}
|
|
849
|
+
},
|
|
850
|
+
"timelineDependency": {
|
|
851
|
+
"description": "A Gantt dependency: the successor `to` waits on the predecessor `from`. Endpoints name a task or an item by id; a task stands for the span of its items. Without a type it is finish-to-start.",
|
|
852
|
+
"type": "object",
|
|
853
|
+
"additionalProperties": false,
|
|
854
|
+
"required": [
|
|
855
|
+
"from",
|
|
856
|
+
"to"
|
|
857
|
+
],
|
|
858
|
+
"properties": {
|
|
859
|
+
"from": {
|
|
860
|
+
"$ref": "#/$defs/localId"
|
|
861
|
+
},
|
|
862
|
+
"to": {
|
|
863
|
+
"$ref": "#/$defs/localId"
|
|
864
|
+
},
|
|
865
|
+
"type": {
|
|
866
|
+
"enum": [
|
|
867
|
+
"finish-to-start",
|
|
868
|
+
"start-to-start",
|
|
869
|
+
"finish-to-finish",
|
|
870
|
+
"start-to-finish"
|
|
871
|
+
]
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
},
|
|
875
|
+
"timelineItem": {
|
|
876
|
+
"description": "An activity or a milestone, selected by its type so a refusal speaks about the one it is.",
|
|
877
|
+
"type": "object",
|
|
878
|
+
"required": [
|
|
879
|
+
"type"
|
|
880
|
+
],
|
|
881
|
+
"properties": {
|
|
882
|
+
"type": {
|
|
883
|
+
"enum": [
|
|
884
|
+
"activity",
|
|
885
|
+
"milestone"
|
|
886
|
+
]
|
|
887
|
+
}
|
|
888
|
+
},
|
|
889
|
+
"allOf": [
|
|
890
|
+
{
|
|
891
|
+
"if": {
|
|
892
|
+
"properties": {
|
|
893
|
+
"type": {
|
|
894
|
+
"const": "activity"
|
|
895
|
+
}
|
|
896
|
+
}
|
|
897
|
+
},
|
|
898
|
+
"then": {
|
|
899
|
+
"$ref": "#/$defs/timelineActivity"
|
|
900
|
+
}
|
|
901
|
+
},
|
|
902
|
+
{
|
|
903
|
+
"if": {
|
|
904
|
+
"properties": {
|
|
905
|
+
"type": {
|
|
906
|
+
"const": "milestone"
|
|
907
|
+
}
|
|
908
|
+
}
|
|
909
|
+
},
|
|
910
|
+
"then": {
|
|
911
|
+
"$ref": "#/$defs/timelineMilestone"
|
|
912
|
+
}
|
|
913
|
+
}
|
|
914
|
+
]
|
|
915
|
+
},
|
|
916
|
+
"timelineRow": {
|
|
917
|
+
"description": "A task or a separator, selected by its type so a refusal speaks about the one it is.",
|
|
918
|
+
"type": "object",
|
|
919
|
+
"required": [
|
|
920
|
+
"type"
|
|
921
|
+
],
|
|
922
|
+
"properties": {
|
|
923
|
+
"type": {
|
|
924
|
+
"enum": [
|
|
925
|
+
"task",
|
|
926
|
+
"separator"
|
|
927
|
+
]
|
|
928
|
+
}
|
|
929
|
+
},
|
|
930
|
+
"allOf": [
|
|
931
|
+
{
|
|
932
|
+
"if": {
|
|
933
|
+
"properties": {
|
|
934
|
+
"type": {
|
|
935
|
+
"const": "task"
|
|
936
|
+
}
|
|
937
|
+
}
|
|
938
|
+
},
|
|
939
|
+
"then": {
|
|
940
|
+
"$ref": "#/$defs/timelineTask"
|
|
941
|
+
}
|
|
942
|
+
},
|
|
943
|
+
{
|
|
944
|
+
"if": {
|
|
945
|
+
"properties": {
|
|
946
|
+
"type": {
|
|
947
|
+
"const": "separator"
|
|
948
|
+
}
|
|
949
|
+
}
|
|
950
|
+
},
|
|
951
|
+
"then": {
|
|
952
|
+
"$ref": "#/$defs/timelineSeparator"
|
|
953
|
+
}
|
|
954
|
+
}
|
|
955
|
+
]
|
|
956
|
+
},
|
|
957
|
+
"timelineChangeRole": {
|
|
958
|
+
"description": "In a compared timeline: new since the previous plan, or dropped from it and kept so it can be shown.",
|
|
959
|
+
"enum": [
|
|
960
|
+
"added",
|
|
961
|
+
"removed"
|
|
962
|
+
]
|
|
963
|
+
},
|
|
964
|
+
"timelinePeriod": {
|
|
965
|
+
"description": "A span of the calendar the plan runs in \u2014 a closure, holidays. Drawn as a band across every row; constrains nothing.",
|
|
966
|
+
"type": "object",
|
|
967
|
+
"additionalProperties": false,
|
|
968
|
+
"required": [
|
|
969
|
+
"start",
|
|
970
|
+
"end"
|
|
971
|
+
],
|
|
972
|
+
"properties": {
|
|
973
|
+
"start": {
|
|
974
|
+
"$ref": "#/$defs/calendarDate"
|
|
975
|
+
},
|
|
976
|
+
"end": {
|
|
977
|
+
"$ref": "#/$defs/calendarDate"
|
|
978
|
+
},
|
|
979
|
+
"label": {
|
|
980
|
+
"$ref": "#/$defs/label"
|
|
981
|
+
},
|
|
982
|
+
"kind": {
|
|
983
|
+
"$ref": "#/$defs/kind"
|
|
984
|
+
}
|
|
985
|
+
}
|
|
986
|
+
},
|
|
987
|
+
"timelineReference": {
|
|
988
|
+
"description": "A named day the plan is judged against \u2014 a contractual date, a delivery. Drawn as a line across every row.",
|
|
989
|
+
"type": "object",
|
|
990
|
+
"additionalProperties": false,
|
|
991
|
+
"required": [
|
|
992
|
+
"date",
|
|
993
|
+
"label"
|
|
994
|
+
],
|
|
995
|
+
"properties": {
|
|
996
|
+
"date": {
|
|
997
|
+
"$ref": "#/$defs/calendarDate"
|
|
998
|
+
},
|
|
999
|
+
"label": {
|
|
1000
|
+
"type": "string",
|
|
1001
|
+
"minLength": 1,
|
|
1002
|
+
"maxLength": 500
|
|
1003
|
+
},
|
|
1004
|
+
"kind": {
|
|
1005
|
+
"$ref": "#/$defs/kind"
|
|
1006
|
+
}
|
|
1007
|
+
}
|
|
1008
|
+
}
|
|
1009
|
+
},
|
|
1010
|
+
"properties": {
|
|
1011
|
+
"schema": {
|
|
1012
|
+
"const": "urn:structured-exchange:3"
|
|
1013
|
+
},
|
|
1014
|
+
"kind": {
|
|
1015
|
+
"enum": [
|
|
1016
|
+
"graph",
|
|
1017
|
+
"sequence",
|
|
1018
|
+
"table",
|
|
1019
|
+
"timeline"
|
|
1020
|
+
]
|
|
1021
|
+
},
|
|
1022
|
+
"profile": {
|
|
1023
|
+
"description": "The vocabulary that owns the kinds and attribute names in this document. Opaque: never fetched, executed, or required to be known \u2014 an unknown profile is presented generically, not refused.",
|
|
1024
|
+
"type": "string",
|
|
1025
|
+
"minLength": 1,
|
|
1026
|
+
"maxLength": 200
|
|
1027
|
+
},
|
|
1028
|
+
"target": {
|
|
1029
|
+
"description": "The artifact this document proposes a change to, and the revision it was prepared against. Its presence is what makes the document a proposal.",
|
|
1030
|
+
"type": "object",
|
|
1031
|
+
"additionalProperties": false,
|
|
1032
|
+
"required": [
|
|
1033
|
+
"ref"
|
|
1034
|
+
],
|
|
1035
|
+
"properties": {
|
|
1036
|
+
"ref": {
|
|
1037
|
+
"$ref": "#/$defs/ref"
|
|
1038
|
+
},
|
|
1039
|
+
"revision": {
|
|
1040
|
+
"$ref": "#/$defs/revision"
|
|
1041
|
+
}
|
|
1042
|
+
}
|
|
1043
|
+
},
|
|
1044
|
+
"removals": {
|
|
1045
|
+
"type": "array",
|
|
1046
|
+
"maxItems": 500,
|
|
1047
|
+
"items": {
|
|
1048
|
+
"$ref": "#/$defs/removal"
|
|
1049
|
+
}
|
|
1050
|
+
},
|
|
1051
|
+
"artifacts": {
|
|
1052
|
+
"type": "array",
|
|
1053
|
+
"maxItems": 50,
|
|
1054
|
+
"items": {
|
|
1055
|
+
"$ref": "#/$defs/artifact"
|
|
1056
|
+
}
|
|
1057
|
+
},
|
|
1058
|
+
"viewpoints": {
|
|
1059
|
+
"description": "Named readings of this document. Only a graph may declare them. Presentation only: selecting one never alters the document.",
|
|
1060
|
+
"type": "array",
|
|
1061
|
+
"maxItems": 20,
|
|
1062
|
+
"items": {
|
|
1063
|
+
"$ref": "#/$defs/viewpoint"
|
|
1064
|
+
}
|
|
1065
|
+
},
|
|
1066
|
+
"data": {
|
|
1067
|
+
"oneOf": [
|
|
1068
|
+
{
|
|
1069
|
+
"type": "object",
|
|
1070
|
+
"additionalProperties": false,
|
|
1071
|
+
"required": [
|
|
1072
|
+
"nodes",
|
|
1073
|
+
"edges"
|
|
1074
|
+
],
|
|
1075
|
+
"properties": {
|
|
1076
|
+
"nodes": {
|
|
1077
|
+
"type": "array",
|
|
1078
|
+
"minItems": 1,
|
|
1079
|
+
"maxItems": 500,
|
|
1080
|
+
"items": {
|
|
1081
|
+
"$ref": "#/$defs/element"
|
|
1082
|
+
}
|
|
1083
|
+
},
|
|
1084
|
+
"edges": {
|
|
1085
|
+
"type": "array",
|
|
1086
|
+
"maxItems": 2000,
|
|
1087
|
+
"items": {
|
|
1088
|
+
"$ref": "#/$defs/edge"
|
|
1089
|
+
}
|
|
1090
|
+
},
|
|
1091
|
+
"containers": {
|
|
1092
|
+
"type": "array",
|
|
1093
|
+
"maxItems": 50,
|
|
1094
|
+
"items": {
|
|
1095
|
+
"$ref": "#/$defs/container"
|
|
1096
|
+
}
|
|
1097
|
+
}
|
|
1098
|
+
}
|
|
1099
|
+
},
|
|
1100
|
+
{
|
|
1101
|
+
"type": "object",
|
|
1102
|
+
"additionalProperties": false,
|
|
1103
|
+
"required": [
|
|
1104
|
+
"participants",
|
|
1105
|
+
"messages"
|
|
1106
|
+
],
|
|
1107
|
+
"properties": {
|
|
1108
|
+
"participants": {
|
|
1109
|
+
"type": "array",
|
|
1110
|
+
"minItems": 1,
|
|
1111
|
+
"maxItems": 100,
|
|
1112
|
+
"items": {
|
|
1113
|
+
"$ref": "#/$defs/element"
|
|
1114
|
+
}
|
|
1115
|
+
},
|
|
1116
|
+
"messages": {
|
|
1117
|
+
"type": "array",
|
|
1118
|
+
"maxItems": 1000,
|
|
1119
|
+
"items": {
|
|
1120
|
+
"$ref": "#/$defs/message"
|
|
1121
|
+
}
|
|
1122
|
+
},
|
|
1123
|
+
"containers": {
|
|
1124
|
+
"type": "array",
|
|
1125
|
+
"maxItems": 50,
|
|
1126
|
+
"items": {
|
|
1127
|
+
"$ref": "#/$defs/container"
|
|
1128
|
+
}
|
|
1129
|
+
}
|
|
1130
|
+
}
|
|
1131
|
+
},
|
|
1132
|
+
{
|
|
1133
|
+
"type": "object",
|
|
1134
|
+
"additionalProperties": false,
|
|
1135
|
+
"required": [
|
|
1136
|
+
"columns",
|
|
1137
|
+
"rows"
|
|
1138
|
+
],
|
|
1139
|
+
"properties": {
|
|
1140
|
+
"columns": {
|
|
1141
|
+
"type": "array",
|
|
1142
|
+
"minItems": 1,
|
|
1143
|
+
"maxItems": 50,
|
|
1144
|
+
"items": {
|
|
1145
|
+
"type": "string",
|
|
1146
|
+
"minLength": 1,
|
|
1147
|
+
"maxLength": 200
|
|
1148
|
+
}
|
|
1149
|
+
},
|
|
1150
|
+
"rows": {
|
|
1151
|
+
"type": "array",
|
|
1152
|
+
"maxItems": 5000,
|
|
1153
|
+
"items": {
|
|
1154
|
+
"oneOf": [
|
|
1155
|
+
{
|
|
1156
|
+
"$ref": "#/$defs/cells"
|
|
1157
|
+
},
|
|
1158
|
+
{
|
|
1159
|
+
"$ref": "#/$defs/dataRow"
|
|
1160
|
+
},
|
|
1161
|
+
{
|
|
1162
|
+
"$ref": "#/$defs/structuralRow"
|
|
1163
|
+
}
|
|
1164
|
+
]
|
|
1165
|
+
}
|
|
1166
|
+
},
|
|
1167
|
+
"relations": {
|
|
1168
|
+
"type": "array",
|
|
1169
|
+
"maxItems": 2000,
|
|
1170
|
+
"items": {
|
|
1171
|
+
"$ref": "#/$defs/relation"
|
|
1172
|
+
}
|
|
1173
|
+
}
|
|
1174
|
+
}
|
|
1175
|
+
},
|
|
1176
|
+
{
|
|
1177
|
+
"description": "A planning timeline: a calendar range and an ordered list of rows. Never coordinates, colours or a current date \u2014 the renderer derives those.",
|
|
1178
|
+
"type": "object",
|
|
1179
|
+
"additionalProperties": false,
|
|
1180
|
+
"required": [
|
|
1181
|
+
"time",
|
|
1182
|
+
"rows"
|
|
1183
|
+
],
|
|
1184
|
+
"properties": {
|
|
1185
|
+
"title": {
|
|
1186
|
+
"$ref": "#/$defs/label"
|
|
1187
|
+
},
|
|
1188
|
+
"time": {
|
|
1189
|
+
"type": "object",
|
|
1190
|
+
"additionalProperties": false,
|
|
1191
|
+
"required": [
|
|
1192
|
+
"start",
|
|
1193
|
+
"end",
|
|
1194
|
+
"scale"
|
|
1195
|
+
],
|
|
1196
|
+
"properties": {
|
|
1197
|
+
"start": {
|
|
1198
|
+
"$ref": "#/$defs/calendarDate"
|
|
1199
|
+
},
|
|
1200
|
+
"end": {
|
|
1201
|
+
"$ref": "#/$defs/calendarDate"
|
|
1202
|
+
},
|
|
1203
|
+
"scale": {
|
|
1204
|
+
"enum": [
|
|
1205
|
+
"week",
|
|
1206
|
+
"month",
|
|
1207
|
+
"quarter"
|
|
1208
|
+
]
|
|
1209
|
+
}
|
|
1210
|
+
}
|
|
1211
|
+
},
|
|
1212
|
+
"rows": {
|
|
1213
|
+
"type": "array",
|
|
1214
|
+
"maxItems": 500,
|
|
1215
|
+
"items": {
|
|
1216
|
+
"$ref": "#/$defs/timelineRow"
|
|
1217
|
+
}
|
|
1218
|
+
},
|
|
1219
|
+
"dependencies": {
|
|
1220
|
+
"type": "array",
|
|
1221
|
+
"maxItems": 2000,
|
|
1222
|
+
"items": {
|
|
1223
|
+
"$ref": "#/$defs/timelineDependency"
|
|
1224
|
+
}
|
|
1225
|
+
},
|
|
1226
|
+
"comparedTo": {
|
|
1227
|
+
"description": "The plan this timeline is compared with. Its presence makes the timeline a comparison: items may then carry previous dates and roles.",
|
|
1228
|
+
"type": "object",
|
|
1229
|
+
"additionalProperties": false,
|
|
1230
|
+
"required": [
|
|
1231
|
+
"label"
|
|
1232
|
+
],
|
|
1233
|
+
"properties": {
|
|
1234
|
+
"label": {
|
|
1235
|
+
"type": "string",
|
|
1236
|
+
"minLength": 1,
|
|
1237
|
+
"maxLength": 500
|
|
1238
|
+
},
|
|
1239
|
+
"date": {
|
|
1240
|
+
"$ref": "#/$defs/calendarDate"
|
|
1241
|
+
}
|
|
1242
|
+
}
|
|
1243
|
+
},
|
|
1244
|
+
"periods": {
|
|
1245
|
+
"type": "array",
|
|
1246
|
+
"maxItems": 100,
|
|
1247
|
+
"items": {
|
|
1248
|
+
"$ref": "#/$defs/timelinePeriod"
|
|
1249
|
+
}
|
|
1250
|
+
},
|
|
1251
|
+
"references": {
|
|
1252
|
+
"type": "array",
|
|
1253
|
+
"maxItems": 50,
|
|
1254
|
+
"items": {
|
|
1255
|
+
"$ref": "#/$defs/timelineReference"
|
|
1256
|
+
}
|
|
1257
|
+
}
|
|
1258
|
+
}
|
|
1259
|
+
}
|
|
1260
|
+
]
|
|
1261
|
+
}
|
|
1262
|
+
}
|
|
1263
|
+
}
|