Statement { Enum(enum_: Enum) Node(node: Node) } Enum(name: Name, nodes: Node[]) Node(name: Name, params: Param[]) Param(name: Name, type_: Type) Type { Name(name: Name) Optional(type_: Type) Multiple(type_: Type) } Name(value: string)