@documentation-robotics/cli 0.1.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.
Files changed (169) hide show
  1. package/PYTHON_CLI_PARITY.md +265 -0
  2. package/PYTHON_CLI_STRUCTURE_UPDATE.md +246 -0
  3. package/README.md +926 -0
  4. package/biome.json +42 -0
  5. package/bunfig.toml +3 -0
  6. package/dist/ai/claude-client.js +71 -0
  7. package/dist/ai/claude-client.js.map +7 -0
  8. package/dist/ai/context-provider.js +129 -0
  9. package/dist/ai/context-provider.js.map +7 -0
  10. package/dist/ai/tools.js +231 -0
  11. package/dist/ai/tools.js.map +7 -0
  12. package/dist/cli.js +224 -0
  13. package/dist/cli.js.map +7 -0
  14. package/dist/commands/add.js +51 -0
  15. package/dist/commands/add.js.map +7 -0
  16. package/dist/commands/changeset.js +174 -0
  17. package/dist/commands/changeset.js.map +7 -0
  18. package/dist/commands/chat.js +111 -0
  19. package/dist/commands/chat.js.map +7 -0
  20. package/dist/commands/conformance.js +132 -0
  21. package/dist/commands/conformance.js.map +7 -0
  22. package/dist/commands/delete.js +31 -0
  23. package/dist/commands/delete.js.map +7 -0
  24. package/dist/commands/element.js +28 -0
  25. package/dist/commands/element.js.map +7 -0
  26. package/dist/commands/export.js +65 -0
  27. package/dist/commands/export.js.map +7 -0
  28. package/dist/commands/info.js +40 -0
  29. package/dist/commands/info.js.map +7 -0
  30. package/dist/commands/init.js +45 -0
  31. package/dist/commands/init.js.map +7 -0
  32. package/dist/commands/list.js +32 -0
  33. package/dist/commands/list.js.map +7 -0
  34. package/dist/commands/migrate.js +36 -0
  35. package/dist/commands/migrate.js.map +7 -0
  36. package/dist/commands/project.js +74 -0
  37. package/dist/commands/project.js.map +7 -0
  38. package/dist/commands/relationship.js +118 -0
  39. package/dist/commands/relationship.js.map +7 -0
  40. package/dist/commands/search.js +48 -0
  41. package/dist/commands/search.js.map +7 -0
  42. package/dist/commands/show.js +38 -0
  43. package/dist/commands/show.js.map +7 -0
  44. package/dist/commands/trace.js +60 -0
  45. package/dist/commands/trace.js.map +7 -0
  46. package/dist/commands/update.js +37 -0
  47. package/dist/commands/update.js.map +7 -0
  48. package/dist/commands/upgrade.js +152 -0
  49. package/dist/commands/upgrade.js.map +7 -0
  50. package/dist/commands/validate.js +71 -0
  51. package/dist/commands/validate.js.map +7 -0
  52. package/dist/commands/version.js +20 -0
  53. package/dist/commands/version.js.map +7 -0
  54. package/dist/commands/visualize.js +51 -0
  55. package/dist/commands/visualize.js.map +7 -0
  56. package/dist/core/active-changeset.js +52 -0
  57. package/dist/core/active-changeset.js.map +7 -0
  58. package/dist/core/changeset.js +244 -0
  59. package/dist/core/changeset.js.map +7 -0
  60. package/dist/core/dependency-tracker.js +322 -0
  61. package/dist/core/dependency-tracker.js.map +7 -0
  62. package/dist/core/element.js +65 -0
  63. package/dist/core/element.js.map +7 -0
  64. package/dist/core/layer.js +75 -0
  65. package/dist/core/layer.js.map +7 -0
  66. package/dist/core/manifest.js +57 -0
  67. package/dist/core/manifest.js.map +7 -0
  68. package/dist/core/migration-registry.js +131 -0
  69. package/dist/core/migration-registry.js.map +7 -0
  70. package/dist/core/model.js +455 -0
  71. package/dist/core/model.js.map +7 -0
  72. package/dist/core/projection-engine.js +288 -0
  73. package/dist/core/projection-engine.js.map +7 -0
  74. package/dist/core/reference-registry.js +188 -0
  75. package/dist/core/reference-registry.js.map +7 -0
  76. package/dist/core/relationship-registry.js +114 -0
  77. package/dist/core/relationship-registry.js.map +7 -0
  78. package/dist/core/relationships.js +78 -0
  79. package/dist/core/relationships.js.map +7 -0
  80. package/dist/export/archimate-exporter.js +111 -0
  81. package/dist/export/archimate-exporter.js.map +7 -0
  82. package/dist/export/export-manager.js +63 -0
  83. package/dist/export/export-manager.js.map +7 -0
  84. package/dist/export/graphml-exporter.js +39 -0
  85. package/dist/export/graphml-exporter.js.map +7 -0
  86. package/dist/export/index.js +17 -0
  87. package/dist/export/index.js.map +7 -0
  88. package/dist/export/json-schema-exporter.js +60 -0
  89. package/dist/export/json-schema-exporter.js.map +7 -0
  90. package/dist/export/markdown-exporter.js +99 -0
  91. package/dist/export/markdown-exporter.js.map +7 -0
  92. package/dist/export/openapi-exporter.js +85 -0
  93. package/dist/export/openapi-exporter.js.map +7 -0
  94. package/dist/export/plantuml-exporter.js +60 -0
  95. package/dist/export/plantuml-exporter.js.map +7 -0
  96. package/dist/export/types.js +36 -0
  97. package/dist/export/types.js.map +7 -0
  98. package/dist/schemas/bundled/01-motivation-layer.schema.json +942 -0
  99. package/dist/schemas/bundled/02-business-layer.schema.json +1293 -0
  100. package/dist/schemas/bundled/03-security-layer.schema.json +2177 -0
  101. package/dist/schemas/bundled/04-application-layer.schema.json +1328 -0
  102. package/dist/schemas/bundled/05-technology-layer.schema.json +1465 -0
  103. package/dist/schemas/bundled/06-api-layer.schema.json +1743 -0
  104. package/dist/schemas/bundled/07-data-model-layer.schema.json +1253 -0
  105. package/dist/schemas/bundled/08-datastore-layer.schema.json +892 -0
  106. package/dist/schemas/bundled/09-ux-layer.schema.json +1506 -0
  107. package/dist/schemas/bundled/10-navigation-layer.schema.json +843 -0
  108. package/dist/schemas/bundled/11-apm-observability-layer.schema.json +1430 -0
  109. package/dist/schemas/bundled/12-testing-layer.schema.json +1091 -0
  110. package/dist/schemas/bundled/common/layer-extensions.schema.json +266 -0
  111. package/dist/schemas/bundled/common/predicates.schema.json +493 -0
  112. package/dist/schemas/bundled/common/relationships.schema.json +791 -0
  113. package/dist/schemas/bundled/common/source-references.schema.json +71 -0
  114. package/dist/schemas/bundled/link-registry.json +1839 -0
  115. package/dist/schemas/bundled/link-registry.schema.json +339 -0
  116. package/dist/schemas/bundled/relationship-catalog.json +1302 -0
  117. package/dist/schemas/bundled/relationship-type.schema.json +221 -0
  118. package/dist/server/server.js +1207 -0
  119. package/dist/server/server.js.map +7 -0
  120. package/dist/server/telemetry-middleware.js +24 -0
  121. package/dist/server/telemetry-middleware.js.map +7 -0
  122. package/dist/telemetry/console-interceptor.js +34 -0
  123. package/dist/telemetry/console-interceptor.js.map +7 -0
  124. package/dist/telemetry/index.js +54 -0
  125. package/dist/telemetry/index.js.map +7 -0
  126. package/dist/telemetry/resilient-exporter.js +41 -0
  127. package/dist/telemetry/resilient-exporter.js.map +7 -0
  128. package/dist/telemetry/resilient-log-exporter.js +41 -0
  129. package/dist/telemetry/resilient-log-exporter.js.map +7 -0
  130. package/dist/telemetry/test-instrumentation.js +32 -0
  131. package/dist/telemetry/test-instrumentation.js.map +7 -0
  132. package/dist/types/index.js +1 -0
  133. package/dist/types/index.js.map +7 -0
  134. package/dist/utils/element-utils.js +11 -0
  135. package/dist/utils/element-utils.js.map +7 -0
  136. package/dist/utils/errors.js +105 -0
  137. package/dist/utils/errors.js.map +7 -0
  138. package/dist/utils/file-io.js +69 -0
  139. package/dist/utils/file-io.js.map +7 -0
  140. package/dist/utils/globals.js +28 -0
  141. package/dist/utils/globals.js.map +7 -0
  142. package/dist/utils/model-path.js +22 -0
  143. package/dist/utils/model-path.js.map +7 -0
  144. package/dist/utils/project-paths.js +45 -0
  145. package/dist/utils/project-paths.js.map +7 -0
  146. package/dist/utils/spec-installer.js +85 -0
  147. package/dist/utils/spec-installer.js.map +7 -0
  148. package/dist/utils/spec-version.js +33 -0
  149. package/dist/utils/spec-version.js.map +7 -0
  150. package/dist/validators/index.js +15 -0
  151. package/dist/validators/index.js.map +7 -0
  152. package/dist/validators/naming-validator.js +82 -0
  153. package/dist/validators/naming-validator.js.map +7 -0
  154. package/dist/validators/reference-validator.js +106 -0
  155. package/dist/validators/reference-validator.js.map +7 -0
  156. package/dist/validators/schema-validator.js +148 -0
  157. package/dist/validators/schema-validator.js.map +7 -0
  158. package/dist/validators/semantic-validator.js +80 -0
  159. package/dist/validators/semantic-validator.js.map +7 -0
  160. package/dist/validators/types.js +48 -0
  161. package/dist/validators/types.js.map +7 -0
  162. package/dist/validators/validator.js +67 -0
  163. package/dist/validators/validator.js.map +7 -0
  164. package/docs/TEST-INSTRUMENTATION.md +405 -0
  165. package/docs/telemetry.md +427 -0
  166. package/package.json +70 -0
  167. package/test-debug.js +33 -0
  168. package/test-special.mjs +46 -0
  169. package/test_runner.ts +7 -0
