vis: structure styles structure: "structure:" nodes elements: "{" element* "}" element: node | edge node: (id (":" title)? nodes?) | edgenode edge: from_id arrow to_id title? arrow: ArrowLeft | ArrowRight | DiamondArrowLeft | DiamondArrowRight ArrowLeft: "<--" ArrowRight: "-->" DiamondArrowLeft: "<>--" DiamondArrowRight: "--<>" id: text title: string string: """ text """ styles: "styles" "{" style* "}" style: idref attributes? ":" style-elements style-elements: "{" style-element "}" style-element: key ":" value key: text value: text idref: text attributes: "(" attribute ")" attribute: text ("," attribute)*