@startuml class org.accordproject.ciceromark.Element { + String name + String elementType + Decorator[] decorators } org.accordproject.ciceromark.Element --|> org.accordproject.commonmark.Child class org.accordproject.ciceromark.Variable { + String value + String identifiedBy } org.accordproject.ciceromark.Variable --|> org.accordproject.ciceromark.Element class org.accordproject.ciceromark.FormattedVariable { + String format } org.accordproject.ciceromark.FormattedVariable --|> org.accordproject.ciceromark.Variable class org.accordproject.ciceromark.EnumVariable { + String[] enumValues } org.accordproject.ciceromark.EnumVariable --|> org.accordproject.ciceromark.Variable class org.accordproject.ciceromark.Formula { + String value + String[] dependencies + String code } org.accordproject.ciceromark.Formula --|> org.accordproject.ciceromark.Element class org.accordproject.ciceromark.Block { } org.accordproject.ciceromark.Block --|> org.accordproject.ciceromark.Element class org.accordproject.ciceromark.Clause { + String src } org.accordproject.ciceromark.Clause --|> org.accordproject.ciceromark.Block class org.accordproject.ciceromark.Conditional { + Boolean isTrue + Child[] whenTrue + Child[] whenFalse } org.accordproject.ciceromark.Conditional --|> org.accordproject.ciceromark.Block class org.accordproject.ciceromark.Optional { + Boolean hasSome + Child[] whenSome + Child[] whenNone } org.accordproject.ciceromark.Optional --|> org.accordproject.ciceromark.Block class org.accordproject.ciceromark.ListBlock { + String type + String tight + String start + String delimiter } org.accordproject.ciceromark.ListBlock --|> org.accordproject.ciceromark.Block @enduml