@@ -0,0 +1,1506 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://example.com/schemas/09-ux-layer.schema.json",
4
+ "title": "UX Layer Layer Schema",
5
+ "description": "Defines user experience specifications including state management, component composition, and multi-channel interaction patterns for visual, voice, and chat interfaces.",
6
+ "layerMetadata": {
7
+ "layerId": "09-ux-layer",
8
+ "layerName": "UX Layer",
9
+ "intraLayerRelationshipSupport": true,
10
+ "crossLayerRelationshipSupport": true,
11
+ "relationshipCatalogVersion": "2.1.0"
12
+ },
13
+ "intraLayerRelationships": {
14
+ "$comment": "Relationships between entities within this layer. References relationship-catalog.json by ID.",
15
+ "allowed": [
16
+ {
17
+ "relationshipTypeId": "specialization",
18
+ "sourceTypes": ["PremiumAccount", "Schema"],
19
+ "targetTypes": ["Account", "Schema"],
20
+ "examples": [
21
+ {
22
+ "source": "PremiumAccount",
23
+ "target": "Account",
24
+ "description": "Premium account specializes the general account concept"
25
+ },
26
+ {
27
+ "source": "Schema",
28
+ "target": "Schema",
29
+ "description": "API schema specializes another via allOf/oneOf/anyOf composition",
30
+ "layer": "06-api"
31
+ }
32
+ ]
33
+ },
34
+ {
35
+ "relationshipTypeId": "flow",
36
+ "sourceTypes": ["BusinessProcess", "CoverageRequirement", "TestCoverageTarget"],
37
+ "targetTypes": ["BusinessProcess", "CoverageRequirement", "TestCaseSketch"],
38
+ "examples": [
39
+ {
40
+ "source": "BusinessProcess",
41
+ "target": "BusinessProcess",
42
+ "description": "One business process flows to the next in sequence"
43
+ },
44
+ {
45
+ "source": "TestCoverageTarget",
46
+ "target": "CoverageRequirement",
47
+ "description": "Target flows to requirements that specify its coverage",
48
+ "layer": "12-testing"
49
+ },
50
+ {
51
+ "source": "CoverageRequirement",
52
+ "target": "TestCaseSketch",
53
+ "description": "Requirement flows to sketches that implement it",
54
+ "layer": "12-testing"
55
+ }
56
+ ]
57
+ },
58
+ {
59
+ "relationshipTypeId": "uses",
60
+ "sourceTypes": ["ApplicationComponent"],
61
+ "targetTypes": ["TechnologyService"],
62
+ "examples": [
63
+ {
64
+ "source": "ApplicationComponent",
65
+ "target": "TechnologyService",
66
+ "description": "Application component uses technology service"
67
+ }
68
+ ]
69
+ },
70
+ {
71
+ "relationshipTypeId": "reference",
72
+ "sourceTypes": ["CoverageRequirement", "DataObject", "TestCaseSketch"],
73
+ "targetTypes": ["CoverageRequirement", "Schema", "TestCoverageTarget"],
74
+ "examples": [
75
+ {
76
+ "source": "DataObject",
77
+ "target": "Schema",
78
+ "description": "Data object references JSON schema"
79
+ },
80
+ {
81
+ "source": "TestCaseSketch",
82
+ "target": "CoverageRequirement",
83
+ "description": "Test case sketch references coverage requirement it satisfies",
84
+ "layer": "12-testing"
85
+ },
86
+ {
87
+ "source": "CoverageRequirement",
88
+ "target": "TestCoverageTarget",
89
+ "description": "Coverage requirement references target it covers",
90
+ "layer": "12-testing"
91
+ }
92
+ ]
93
+ },
94
+ {
95
+ "relationshipTypeId": "depends-on",
96
+ "sourceTypes": ["ApplicationService", "TestCaseSketch"],
97
+ "targetTypes": ["ContextVariation", "DataObject", "OutcomeCategory"],
98
+ "examples": [
99
+ {
100
+ "source": "ApplicationService",
101
+ "target": "DataObject",
102
+ "description": "Application service depends on data object"
103
+ },
104
+ {
105
+ "source": "TestCaseSketch",
106
+ "target": "ContextVariation",
107
+ "description": "Test sketch depends on context for execution environment",
108
+ "layer": "12-testing"
109
+ },
110
+ {
111
+ "source": "TestCaseSketch",
112
+ "target": "OutcomeCategory",
113
+ "description": "Test sketch depends on expected outcome category",
114
+ "layer": "12-testing"
115
+ }
116
+ ]
117
+ },
118
+ {
119
+ "relationshipTypeId": "renders",
120
+ "sourceTypes": ["UIComponent"],
121
+ "targetTypes": ["UIView"],
122
+ "examples": [
123
+ {
124
+ "source": "UIComponent",
125
+ "target": "UIView",
126
+ "description": "Layout component renders view content"
127
+ }
128
+ ]
129
+ },
130
+ {
131
+ "relationshipTypeId": "binds-to",
132
+ "sourceTypes": ["UIComponent"],
133
+ "targetTypes": ["DataObject"],
134
+ "examples": [
135
+ {
136
+ "source": "UIComponent",
137
+ "target": "DataObject",
138
+ "description": "Form component binds to user data object"
139
+ }
140
+ ]
141
+ },
142
+ {
143
+ "relationshipTypeId": "navigates-to",
144
+ "sourceTypes": ["UIView"],
145
+ "targetTypes": ["UIView"],
146
+ "examples": [
147
+ {
148
+ "source": "UIView",
149
+ "target": "UIView",
150
+ "description": "Login view navigates to dashboard view"
151
+ }
152
+ ]
153
+ }
154
+ ]
155
+ },
156
+ "crossLayerRelationships": {
157
+ "$comment": "Relationships to/from entities in other layers",
158
+ "outgoing": [
159
+ {
160
+ "id": "motivation-governed-by-principles",
161
+ "predicate": "governed-by-principles",
162
+ "inversePredicate": "governs",
163
+ "targetLayer": "01-motivation",
164
+ "targetTypes": ["GovernedByPrinciple"],
165
+ "sourceTypes": ["BusinessService"],
166
+ "fieldPath": "motivation.governed-by-principles",
167
+ "cardinality": "array",
168
+ "format": "reference",
169
+ "strength": "high",
170
+ "required": false,
171
+ "description": "BusinessService governed by Principles",
172
+ "examples": [
173
+ {
174
+ "elementType": "BusinessService",
175
+ "elementId": "order-service",
176
+ "elementName": "Order Processing Service",
177
+ "fieldPath": "motivation.governed-by-principles",
178
+ "value": "principle-customer-first,principle-automation",
179
+ "layer": "02-business"
180
+ },
181
+ {
182
+ "elementType": "ApplicationService",
183
+ "elementId": "product-service",
184
+ "elementName": "product-service",
185
+ "fieldPath": "motivation.governed-by-principles",
186
+ "value": "principle-api-first,principle-cloud-native",
187
+ "layer": "04-application"
188
+ }
189
+ ]
190
+ },
191
+ {
192
+ "id": "motivation-supports-goals",
193
+ "predicate": "supports-goals",
194
+ "inversePredicate": "supported-by",
195
+ "targetLayer": "01-motivation",
196
+ "targetTypes": ["SupportsGoal"],
197
+ "sourceTypes": ["BusinessService"],
198
+ "fieldPath": "motivation.supports-goals",
199
+ "cardinality": "array",
200
+ "format": "reference",
201
+ "strength": "high",
202
+ "required": false,
203
+ "description": "BusinessService supports Goals",
204
+ "examples": [
205
+ {
206
+ "elementType": "BusinessService",
207
+ "elementId": "order-service",
208
+ "elementName": "Order Processing Service",
209
+ "fieldPath": "motivation.supports-goals",
210
+ "value": "goal-customer-satisfaction,goal-revenue-growth",
211
+ "layer": "02-business"
212
+ },
213
+ {
214
+ "elementType": "ApplicationService",
215
+ "elementId": "product-service",
216
+ "elementName": "product-service",
217
+ "fieldPath": "motivation.supports-goals",
218
+ "value": "goal-product-catalog-accuracy,goal-customer-satisfaction",
219
+ "layer": "04-application"
220
+ }
221
+ ]
222
+ },
223
+ {
224
+ "id": "security-classification",
225
+ "predicate": "classification",
226
+ "inversePredicate": "referenced-by",
227
+ "targetLayer": "03-security",
228
+ "targetTypes": ["Classification"],
229
+ "sourceTypes": ["Artifact"],
230
+ "fieldPath": "security.classification",
231
+ "cardinality": "single",
232
+ "format": "string",
233
+ "strength": "low",
234
+ "required": false,
235
+ "description": "Links to Classification in target layer",
236
+ "examples": [
237
+ {
238
+ "elementType": "Artifact",
239
+ "elementId": "product-db",
240
+ "elementName": "product-db",
241
+ "fieldPath": "security.classification",
242
+ "value": "internal",
243
+ "layer": "05-technology"
244
+ },
245
+ {
246
+ "elementType": "Artifact",
247
+ "elementId": "customer-db",
248
+ "elementName": "customer-db",
249
+ "fieldPath": "security.classification",
250
+ "value": "restricted",
251
+ "layer": "05-technology"
252
+ }
253
+ ]
254
+ }
255
+ ],
256
+ "incoming": []
257
+ },
258
+ "type": "object",
259
+ "properties": {
260
+ "ux-libraries": {
261
+ "type": "array",
262
+ "description": "Collection of UXLibrary entities",
263
+ "items": {
264
+ "$ref": "#/definitions/UXLibrary"
265
+ }
266
+ },
267
+ "library-components": {
268
+ "type": "array",
269
+ "description": "Collection of LibraryComponent entities",
270
+ "items": {
271
+ "$ref": "#/definitions/LibraryComponent"
272
+ }
273
+ },
274
+ "library-sub-views": {
275
+ "type": "array",
276
+ "description": "Collection of LibrarySubView entities",
277
+ "items": {
278
+ "$ref": "#/definitions/LibrarySubView"
279
+ }
280
+ },
281
+ "state-patterns": {
282
+ "type": "array",
283
+ "description": "Collection of StatePattern entities",
284
+ "items": {
285
+ "$ref": "#/definitions/StatePattern"
286
+ }
287
+ },
288
+ "action-patterns": {
289
+ "type": "array",
290
+ "description": "Collection of ActionPattern entities",
291
+ "items": {
292
+ "$ref": "#/definitions/ActionPattern"
293
+ }
294
+ },
295
+ "ux-applications": {
296
+ "type": "array",
297
+ "description": "Collection of UXApplication entities",
298
+ "items": {
299
+ "$ref": "#/definitions/UXApplication"
300
+ }
301
+ },
302
+ "ux-specs": {
303
+ "type": "array",
304
+ "description": "Collection of UXSpec entities",
305
+ "items": {
306
+ "$ref": "#/definitions/UXSpec"
307
+ }
308
+ },
309
+ "experience-states": {
310
+ "type": "array",
311
+ "description": "Collection of ExperienceState entities",
312
+ "items": {
313
+ "$ref": "#/definitions/ExperienceState"
314
+ }
315
+ },
316
+ "state-actions": {
317
+ "type": "array",
318
+ "description": "Collection of StateAction entities",
319
+ "items": {
320
+ "$ref": "#/definitions/StateAction"
321
+ }
322
+ },
323
+ "state-transitions": {
324
+ "type": "array",
325
+ "description": "Collection of StateTransition entities",
326
+ "items": {
327
+ "$ref": "#/definitions/StateTransition"
328
+ }
329
+ },
330
+ "conditions": {
331
+ "type": "array",
332
+ "description": "Collection of Condition entities",
333
+ "items": {
334
+ "$ref": "#/definitions/Condition"
335
+ }
336
+ },
337
+ "views": {
338
+ "type": "array",
339
+ "description": "Collection of View entities",
340
+ "items": {
341
+ "$ref": "#/definitions/View"
342
+ }
343
+ },
344
+ "sub-views": {
345
+ "type": "array",
346
+ "description": "Collection of SubView entities",
347
+ "items": {
348
+ "$ref": "#/definitions/SubView"
349
+ }
350
+ },
351
+ "component-instances": {
352
+ "type": "array",
353
+ "description": "Collection of ComponentInstance entities",
354
+ "items": {
355
+ "$ref": "#/definitions/ComponentInstance"
356
+ }
357
+ },
358
+ "action-components": {
359
+ "type": "array",
360
+ "description": "Collection of ActionComponent entities",
361
+ "items": {
362
+ "$ref": "#/definitions/ActionComponent"
363
+ }
364
+ },
365
+ "validation-rules": {
366
+ "type": "array",
367
+ "description": "Collection of ValidationRule entities",
368
+ "items": {
369
+ "$ref": "#/definitions/ValidationRule"
370
+ }
371
+ },
372
+ "layout-configs": {
373
+ "type": "array",
374
+ "description": "Collection of LayoutConfig entities",
375
+ "items": {
376
+ "$ref": "#/definitions/LayoutConfig"
377
+ }
378
+ },
379
+ "error-configs": {
380
+ "type": "array",
381
+ "description": "Collection of ErrorConfig entities",
382
+ "items": {
383
+ "$ref": "#/definitions/ErrorConfig"
384
+ }
385
+ },
386
+ "api-configs": {
387
+ "type": "array",
388
+ "description": "Collection of ApiConfig entities",
389
+ "items": {
390
+ "$ref": "#/definitions/ApiConfig"
391
+ }
392
+ },
393
+ "data-configs": {
394
+ "type": "array",
395
+ "description": "Collection of DataConfig entities",
396
+ "items": {
397
+ "$ref": "#/definitions/DataConfig"
398
+ }
399
+ },
400
+ "performance-targetses": {
401
+ "type": "array",
402
+ "description": "Collection of PerformanceTargets entities",
403
+ "items": {
404
+ "$ref": "#/definitions/PerformanceTargets"
405
+ }
406
+ },
407
+ "component-references": {
408
+ "type": "array",
409
+ "description": "Collection of ComponentReference entities",
410
+ "items": {
411
+ "$ref": "#/definitions/ComponentReference"
412
+ }
413
+ },
414
+ "transition-templates": {
415
+ "type": "array",
416
+ "description": "Collection of TransitionTemplate entities",
417
+ "items": {
418
+ "$ref": "#/definitions/TransitionTemplate"
419
+ }
420
+ },
421
+ "state-action-templates": {
422
+ "type": "array",
423
+ "description": "Collection of StateActionTemplate entities",
424
+ "items": {
425
+ "$ref": "#/definitions/StateActionTemplate"
426
+ }
427
+ },
428
+ "table-columns": {
429
+ "type": "array",
430
+ "description": "Collection of TableColumn entities",
431
+ "items": {
432
+ "$ref": "#/definitions/TableColumn"
433
+ }
434
+ },
435
+ "chart-serieses": {
436
+ "type": "array",
437
+ "description": "Collection of ChartSeries entities",
438
+ "items": {
439
+ "$ref": "#/definitions/ChartSeries"
440
+ }
441
+ }
442
+ },
443
+ "definitions": {
444
+ "ComponentType": {
445
+ "type": "string",
446
+ "enum": [
447
+ "form-field",
448
+ "table",
449
+ "chart",
450
+ "card",
451
+ "list",
452
+ "text",
453
+ "image",
454
+ "video",
455
+ "audio",
456
+ "map",
457
+ "calendar",
458
+ "timeline",
459
+ "tree",
460
+ "custom"
461
+ ]
462
+ },
463
+ "LayoutStyle": {
464
+ "type": "string",
465
+ "enum": ["grid", "flex", "stack", "flow", "custom"]
466
+ },
467
+ "ActionType": {
468
+ "type": "string",
469
+ "enum": [
470
+ "fetchData",
471
+ "saveData",
472
+ "deleteData",
473
+ "validateForm",
474
+ "clearForm",
475
+ "showNotification",
476
+ "navigateTo",
477
+ "callAPI",
478
+ "updateState",
479
+ "computeValue"
480
+ ]
481
+ },
482
+ "ChannelType": {
483
+ "type": "string",
484
+ "enum": ["visual", "voice", "chat", "sms", "multimodal"]
485
+ },
486
+ "DataSource": {
487
+ "type": "string",
488
+ "enum": [
489
+ "api-response",
490
+ "form-data",
491
+ "route-params",
492
+ "query-params",
493
+ "local-storage",
494
+ "constant",
495
+ "computed"
496
+ ]
497
+ },
498
+ "TriggerType": {
499
+ "type": "string",
500
+ "enum": ["success", "failure", "submit", "cancel", "click", "timeout", "dataReady", "custom"]
501
+ },
502
+ "ViewType": {
503
+ "type": "string",
504
+ "enum": ["form", "list", "detail", "dashboard", "wizard", "split", "conversational", "custom"]
505
+ },
506
+ "ActionComponentType": {
507
+ "type": "string",
508
+ "enum": [
509
+ "button",
510
+ "menu-item",
511
+ "link",
512
+ "voice-command",
513
+ "chat-button",
514
+ "sms-keyword",
515
+ "custom"
516
+ ]
517
+ },
518
+ "ButtonStyle": {
519
+ "type": "string",
520
+ "enum": ["primary", "secondary", "danger", "success", "warning", "ghost", "icon"]
521
+ },
522
+ "ValidationType": {
523
+ "type": "string",
524
+ "enum": [
525
+ "required",
526
+ "minLength",
527
+ "maxLength",
528
+ "pattern",
529
+ "email",
530
+ "url",
531
+ "min",
532
+ "max",
533
+ "custom"
534
+ ]
535
+ },
536
+ "LayoutType": {
537
+ "type": "string",
538
+ "enum": ["grid", "flex", "stack", "flow", "fixed", "absolute", "custom"]
539
+ },
540
+ "JustifyContent": {
541
+ "type": "string",
542
+ "enum": ["start", "end", "center", "space-between", "space-around", "space-evenly"]
543
+ },
544
+ "AlignItems": {
545
+ "type": "string",
546
+ "enum": ["start", "end", "center", "stretch", "baseline"]
547
+ },
548
+ "JustifyItems": {
549
+ "type": "string",
550
+ "enum": ["start", "end", "center", "stretch"]
551
+ },
552
+ "AlignContent": {
553
+ "type": "string",
554
+ "enum": ["start", "end", "center", "stretch", "space-between", "space-around"]
555
+ },
556
+ "NotificationType": {
557
+ "type": "string",
558
+ "enum": ["toast", "alert", "inline", "banner", "none"]
559
+ },
560
+ "HttpMethod": {
561
+ "type": "string",
562
+ "enum": ["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"]
563
+ },
564
+ "CacheStrategy": {
565
+ "type": "string",
566
+ "enum": ["no-cache", "cache-first", "network-first", "stale-while-revalidate"]
567
+ },
568
+ "AnimationType": {
569
+ "type": "string",
570
+ "enum": ["fade", "slide", "scale", "none"]
571
+ },
572
+ "ColumnDisplayType": {
573
+ "type": "string",
574
+ "enum": [
575
+ "text",
576
+ "number",
577
+ "currency",
578
+ "date",
579
+ "datetime",
580
+ "boolean",
581
+ "badge",
582
+ "link",
583
+ "image",
584
+ "avatar",
585
+ "actions",
586
+ "custom"
587
+ ]
588
+ },
589
+ "TextAlign": {
590
+ "type": "string",
591
+ "enum": ["left", "center", "right"]
592
+ },
593
+ "SortDirection": {
594
+ "type": "string",
595
+ "enum": ["asc", "desc"]
596
+ },
597
+ "FilterType": {
598
+ "type": "string",
599
+ "enum": ["text", "select", "multiselect", "date", "daterange", "number", "boolean"]
600
+ },
601
+ "StickyPosition": {
602
+ "type": "string",
603
+ "enum": ["left", "right", "none"]
604
+ },
605
+ "SeriesType": {
606
+ "type": "string",
607
+ "enum": [
608
+ "line",
609
+ "area",
610
+ "bar",
611
+ "column",
612
+ "pie",
613
+ "donut",
614
+ "scatter",
615
+ "bubble",
616
+ "radar",
617
+ "heatmap"
618
+ ]
619
+ },
620
+ "LineStyle": {
621
+ "type": "string",
622
+ "enum": ["solid", "dashed", "dotted"]
623
+ },
624
+ "LabelPosition": {
625
+ "type": "string",
626
+ "enum": ["inside", "outside", "center", "top", "bottom"]
627
+ },
628
+ "UXLibrary": {
629
+ "type": "object",
630
+ "description": "Collection of reusable UI components and sub-views that can be shared across applications",
631
+ "required": ["id", "name", "version"],
632
+ "properties": {
633
+ "id": {
634
+ "type": "string",
635
+ "format": "uuid",
636
+ "minLength": 1
637
+ },
638
+ "name": {
639
+ "type": "string",
640
+ "minLength": 1
641
+ },
642
+ "version": {
643
+ "type": "string",
644
+ "minLength": 1
645
+ },
646
+ "description": {
647
+ "type": "string",
648
+ "minLength": 1
649
+ },
650
+ "author": {
651
+ "type": "string",
652
+ "minLength": 1
653
+ },
654
+ "license": {
655
+ "type": "string",
656
+ "minLength": 1
657
+ },
658
+ "components": {
659
+ "type": "array",
660
+ "description": "Contains relationship",
661
+ "items": {
662
+ "type": "string"
663
+ }
664
+ },
665
+ "subViews": {
666
+ "type": "array",
667
+ "description": "Contains relationship",
668
+ "items": {
669
+ "type": "string"
670
+ }
671
+ },
672
+ "statePatterns": {
673
+ "type": "array",
674
+ "description": "Contains relationship",
675
+ "items": {
676
+ "type": "string"
677
+ }
678
+ },
679
+ "actionPatterns": {
680
+ "type": "array",
681
+ "description": "Contains relationship",
682
+ "items": {
683
+ "type": "string"
684
+ }
685
+ }
686
+ }
687
+ },
688
+ "LibraryComponent": {
689
+ "type": "object",
690
+ "description": "Reusable UI component definition that can be instantiated in multiple UXSpecs",
691
+ "required": ["id", "name", "type"],
692
+ "properties": {
693
+ "id": {
694
+ "type": "string",
695
+ "format": "uuid",
696
+ "minLength": 1
697
+ },
698
+ "name": {
699
+ "type": "string",
700
+ "minLength": 1
701
+ },
702
+ "type": {
703
+ "$ref": "#/definitions/ComponentType"
704
+ },
705
+ "label": {
706
+ "type": "string",
707
+ "minLength": 1
708
+ },
709
+ "description": {
710
+ "type": "string",
711
+ "minLength": 1
712
+ },
713
+ "category": {
714
+ "type": "string",
715
+ "minLength": 1
716
+ },
717
+ "source": {
718
+ "type": "object",
719
+ "description": "Source code reference",
720
+ "properties": {
721
+ "reference": {
722
+ "$ref": "common/source-references.schema.json#/definitions/SourceReference"
723
+ }
724
+ }
725
+ }
726
+ }
727
+ },
728
+ "LibrarySubView": {
729
+ "type": "object",
730
+ "description": "Reusable grouping of components that can be composed into views",
731
+ "required": ["id", "name"],
732
+ "properties": {
733
+ "id": {
734
+ "type": "string",
735
+ "format": "uuid",
736
+ "minLength": 1
737
+ },
738
+ "name": {
739
+ "type": "string",
740
+ "minLength": 1
741
+ },
742
+ "title": {
743
+ "type": "string",
744
+ "minLength": 1
745
+ },
746
+ "description": {
747
+ "type": "string",
748
+ "minLength": 1
749
+ },
750
+ "category": {
751
+ "type": "string",
752
+ "minLength": 1
753
+ }
754
+ }
755
+ },
756
+ "StatePattern": {
757
+ "type": "object",
758
+ "description": "Reusable state machine pattern for common UX flows",
759
+ "required": ["id", "name"],
760
+ "properties": {
761
+ "id": {
762
+ "type": "string",
763
+ "format": "uuid",
764
+ "minLength": 1
765
+ },
766
+ "name": {
767
+ "type": "string",
768
+ "minLength": 1
769
+ },
770
+ "description": {
771
+ "type": "string",
772
+ "minLength": 1
773
+ },
774
+ "category": {
775
+ "type": "string",
776
+ "minLength": 1
777
+ }
778
+ }
779
+ },
780
+ "ActionPattern": {
781
+ "type": "object",
782
+ "description": "Reusable action configuration for common user interactions",
783
+ "required": ["id", "name"],
784
+ "properties": {
785
+ "id": {
786
+ "type": "string",
787
+ "format": "uuid",
788
+ "minLength": 1
789
+ },
790
+ "name": {
791
+ "type": "string",
792
+ "minLength": 1
793
+ },
794
+ "description": {
795
+ "type": "string",
796
+ "minLength": 1
797
+ },
798
+ "category": {
799
+ "type": "string",
800
+ "minLength": 1
801
+ }
802
+ }
803
+ },
804
+ "UXApplication": {
805
+ "type": "object",
806
+ "description": "Application-level UX configuration that groups UXSpecs and defines shared settings",
807
+ "required": ["id", "name", "channel"],
808
+ "properties": {
809
+ "id": {
810
+ "type": "string",
811
+ "format": "uuid",
812
+ "minLength": 1
813
+ },
814
+ "name": {
815
+ "type": "string",
816
+ "minLength": 1
817
+ },
818
+ "version": {
819
+ "type": "string",
820
+ "minLength": 1
821
+ },
822
+ "description": {
823
+ "type": "string",
824
+ "minLength": 1
825
+ },
826
+ "channel": {
827
+ "$ref": "#/definitions/ChannelType"
828
+ },
829
+ "experiences": {
830
+ "type": "array",
831
+ "description": "Contains relationship",
832
+ "items": {
833
+ "type": "string"
834
+ }
835
+ }
836
+ }
837
+ },
838
+ "UXSpec": {
839
+ "type": "object",
840
+ "description": "Complete UX specification for a single experience (visual, voice, chat, SMS)",
841
+ "required": ["id", "name"],
842
+ "properties": {
843
+ "id": {
844
+ "type": "string",
845
+ "format": "uuid",
846
+ "minLength": 1
847
+ },
848
+ "name": {
849
+ "type": "string",
850
+ "minLength": 1
851
+ },
852
+ "version": {
853
+ "type": "string",
854
+ "minLength": 1
855
+ },
856
+ "experience": {
857
+ "type": "string",
858
+ "minLength": 1
859
+ },
860
+ "title": {
861
+ "type": "string",
862
+ "minLength": 1
863
+ },
864
+ "description": {
865
+ "type": "string",
866
+ "minLength": 1
867
+ },
868
+ "source": {
869
+ "type": "object",
870
+ "description": "Source code reference",
871
+ "properties": {
872
+ "reference": {
873
+ "$ref": "common/source-references.schema.json#/definitions/SourceReference"
874
+ }
875
+ }
876
+ }
877
+ }
878
+ },
879
+ "ExperienceState": {
880
+ "type": "object",
881
+ "description": "Distinct state that the experience can be in (works across all channels)",
882
+ "required": ["id", "name"],
883
+ "properties": {
884
+ "id": {
885
+ "type": "string",
886
+ "format": "uuid",
887
+ "minLength": 1
888
+ },
889
+ "name": {
890
+ "type": "string",
891
+ "minLength": 1
892
+ },
893
+ "initial": {
894
+ "type": "boolean"
895
+ },
896
+ "description": {
897
+ "type": "string",
898
+ "minLength": 1
899
+ },
900
+ "channel": {
901
+ "type": "string",
902
+ "minLength": 1
903
+ },
904
+ "onEnter": {
905
+ "type": "array",
906
+ "description": "Contains relationship",
907
+ "items": {
908
+ "type": "string"
909
+ }
910
+ },
911
+ "onExit": {
912
+ "type": "array",
913
+ "description": "Contains relationship",
914
+ "items": {
915
+ "type": "string"
916
+ }
917
+ },
918
+ "transitions": {
919
+ "type": "array",
920
+ "description": "Contains relationship",
921
+ "items": {
922
+ "type": "string"
923
+ }
924
+ },
925
+ "enabledComponents": {
926
+ "type": "array",
927
+ "description": "Contains relationship",
928
+ "items": {
929
+ "type": "string"
930
+ }
931
+ },
932
+ "disabledComponents": {
933
+ "type": "array",
934
+ "description": "Contains relationship",
935
+ "items": {
936
+ "type": "string"
937
+ }
938
+ },
939
+ "hiddenComponents": {
940
+ "type": "array",
941
+ "description": "Contains relationship",
942
+ "items": {
943
+ "type": "string"
944
+ }
945
+ }
946
+ }
947
+ },
948
+ "StateAction": {
949
+ "type": "object",
950
+ "description": "Action executed during state lifecycle",
951
+ "required": ["id", "name", "action"],
952
+ "properties": {
953
+ "id": {
954
+ "type": "string",
955
+ "format": "uuid",
956
+ "minLength": 1
957
+ },
958
+ "name": {
959
+ "type": "string",
960
+ "minLength": 1
961
+ },
962
+ "action": {
963
+ "$ref": "#/definitions/ActionType"
964
+ },
965
+ "description": {
966
+ "type": "string",
967
+ "minLength": 1
968
+ }
969
+ }
970
+ },
971
+ "StateTransition": {
972
+ "type": "object",
973
+ "description": "Transition from current state to another state",
974
+ "required": ["id", "name", "trigger"],
975
+ "properties": {
976
+ "id": {
977
+ "type": "string",
978
+ "format": "uuid",
979
+ "minLength": 1
980
+ },
981
+ "name": {
982
+ "type": "string",
983
+ "minLength": 1
984
+ },
985
+ "to": {
986
+ "type": "string",
987
+ "minLength": 1
988
+ },
989
+ "trigger": {
990
+ "$ref": "#/definitions/TriggerType"
991
+ },
992
+ "description": {
993
+ "type": "string",
994
+ "minLength": 1
995
+ },
996
+ "actions": {
997
+ "type": "array",
998
+ "description": "Contains relationship",
999
+ "items": {
1000
+ "type": "string"
1001
+ }
1002
+ }
1003
+ }
1004
+ },
1005
+ "Condition": {
1006
+ "type": "object",
1007
+ "description": "Boolean expression for guard conditions",
1008
+ "required": ["id", "name"],
1009
+ "properties": {
1010
+ "id": {
1011
+ "type": "string",
1012
+ "format": "uuid",
1013
+ "minLength": 1
1014
+ },
1015
+ "name": {
1016
+ "type": "string",
1017
+ "minLength": 1
1018
+ },
1019
+ "expression": {
1020
+ "type": "string",
1021
+ "minLength": 1
1022
+ }
1023
+ }
1024
+ },
1025
+ "View": {
1026
+ "type": "object",
1027
+ "description": "Routable grouping of components (a complete user experience)",
1028
+ "required": ["id", "name", "type"],
1029
+ "properties": {
1030
+ "id": {
1031
+ "type": "string",
1032
+ "format": "uuid",
1033
+ "minLength": 1
1034
+ },
1035
+ "name": {
1036
+ "type": "string",
1037
+ "minLength": 1
1038
+ },
1039
+ "type": {
1040
+ "$ref": "#/definitions/ViewType"
1041
+ },
1042
+ "title": {
1043
+ "type": "string",
1044
+ "minLength": 1
1045
+ },
1046
+ "description": {
1047
+ "type": "string",
1048
+ "minLength": 1
1049
+ },
1050
+ "routable": {
1051
+ "type": "boolean"
1052
+ },
1053
+ "layout": {
1054
+ "type": "string",
1055
+ "minLength": 1
1056
+ },
1057
+ "subViews": {
1058
+ "type": "array",
1059
+ "description": "Contains relationship",
1060
+ "items": {
1061
+ "type": "string"
1062
+ }
1063
+ },
1064
+ "components": {
1065
+ "type": "array",
1066
+ "description": "Contains relationship",
1067
+ "items": {
1068
+ "type": "string"
1069
+ }
1070
+ },
1071
+ "actions": {
1072
+ "type": "array",
1073
+ "description": "Contains relationship",
1074
+ "items": {
1075
+ "type": "string"
1076
+ }
1077
+ },
1078
+ "source": {
1079
+ "type": "object",
1080
+ "description": "Source code reference",
1081
+ "properties": {
1082
+ "reference": {
1083
+ "$ref": "common/source-references.schema.json#/definitions/SourceReference"
1084
+ }
1085
+ }
1086
+ }
1087
+ }
1088
+ },
1089
+ "SubView": {
1090
+ "type": "object",
1091
+ "description": "Instance of a LibrarySubView or custom sub-view definition",
1092
+ "required": ["id", "name"],
1093
+ "properties": {
1094
+ "id": {
1095
+ "type": "string",
1096
+ "format": "uuid",
1097
+ "minLength": 1
1098
+ },
1099
+ "name": {
1100
+ "type": "string",
1101
+ "minLength": 1
1102
+ },
1103
+ "title": {
1104
+ "type": "string",
1105
+ "minLength": 1
1106
+ },
1107
+ "description": {
1108
+ "type": "string",
1109
+ "minLength": 1
1110
+ },
1111
+ "order": {
1112
+ "type": "integer"
1113
+ }
1114
+ }
1115
+ },
1116
+ "ComponentInstance": {
1117
+ "type": "object",
1118
+ "description": "Instance of a LibraryComponent with application-specific configuration",
1119
+ "required": ["id", "name"],
1120
+ "properties": {
1121
+ "id": {
1122
+ "type": "string",
1123
+ "format": "uuid",
1124
+ "minLength": 1
1125
+ },
1126
+ "name": {
1127
+ "type": "string",
1128
+ "minLength": 1
1129
+ },
1130
+ "order": {
1131
+ "type": "integer"
1132
+ }
1133
+ }
1134
+ },
1135
+ "ActionComponent": {
1136
+ "type": "object",
1137
+ "description": "Interactive element that triggers actions (button, menu, link, voice command)",
1138
+ "required": ["id", "name", "type"],
1139
+ "properties": {
1140
+ "id": {
1141
+ "type": "string",
1142
+ "format": "uuid",
1143
+ "minLength": 1
1144
+ },
1145
+ "name": {
1146
+ "type": "string",
1147
+ "minLength": 1
1148
+ },
1149
+ "label": {
1150
+ "type": "string",
1151
+ "minLength": 1
1152
+ },
1153
+ "type": {
1154
+ "$ref": "#/definitions/ActionComponentType"
1155
+ },
1156
+ "icon": {
1157
+ "type": "string",
1158
+ "minLength": 1
1159
+ },
1160
+ "disabled": {
1161
+ "type": "boolean"
1162
+ },
1163
+ "tooltip": {
1164
+ "type": "string",
1165
+ "minLength": 1
1166
+ },
1167
+ "channel": {
1168
+ "type": "string",
1169
+ "minLength": 1
1170
+ },
1171
+ "children": {
1172
+ "type": "array",
1173
+ "description": "Contains relationship",
1174
+ "items": {
1175
+ "type": "string"
1176
+ }
1177
+ }
1178
+ }
1179
+ },
1180
+ "ValidationRule": {
1181
+ "type": "object",
1182
+ "description": "Client-side validation rule for a field",
1183
+ "required": ["id", "name", "type"],
1184
+ "properties": {
1185
+ "id": {
1186
+ "type": "string",
1187
+ "format": "uuid",
1188
+ "minLength": 1
1189
+ },
1190
+ "name": {
1191
+ "type": "string",
1192
+ "minLength": 1
1193
+ },
1194
+ "type": {
1195
+ "$ref": "#/definitions/ValidationType"
1196
+ },
1197
+ "message": {
1198
+ "type": "string",
1199
+ "minLength": 1
1200
+ },
1201
+ "value": {
1202
+ "type": "string",
1203
+ "minLength": 1
1204
+ }
1205
+ }
1206
+ },
1207
+ "LayoutConfig": {
1208
+ "type": "object",
1209
+ "description": "Configuration for UI layout structure, defining grid systems, responsive breakpoints, spacing rules, and component arrangement patterns. Controls visual organization of the interface.",
1210
+ "required": ["id", "name", "type"],
1211
+ "properties": {
1212
+ "id": {
1213
+ "type": "string",
1214
+ "format": "uuid",
1215
+ "minLength": 1
1216
+ },
1217
+ "name": {
1218
+ "type": "string",
1219
+ "minLength": 1
1220
+ },
1221
+ "type": {
1222
+ "$ref": "#/definitions/LayoutType"
1223
+ },
1224
+ "columns": {
1225
+ "type": "integer"
1226
+ },
1227
+ "rows": {
1228
+ "type": "integer"
1229
+ },
1230
+ "gap": {
1231
+ "type": "string",
1232
+ "minLength": 1
1233
+ },
1234
+ "rowGap": {
1235
+ "type": "string",
1236
+ "minLength": 1
1237
+ },
1238
+ "columnGap": {
1239
+ "type": "string",
1240
+ "minLength": 1
1241
+ },
1242
+ "padding": {
1243
+ "type": "string",
1244
+ "minLength": 1
1245
+ },
1246
+ "margin": {
1247
+ "type": "string",
1248
+ "minLength": 1
1249
+ },
1250
+ "maxWidth": {
1251
+ "type": "string",
1252
+ "minLength": 1
1253
+ }
1254
+ }
1255
+ },
1256
+ "ErrorConfig": {
1257
+ "type": "object",
1258
+ "description": "Configuration for error handling and display within UI components, specifying error message formats, retry behavior, fallback content, and user guidance. Ensures consistent error UX.",
1259
+ "required": ["id", "name"],
1260
+ "properties": {
1261
+ "id": {
1262
+ "type": "string",
1263
+ "format": "uuid",
1264
+ "minLength": 1
1265
+ },
1266
+ "name": {
1267
+ "type": "string",
1268
+ "minLength": 1
1269
+ },
1270
+ "showNotification": {
1271
+ "type": "boolean"
1272
+ },
1273
+ "notificationType": {
1274
+ "$ref": "#/definitions/NotificationType"
1275
+ },
1276
+ "errorMessage": {
1277
+ "type": "string",
1278
+ "minLength": 1
1279
+ },
1280
+ "defaultErrorMessage": {
1281
+ "type": "string",
1282
+ "minLength": 1
1283
+ }
1284
+ }
1285
+ },
1286
+ "ApiConfig": {
1287
+ "type": "object",
1288
+ "description": "Configuration for API integration within UI components, specifying endpoints, request/response mapping, authentication, and caching strategies. Connects UI to backend services.",
1289
+ "required": ["id", "name", "operationId", "method", "endpoint", "baseUrl"],
1290
+ "properties": {
1291
+ "id": {
1292
+ "type": "string",
1293
+ "format": "uuid",
1294
+ "minLength": 1
1295
+ },
1296
+ "name": {
1297
+ "type": "string",
1298
+ "minLength": 1
1299
+ },
1300
+ "operationId": {
1301
+ "type": "string",
1302
+ "minLength": 1
1303
+ },
1304
+ "method": {
1305
+ "$ref": "#/definitions/HttpMethod"
1306
+ },
1307
+ "endpoint": {
1308
+ "type": "string",
1309
+ "minLength": 1
1310
+ },
1311
+ "baseUrl": {
1312
+ "type": "string",
1313
+ "minLength": 1
1314
+ }
1315
+ }
1316
+ },
1317
+ "DataConfig": {
1318
+ "type": "object",
1319
+ "description": "Configuration for data binding and state management within UI components, defining data sources, transformation pipelines, and update triggers. Manages component data flow.",
1320
+ "required": ["id", "name", "source", "target"],
1321
+ "properties": {
1322
+ "id": {
1323
+ "type": "string",
1324
+ "format": "uuid",
1325
+ "minLength": 1
1326
+ },
1327
+ "name": {
1328
+ "type": "string",
1329
+ "minLength": 1
1330
+ },
1331
+ "source": {
1332
+ "$ref": "#/definitions/DataSource"
1333
+ },
1334
+ "target": {
1335
+ "type": "string",
1336
+ "minLength": 1
1337
+ },
1338
+ "path": {
1339
+ "type": "string",
1340
+ "minLength": 1
1341
+ }
1342
+ }
1343
+ },
1344
+ "PerformanceTargets": {
1345
+ "type": "object",
1346
+ "description": "Defines performance SLAs for UI components including load time, interaction responsiveness, and rendering thresholds. Enables performance monitoring and optimization.",
1347
+ "required": ["id", "name"],
1348
+ "properties": {
1349
+ "id": {
1350
+ "type": "string",
1351
+ "format": "uuid",
1352
+ "minLength": 1
1353
+ },
1354
+ "name": {
1355
+ "type": "string",
1356
+ "minLength": 1
1357
+ }
1358
+ }
1359
+ },
1360
+ "ComponentReference": {
1361
+ "type": "object",
1362
+ "description": "A reference to another UI component that can be embedded or composed within a parent component. Enables component reuse and modular UI architecture.",
1363
+ "required": ["id", "name", "ref"],
1364
+ "properties": {
1365
+ "id": {
1366
+ "type": "string",
1367
+ "format": "uuid",
1368
+ "minLength": 1
1369
+ },
1370
+ "name": {
1371
+ "type": "string",
1372
+ "minLength": 1
1373
+ },
1374
+ "ref": {
1375
+ "type": "string",
1376
+ "minLength": 1
1377
+ },
1378
+ "variant": {
1379
+ "type": "string",
1380
+ "minLength": 1
1381
+ },
1382
+ "slot": {
1383
+ "type": "string",
1384
+ "minLength": 1
1385
+ }
1386
+ }
1387
+ },
1388
+ "TransitionTemplate": {
1389
+ "type": "object",
1390
+ "description": "Defines reusable animation and transition patterns for state changes, page navigation, or component lifecycle events. Ensures consistent motion design across the application.",
1391
+ "required": ["id", "name", "to", "trigger"],
1392
+ "properties": {
1393
+ "id": {
1394
+ "type": "string",
1395
+ "format": "uuid",
1396
+ "minLength": 1
1397
+ },
1398
+ "name": {
1399
+ "type": "string",
1400
+ "minLength": 1
1401
+ },
1402
+ "to": {
1403
+ "type": "string",
1404
+ "minLength": 1
1405
+ },
1406
+ "trigger": {
1407
+ "$ref": "#/definitions/TriggerType"
1408
+ },
1409
+ "description": {
1410
+ "type": "string",
1411
+ "minLength": 1
1412
+ }
1413
+ }
1414
+ },
1415
+ "StateActionTemplate": {
1416
+ "type": "object",
1417
+ "description": "A reusable template defining actions to execute during component state transitions. Enables standardized behavior patterns for common state changes.",
1418
+ "required": ["id", "name", "action"],
1419
+ "properties": {
1420
+ "id": {
1421
+ "type": "string",
1422
+ "format": "uuid",
1423
+ "minLength": 1
1424
+ },
1425
+ "name": {
1426
+ "type": "string",
1427
+ "minLength": 1
1428
+ },
1429
+ "action": {
1430
+ "$ref": "#/definitions/ActionType"
1431
+ },
1432
+ "description": {
1433
+ "type": "string",
1434
+ "minLength": 1
1435
+ }
1436
+ }
1437
+ },
1438
+ "TableColumn": {
1439
+ "type": "object",
1440
+ "description": "Configuration for a single column within a data table component, specifying header, data binding, sorting, filtering, and rendering options. Defines table structure and behavior.",
1441
+ "required": ["id", "name", "header", "field"],
1442
+ "properties": {
1443
+ "id": {
1444
+ "type": "string",
1445
+ "format": "uuid",
1446
+ "minLength": 1
1447
+ },
1448
+ "name": {
1449
+ "type": "string",
1450
+ "minLength": 1
1451
+ },
1452
+ "header": {
1453
+ "type": "string",
1454
+ "minLength": 1
1455
+ },
1456
+ "field": {
1457
+ "type": "string",
1458
+ "minLength": 1
1459
+ },
1460
+ "width": {
1461
+ "type": "string",
1462
+ "minLength": 1
1463
+ },
1464
+ "minWidth": {
1465
+ "type": "string",
1466
+ "minLength": 1
1467
+ },
1468
+ "maxWidth": {
1469
+ "type": "string",
1470
+ "minLength": 1
1471
+ }
1472
+ }
1473
+ },
1474
+ "ChartSeries": {
1475
+ "type": "object",
1476
+ "description": "Configuration for a data series within a chart component, specifying data source, visualization type, colors, and legend properties. Defines how data is visualized in charts.",
1477
+ "required": ["id", "name", "label", "dataField"],
1478
+ "properties": {
1479
+ "id": {
1480
+ "type": "string",
1481
+ "format": "uuid",
1482
+ "minLength": 1
1483
+ },
1484
+ "name": {
1485
+ "type": "string",
1486
+ "minLength": 1
1487
+ },
1488
+ "label": {
1489
+ "type": "string",
1490
+ "minLength": 1
1491
+ },
1492
+ "type": {
1493
+ "$ref": "#/definitions/SeriesType"
1494
+ },
1495
+ "dataField": {
1496
+ "type": "string",
1497
+ "minLength": 1
1498
+ },
1499
+ "categoryField": {
1500
+ "type": "string",
1501
+ "minLength": 1
1502
+ }
1503
+ }
1504
+ }
1505
+ }
1506
+ }