1 import Base 2 3 # One numbered step of a dynamic view. 4 type Step is Data: 5 Step{source: String, destination: String, description: String, technology: String} 6 7 # C4's levels of zoom over one architecture. Context: the system among its people and the systems 8 # around it. Containers: inside the system. Components: inside one container. Deployment: the 9 # machines and what runs on them. Dynamic: numbered steps of one flow. 10 type View is Data: 11 Context{} 12 Containers{} 13 Components{container: String} 14 Deployment{} 15 Dynamic{steps: List<&2, Step>} 16 17 # A view with the name its drawing is saved under. 18 type Named is Data: 19 Named{name: String, view: View}