Skill Tracer
Skills › Archify › archify › sequence.schema.json

sequence.schema.json

234 lines · archify/schemas/sequence.schema.json at a406594

1{
2 "$schema": "https://json-schema.org/draft/2020-12/schema",
3 "$id": "https://github.com/tt-a1i/archify/schemas/sequence.schema.json",
4 "title": "Archify Sequence Diagram",
5 "type": "object",
6 "additionalProperties": false,
7 "required": [
8 "schema_version",
9 "diagram_type",
10 "meta",
11 "participants",
12 "messages"
13 ],
14 "properties": {
15 "schema_version": {
16 "const": 1
17 },
18 "diagram_type": {
19 "const": "sequence"
20 },
21 "meta": {
22 "type": "object",
23 "additionalProperties": false,
24 "required": [
25 "title",
26 "output"
27 ],
28 "properties": {
29 "title": {
30 "type": "string",
31 "minLength": 1
32 },
33 "locale": {
34 "$ref": "common.schema.json#/$defs/locale"
35 },
36 "translations": {
37 "$ref": "common.schema.json#/$defs/translations"
38 },
39 "subtitle": {
40 "type": "string"
41 },
42 "output": {
43 "$ref": "common.schema.json#/$defs/portableOutputPath"
44 },
45 "animation": {
46 "$ref": "common.schema.json#/$defs/animation"
47 },
48 "visual_preset": {
49 "$ref": "common.schema.json#/$defs/visualPreset"
50 },
51 "quality_profile": {
52 "$ref": "common.schema.json#/$defs/qualityProfile"
53 },
54 "column_fit": {
55 "description": "Horizontal participant layout. Defaults to spread whether or not meta.viewBox is supplied. Explicit fixed preserves the historical 86px boxes and 108px column gap. Use spread when a wide viewBox would leave unused horizontal space or meaningful participant labels do not fit the fixed boxes; spread derives box width and column distance from the viewBox with at least a 16px gap between participant cards without changing participant order or message semantics.",
56 "enum": ["fixed", "spread"]
57 },
58 "repository": {
59 "$ref": "common.schema.json#/$defs/repository"
60 },
61 "views": {
62 "$ref": "common.schema.json#/$defs/guidedViews"
63 },
64 "legend": {
65 "type": "object",
66 "additionalProperties": false,
67 "properties": {
68 "mode": { "$ref": "common.schema.json#/$defs/legendMode" },
69 "entries": {
70 "type": "object",
71 "additionalProperties": false,
72 "properties": {
73 "default": { "$ref": "common.schema.json#/$defs/legendEntry" },
74 "emphasis": { "$ref": "common.schema.json#/$defs/legendEntry" },
75 "security": { "$ref": "common.schema.json#/$defs/legendEntry" },
76 "dashed": { "$ref": "common.schema.json#/$defs/legendEntry" },
77 "return": { "$ref": "common.schema.json#/$defs/legendEntry" }
78 }
79 }
80 }
81 },
82 "viewBox": {
83 "type": "array",
84 "prefixItems": [
85 {
86 "type": "number",
87 "minimum": 480
88 },
89 {
90 "type": "number",
91 "minimum": 480
92 }
93 ],
94 "items": false,
95 "minItems": 2,
96 "maxItems": 2
97 }
98 }
99 },
100 "participants": {
101 "type": "array",
102 "minItems": 2,
103 "items": {
104 "type": "object",
105 "additionalProperties": false,
106 "required": [
107 "id",
108 "type",
109 "label"
110 ],
111 "properties": {
112 "id": {
113 "$ref": "common.schema.json#/$defs/id"
114 },
115 "type": {
116 "$ref": "common.schema.json#/$defs/componentType"
117 },
118 "label": {
119 "type": "string",
120 "minLength": 1
121 },
122 "sublabel": {
123 "type": "string"
124 },
125 "icon": { "$ref": "common.schema.json#/$defs/nodeIcon" },
126 "brand": {
127 "$ref": "common.schema.json#/$defs/brandMark"
128 },
129 "sources": {
130 "$ref": "common.schema.json#/$defs/sourceReferences"
131 }
132 }
133 }
134 },
135 "segments": {
136 "type": "array",
137 "items": {
138 "type": "object",
139 "additionalProperties": false,
140 "required": [
141 "from",
142 "to",
143 "label"
144 ],
145 "properties": {
146 "from": {
147 "type": "number"
148 },
149 "to": {
150 "type": "number"
151 },
152 "label": {
153 "type": "string",
154 "minLength": 1
155 }
156 }
157 }
158 },
159 "messages": {
160 "type": "array",
161 "minItems": 1,
162 "items": {
163 "type": "object",
164 "additionalProperties": false,
165 "required": [
166 "from",
167 "to",
168 "y",
169 "label"
170 ],
171 "properties": {
172 "id": {
173 "$ref": "common.schema.json#/$defs/id"
174 },
175 "from": {
176 "$ref": "common.schema.json#/$defs/id"
177 },
178 "to": {
179 "$ref": "common.schema.json#/$defs/id"
180 },
181 "y": {
182 "type": "number",
183 "minimum": 160
184 },
185 "label": {
186 "type": "string",
187 "minLength": 1
188 },
189 "variant": {
190 "enum": [
191 "default",
192 "emphasis",
193 "security",
194 "dashed",
195 "return"
196 ]
197 },
198 "note": {
199 "type": "string"
200 }
201 }
202 }
203 },
204 "activations": {
205 "type": "array",
206 "items": {
207 "type": "object",
208 "additionalProperties": false,
209 "required": [
210 "participant",
211 "from",
212 "to"
213 ],
214 "properties": {
215 "participant": {
216 "$ref": "common.schema.json#/$defs/id"
217 },
218 "from": {
219 "type": "number"
220 },
221 "to": {
222 "type": "number"
223 },
224 "type": {
225 "$ref": "common.schema.json#/$defs/componentType"
226 }
227 }
228 }
229 },
230 "cards": {
231 "$ref": "common.schema.json#/$defs/cards"
232 }
233 }