Revelation is a diagram as code application that describes systems and their interactions. Models are described in JSON formt files. An example is shown below.{ "model": { "TITLE": { "value": "Basic Start Model" }, "AUTHOR": { "value": "Steve White", "readOnly": "true" }, "MODELTYPE": { "value": "C4", "inputType": "select", "refData": "MODELTYPE" }, "DESCRIPTION": { "value": "Basic starter model demonstrating simple systems and interactions", "inputType": "textarea" }, "LAYOUT": { "inputType": "select", "value": "VerticalFlow", "refData": "LAYOUTTYPE" } }, "systems": [ { "ID": "SYS1", "TEXT": "System 1", "TYPE": "SYSTEM" }, { "ID": "SYS2", "TEXT": "System 2", "TYPE": "SYSTEM" }, { "ID": "ACT1", "TEXT": "Actor 1", "TYPE": "ACTOR" }, { "ID": "DS1", "TEXT": "Datastore 1", "TYPE": "DATASTORE" } ], "interactions": [ { "ID": "INT1", "FROMID": "SYS1", "TOID": "SYS2", "TEXT": "Order", "TYPE": "->" }, { "ID": "INT2", "FROMID": "ACT1", "TOID": "SYS1", "TEXT": "Customer Order", "TYPE": "->" }, { "ID": "INT3", "FROMID": "SYS1", "TOID": "DS1", "TEXT": "Data", "TYPE": "->" } ] } There are three elements at the top level: model, systems, and interactions. The model element contains metadata that describes the model. Two of the model metadata properties have a particular purpose. MODELTYPE defines the type of model, for example, C4 Architecture, Flowchart, etc. The LAYOUTTYPE defines the diagram layout. Both these fields can be defined when a process is defined. None of the model element properties are mandatory. The systems element is an array of systems. Each system has three mandatory properties: ID, TEXT, and TYPE. ID is a unique identifier for the system. TEXT is a short description of the system that appears in the diagram with the system symbol. TYPE is the type of system and defines how the system is displayed in the diagram. The default type is SYSTEM. However, the definition of the process should provide information detailing valid TYPEs based on the MODELTYPE. Any number of optional metadata properties can be included at the same level as the mandatory elements. The interactions element is an array of interactions that describe the interaction between systems. Each interaction has five mandatory properties: ID, FROMID, TOID, TEXT, and TYPE. ID is a unique identifier for the interaction. FROMID is the ID of the source system where the interaction starts. TOID is the ID of the destination system for the interaction. TEXT is the label for the interaction that appears on the diagram. TYPE defines how the interaction is displayed. The default TYPE value is ->. However, the definition of the process should provide information detailing valid TYPEs based on the MODELTYPE. Any number of optional metadata properties can be included at the same level as the mandatory elements.