-
Notifications
You must be signed in to change notification settings - Fork 1
/
c4.cue
57 lines (51 loc) · 1.35 KB
/
c4.cue
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package c4
import "strings"
#System: {
id: #id
label: *id | string
description?: string
desc: "" | *strings.Replace(description, "\n", "\\n", -1)
isBoundary: bool | *false
technology?: #Technology
type?: #Type
containers?: [...#Container]
relations?: [...#Relation]
systems?: [...#System]
link?: #url
tags?: [...#ElementTag]
}
#Container: {
id: #id
label: *id | string
technology: #Technology | *_noTech
description?: string
desc: "" | *strings.Replace(description, "\n", "\\n", -1)
tags?: [...#ElementTag]
link?: #url
}
#Person: {
id: #id
label: *id | string
}
#Relation: {
source: #System | #Container | #Person
dest: #System | #Container | #Person
description: string | *""
desc: "" | *strings.Replace(description, "\n", "\\n", -1)
protocol?: string
link?: #url
tags?: [...#RelationTag]
}
#C1: {
title?: string
elementTags: #FoundElementTags & {#in: Systems}
relationTags: {a: {if relations != _|_ {#FoundRelationTags & {#in: relations}}}, b: #FoundRelationTags & {#in: Systems}}
Technologies: #FoundTechs & {#in: Systems}
Persons?: [...#Person]
Systems: [...#System]
SystemsExt?: [...#System]
Container?: [...#Container]
relations?: [...#Relation]
layout: *"top-down" | "left-right" | "landscape"
hideStereotype: bool | *true
}