oino-ui 1.0.1

Wire types and builder for the Oino extension UI protocol v2 (serde-only, wasm32-wasip2-safe)
Documentation
{"$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://oino.dev/schemas/ui/2/node.schema.json", "title": "Oino UI protocol v2 node", "$ref": "#/$defs/Node",
 "$defs": {
  "Key": {"type": "string", "minLength": 1, "maxLength": 128},
  "ActionId": {"type": "string", "pattern": "^[A-Za-z0-9_.:/-]{1,128}$"},
  "Color": {"enum": ["reset", "text", "muted", "dim", "accent", "primary", "info", "link", "success", "warning", "error", "harness", "thinking", "tool", "user", "assistant", "code", "border", "borderAccent", "borderMuted", "c1", "c2", "c3", "c4", "c5", "c6", "c7", "c8", "c9", "c10", "c11", "c12", "surface1", "surface2", "surface3", "selectedBg", "successBg", "errorBg", "warningBg", "infoBg", "accentBg", "diffAdded", "diffRemoved", "diffContext"]},
  "Icon": {"enum": ["check", "x", "dot", "warn", "info", "clock", "gear", "branch", "bolt", "bot", "folder", "file", "search", "cloud", "lock", "board", "terminal", "globe", "diff", "list", "chart", "play", "pause", "stop", "refresh", "plus", "trash"]},
  "Modifier": {"enum": ["BOLD", "DIM", "ITALIC", "UNDERLINED", "SLOW_BLINK", "RAPID_BLINK", "REVERSED", "HIDDEN", "CROSSED_OUT"]},
  "Alignment": {"enum": ["Left", "Center", "Right"]},
  "Style": {"type": "object", "properties": {"fg": {"$ref": "#/$defs/Color"}, "bg": {"$ref": "#/$defs/Color"}, "underlineColor": {"$ref": "#/$defs/Color"}, "addModifier": {"type": "array", "items": {"$ref": "#/$defs/Modifier"}}, "subModifier": {"type": "array", "items": {"$ref": "#/$defs/Modifier"}}}},
  "Span": {"oneOf": [{"type": "string"}, {"type": "object", "properties": {"content": {"type": "string"}, "style": {"$ref": "#/$defs/Style"}, "link": {"type": "string", "format": "uri"}}, "required": ["content"]}]},
  "Line": {"oneOf": [{"type": "string"}, {"type": "array", "items": {"$ref": "#/$defs/Span"}}, {"type": "object", "properties": {"spans": {"type": "array", "items": {"$ref": "#/$defs/Span"}}, "style": {"$ref": "#/$defs/Style"}, "alignment": {"$ref": "#/$defs/Alignment"}}, "required": ["spans"]}]},
  "Text": {"oneOf": [{"type": "string"}, {"type": "array", "items": {"$ref": "#/$defs/Line"}}, {"type": "object", "properties": {"lines": {"type": "array", "items": {"$ref": "#/$defs/Line"}}, "style": {"$ref": "#/$defs/Style"}, "alignment": {"$ref": "#/$defs/Alignment"}}, "required": ["lines"]}]},
  "Constraint": {"oneOf": [{"type": "integer", "minimum": 0, "maximum": 65535}, {"type": "object", "properties": {"Length": {"type": "integer", "minimum": 0, "maximum": 65535}}, "required": ["Length"], "additionalProperties": false}, {"type": "object", "properties": {"Percentage": {"type": "integer", "minimum": 0, "maximum": 100}}, "required": ["Percentage"], "additionalProperties": false}, {"type": "object", "properties": {"Ratio": {"type": "array", "items": {"type": "integer", "minimum": 0, "maximum": 4294967295}, "minItems": 2, "maxItems": 2}}, "required": ["Ratio"], "additionalProperties": false}, {"type": "object", "properties": {"Min": {"type": "integer", "minimum": 0, "maximum": 65535}}, "required": ["Min"], "additionalProperties": false}, {"type": "object", "properties": {"Max": {"type": "integer", "minimum": 0, "maximum": 65535}}, "required": ["Max"], "additionalProperties": false}, {"type": "object", "properties": {"Fill": {"type": "integer", "minimum": 0, "maximum": 65535}}, "required": ["Fill"], "additionalProperties": false}]},
  "Padding": {"oneOf": [{"type": "integer", "minimum": 0, "maximum": 65535}, {"type": "object", "properties": {"left": {"type": "integer", "minimum": 0, "maximum": 65535}, "right": {"type": "integer", "minimum": 0, "maximum": 65535}, "top": {"type": "integer", "minimum": 0, "maximum": 65535}, "bottom": {"type": "integer", "minimum": 0, "maximum": 65535}}}]},
  "Borders": {"oneOf": [{"enum": ["ALL", "NONE"]}, {"type": "array", "items": {"enum": ["TOP", "RIGHT", "BOTTOM", "LEFT"]}, "uniqueItems": true}]},
  "Title": {"oneOf": [{"$ref": "#/$defs/Line"}, {"type": "object", "properties": {"content": {"$ref": "#/$defs/Line"}, "alignment": {"$ref": "#/$defs/Alignment"}, "position": {"enum": ["Top", "Bottom"]}}, "required": ["content"]}]},
  "BlockProps": {"type": "object", "properties": {"title": {"oneOf": [{"$ref": "#/$defs/Line"}, {"type": "array", "items": {"$ref": "#/$defs/Title"}}]}, "titleAlignment": {"$ref": "#/$defs/Alignment"}, "borders": {"$ref": "#/$defs/Borders"}, "borderType": {"enum": ["Plain", "Rounded", "Double", "Thick"]}, "borderStyle": {"$ref": "#/$defs/Style"}, "titleStyle": {"$ref": "#/$defs/Style"}, "padding": {"$ref": "#/$defs/Padding"}, "collapsible": {"type": "boolean"}, "collapsed": {"type": "boolean"}, "rail": {"$ref": "#/$defs/Color"}, "style": {"$ref": "#/$defs/Style"}}},
  "Common": {"type": "object", "properties": {"key": {"$ref": "#/$defs/Key"}, "style": {"$ref": "#/$defs/Style"}, "block": {"$ref": "#/$defs/BlockProps"}, "fallback": {"$ref": "#/$defs/Node"}}},
  "ImageSource": {"oneOf": [{"type": "object", "properties": {"data": {"type": "string", "contentEncoding": "base64"}, "mimeType": {"type": "string"}}, "required": ["data", "mimeType"]}, {"type": "object", "properties": {"path": {"type": "string"}}, "required": ["path"]}, {"type": "object", "properties": {"blob": {"type": "string"}}, "required": ["blob"]}]},
  "ListItem": {"oneOf": [{"$ref": "#/$defs/Text"}, {"type": "object", "properties": {"key": {"$ref": "#/$defs/Key"}, "content": {"$ref": "#/$defs/Text"}, "style": {"$ref": "#/$defs/Style"}, "detail": {"$ref": "#/$defs/Line"}, "badge": {"$ref": "#/$defs/Line"}, "icon": {"$ref": "#/$defs/Icon"}, "disabled": {"type": "boolean"}}, "required": ["content"]}]},
  "Cell": {"oneOf": [{"$ref": "#/$defs/Text"}, {"type": "object", "properties": {"content": {"$ref": "#/$defs/Text"}, "style": {"$ref": "#/$defs/Style"}}, "required": ["content"]}]},
  "Row": {"type": "object", "properties": {"key": {"$ref": "#/$defs/Key"}, "cells": {"type": "array", "items": {"$ref": "#/$defs/Cell"}}, "height": {"type": "integer", "minimum": 0, "maximum": 65535}, "bottomMargin": {"type": "integer", "minimum": 0, "maximum": 65535}, "style": {"$ref": "#/$defs/Style"}}, "required": ["cells"]},
  "TreeNode": {"type": "object", "properties": {"key": {"$ref": "#/$defs/Key"}, "label": {"$ref": "#/$defs/Line"}, "icon": {"$ref": "#/$defs/Icon"}, "badge": {"$ref": "#/$defs/Line"}, "children": {"type": "array", "items": {"$ref": "#/$defs/TreeNode"}}, "expanded": {"type": "boolean"}, "lazy": {"type": "boolean"}}, "required": ["key", "label"]},
  "Axis": {"type": "object", "properties": {"title": {"$ref": "#/$defs/Line"}, "bounds": {"type": "array", "items": {"type": "number"}, "minItems": 2, "maxItems": 2}, "labels": {"type": "array", "items": {"$ref": "#/$defs/Span"}}, "labelsAlignment": {"$ref": "#/$defs/Alignment"}, "style": {"$ref": "#/$defs/Style"}}, "required": ["bounds"]},
  "Dataset": {"type": "object", "properties": {"name": {"$ref": "#/$defs/Line"}, "data": {"type": "array", "items": {"type": "array", "items": {"type": "number"}, "minItems": 2, "maxItems": 2}}, "marker": {"enum": ["Dot", "Braille", "Block", "Bar", "HalfBlock"]}, "graphType": {"enum": ["Scatter", "Line", "Bar"]}, "style": {"$ref": "#/$defs/Style"}}, "required": ["data"]},
  "Bar": {"type": "object", "properties": {"value": {"type": "integer", "minimum": 0}, "label": {"$ref": "#/$defs/Line"}, "textValue": {"type": "string"}, "style": {"$ref": "#/$defs/Style"}, "valueStyle": {"$ref": "#/$defs/Style"}}, "required": ["value"]},
  "BarGroup": {"type": "object", "properties": {"label": {"$ref": "#/$defs/Line"}, "bars": {"type": "array", "items": {"$ref": "#/$defs/Bar"}}}, "required": ["bars"]},
  "Hint": {"type": "object", "properties": {"keys": {"type": "string"}, "label": {"type": "string"}, "action": {"$ref": "#/$defs/ActionId"}}, "required": ["keys", "label"]},
  "Option": {"type": "object", "properties": {"value": {"type": "string"}, "label": {"$ref": "#/$defs/Line"}, "description": {"type": "string"}}, "required": ["value", "label"]},
  "ListState": {"type": "object", "properties": {"selected": {"oneOf": [{"$ref": "#/$defs/Key"}, {"type": "array", "items": {"$ref": "#/$defs/Key"}}]}, "offset": {"type": "integer", "minimum": 0, "maximum": 4294967295}}},
  "Layout": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "Layout"}, "direction": {"enum": ["Vertical", "Horizontal"]}, "constraints": {"type": "array", "items": {"$ref": "#/$defs/Constraint"}, "maxItems": 64}, "children": {"type": "array", "items": {"$ref": "#/$defs/Node"}, "maxItems": 64}, "spacing": {"type": "integer", "minimum": 0, "maximum": 65535}, "margin": {"oneOf": [{"type": "integer", "minimum": 0, "maximum": 65535}, {"type": "object", "properties": {"horizontal": {"type": "integer", "minimum": 0, "maximum": 65535}, "vertical": {"type": "integer", "minimum": 0, "maximum": 65535}}}]}, "flex": {"enum": ["Legacy", "Start", "End", "Center", "SpaceBetween", "SpaceAround"]}, "collapse": {"type": "integer", "minimum": 0, "maximum": 65535}}, "required": ["t", "children"]}]},
  "Block": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "Block"}, "title": {"oneOf": [{"$ref": "#/$defs/Line"}, {"type": "array", "items": {"$ref": "#/$defs/Title"}}]}, "titleAlignment": {"$ref": "#/$defs/Alignment"}, "borders": {"$ref": "#/$defs/Borders"}, "borderType": {"enum": ["Plain", "Rounded", "Double", "Thick"]}, "borderStyle": {"$ref": "#/$defs/Style"}, "titleStyle": {"$ref": "#/$defs/Style"}, "padding": {"$ref": "#/$defs/Padding"}, "collapsible": {"type": "boolean"}, "collapsed": {"type": "boolean"}, "rail": {"$ref": "#/$defs/Color"}, "style": {"$ref": "#/$defs/Style"}, "child": {"$ref": "#/$defs/Node"}, "onToggle": {"$ref": "#/$defs/ActionId"}}, "required": ["t"]}]},
  "Paragraph": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "Paragraph"}, "text": {"$ref": "#/$defs/Text"}, "wrap": {"oneOf": [{"const": false}, {"type": "object", "properties": {"trim": {"type": "boolean"}}}]}, "scroll": {"type": "array", "items": {"type": "integer", "minimum": 0, "maximum": 65535}, "minItems": 2, "maxItems": 2}, "alignment": {"$ref": "#/$defs/Alignment"}, "scrollbar": {"type": "boolean"}}, "required": ["t", "text"]}]},
  "List": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "List"}, "items": {"type": "array", "items": {"$ref": "#/$defs/ListItem"}, "maxItems": 5000}, "state": {"$ref": "#/$defs/ListState"}, "highlightStyle": {"$ref": "#/$defs/Style"}, "highlightSymbol": {"type": "string"}, "repeatHighlightSymbol": {"type": "boolean"}, "highlightSpacing": {"enum": ["Always", "WhenSelected", "Never"]}, "direction": {"enum": ["TopToBottom", "BottomToTop"]}, "scrollPadding": {"type": "integer", "minimum": 0, "maximum": 65535}, "multi": {"type": "boolean"}, "scrollbar": {"type": "boolean"}, "onSelect": {"$ref": "#/$defs/ActionId"}, "onActivate": {"$ref": "#/$defs/ActionId"}}, "required": ["t", "items"]}]},
  "Table": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "Table"}, "header": {"$ref": "#/$defs/Row"}, "rows": {"type": "array", "items": {"$ref": "#/$defs/Row"}, "maxItems": 5000}, "footer": {"$ref": "#/$defs/Row"}, "widths": {"type": "array", "items": {"$ref": "#/$defs/Constraint"}}, "columnSpacing": {"type": "integer", "minimum": 0, "maximum": 65535}, "rowHighlightStyle": {"$ref": "#/$defs/Style"}, "highlightSymbol": {"type": "string"}, "highlightSpacing": {"enum": ["Always", "WhenSelected", "Never"]}, "state": {"$ref": "#/$defs/ListState"}, "sticky": {"enum": ["FirstColumn"]}, "scrollbar": {"type": "boolean"}, "onSelect": {"$ref": "#/$defs/ActionId"}, "onActivate": {"$ref": "#/$defs/ActionId"}}, "required": ["t", "rows", "widths"]}]},
  "Tabs": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "Tabs"}, "titles": {"type": "array", "items": {"type": "object", "properties": {"key": {"$ref": "#/$defs/Key"}, "title": {"$ref": "#/$defs/Line"}, "badge": {"$ref": "#/$defs/Line"}}, "required": ["key", "title"]}}, "selected": {"$ref": "#/$defs/Key"}, "divider": {"$ref": "#/$defs/Span"}, "padding": {"type": "array", "items": {"$ref": "#/$defs/Line"}, "minItems": 2, "maxItems": 2}, "highlightStyle": {"$ref": "#/$defs/Style"}, "panes": {"type": "object", "additionalProperties": {"$ref": "#/$defs/Node"}}, "onSelect": {"$ref": "#/$defs/ActionId"}}, "required": ["t", "titles"]}]},
  "Gauge": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "Gauge"}, "ratio": {"type": "number", "minimum": 0, "maximum": 1}, "percent": {"type": "integer", "minimum": 0, "maximum": 100}, "label": {"$ref": "#/$defs/Span"}, "gaugeStyle": {"$ref": "#/$defs/Style"}, "useUnicode": {"type": "boolean"}}, "required": ["t"]}]},
  "LineGauge": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "LineGauge"}, "ratio": {"type": "number", "minimum": 0, "maximum": 1}, "label": {"$ref": "#/$defs/Line"}, "filledStyle": {"$ref": "#/$defs/Style"}, "unfilledStyle": {"$ref": "#/$defs/Style"}, "lineSet": {"enum": ["Normal", "Thick", "Double"]}}, "required": ["t", "ratio"]}]},
  "Sparkline": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "Sparkline"}, "data": {"type": "array", "items": {"type": ["integer", "null"], "minimum": 0}, "maxItems": 1000}, "max": {"type": "integer", "minimum": 0}, "direction": {"enum": ["LeftToRight", "RightToLeft"]}, "barSet": {"enum": ["Nine", "Three"]}, "absentValueSymbol": {"type": "string"}}, "required": ["t", "data"]}]},
  "BarChart": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "BarChart"}, "data": {"type": "array", "items": {"$ref": "#/$defs/BarGroup"}}, "barWidth": {"type": "integer", "minimum": 0, "maximum": 65535}, "barGap": {"type": "integer", "minimum": 0, "maximum": 65535}, "groupGap": {"type": "integer", "minimum": 0, "maximum": 65535}, "direction": {"enum": ["Vertical", "Horizontal"]}, "max": {"type": "integer", "minimum": 0}, "barStyle": {"$ref": "#/$defs/Style"}, "valueStyle": {"$ref": "#/$defs/Style"}, "labelStyle": {"$ref": "#/$defs/Style"}, "onSelect": {"$ref": "#/$defs/ActionId"}}, "required": ["t", "data"]}]},
  "Chart": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "Chart"}, "datasets": {"type": "array", "items": {"$ref": "#/$defs/Dataset"}}, "xAxis": {"$ref": "#/$defs/Axis"}, "yAxis": {"$ref": "#/$defs/Axis"}, "legendPosition": {"enum": ["Top", "TopRight", "TopLeft", "Left", "Right", "Bottom", "BottomRight", "BottomLeft", null]}}, "required": ["t", "datasets", "xAxis", "yAxis"]}]},
  "Scrollbar": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "Scrollbar"}, "orientation": {"enum": ["VerticalRight", "VerticalLeft", "HorizontalBottom", "HorizontalTop"]}, "state": {"type": "object", "properties": {"contentLength": {"type": "integer", "minimum": 0, "maximum": 4294967295}, "position": {"type": "integer", "minimum": 0, "maximum": 4294967295}, "viewportContentLength": {"type": "integer", "minimum": 0, "maximum": 4294967295}}, "required": ["contentLength", "position"]}, "thumbStyle": {"$ref": "#/$defs/Style"}, "trackStyle": {"$ref": "#/$defs/Style"}, "beginSymbol": {"type": ["string", "null"]}, "endSymbol": {"type": ["string", "null"]}}, "required": ["t", "state"]}]},
  "Markdown": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "Markdown"}, "source": {"type": "string", "maxLength": 262144}}, "required": ["t", "source"]}]},
  "Code": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "Code"}, "source": {"type": "string"}, "language": {"type": "string"}, "lineNumbers": {"type": "boolean"}, "startLine": {"type": "integer", "minimum": 0, "maximum": 4294967295}, "highlightLines": {"type": "array", "items": {"type": "integer", "minimum": 0, "maximum": 4294967295}}, "wrap": {"type": "boolean"}}, "required": ["t", "source"]}]},
  "Diff": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "Diff"}, "patch": {"type": "string"}, "old": {"type": "string"}, "new": {"type": "string"}, "path": {"type": "string"}, "context": {"type": "integer", "minimum": 0, "maximum": 65535}, "mode": {"enum": ["Unified", "Split"]}}, "required": ["t"]}, {"anyOf": [{"required": ["patch"]}, {"required": ["old", "new"]}]}]},
  "Image": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "Image"}, "src": {"$ref": "#/$defs/ImageSource"}, "alt": {"type": "string"}, "fit": {"enum": ["Contain", "Cover"]}, "maxWidth": {"type": "integer", "minimum": 0, "maximum": 65535}, "maxHeight": {"type": "integer", "minimum": 0, "maximum": 65535}}, "required": ["t", "src", "alt"]}]},
  "Log": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "Log"}, "lines": {"type": "array", "items": {"$ref": "#/$defs/Line"}, "maxItems": 5000}, "maxLines": {"type": "integer", "minimum": 1, "maximum": 5000}, "follow": {"type": "boolean"}, "wrap": {"type": "boolean"}, "lineNumbers": {"type": "boolean"}}, "required": ["t", "lines"]}]},
  "Tree": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "Tree"}, "nodes": {"type": "array", "items": {"$ref": "#/$defs/TreeNode"}}, "state": {"type": "object", "properties": {"selected": {"$ref": "#/$defs/Key"}}}, "onSelect": {"$ref": "#/$defs/ActionId"}, "onActivate": {"$ref": "#/$defs/ActionId"}, "onToggle": {"$ref": "#/$defs/ActionId"}}, "required": ["t", "nodes"]}]},
  "KeyHints": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "KeyHints"}, "hints": {"type": "array", "items": {"$ref": "#/$defs/Hint"}}}, "required": ["t", "hints"]}]},
  "Input": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "Input"}, "value": {"type": "string"}, "placeholder": {"type": "string"}, "label": {"$ref": "#/$defs/Line"}, "multiline": {"type": "boolean"}, "rows": {"type": "integer", "minimum": 0, "maximum": 65535}, "secret": {"type": "boolean"}, "maxLength": {"type": "integer", "minimum": 0, "maximum": 4294967295}, "disabled": {"type": "boolean"}, "onSubmit": {"$ref": "#/$defs/ActionId"}, "onChange": {"$ref": "#/$defs/ActionId"}}, "required": ["t", "key"]}]},
  "Toggle": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "Toggle"}, "label": {"$ref": "#/$defs/Line"}, "value": {"type": "boolean"}, "disabled": {"type": "boolean"}, "onChange": {"$ref": "#/$defs/ActionId"}}, "required": ["t", "key", "label", "value"]}]},
  "Select": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "Select"}, "options": {"type": "array", "items": {"$ref": "#/$defs/Option"}}, "value": {"type": "string"}, "placeholder": {"type": "string"}, "disabled": {"type": "boolean"}, "onChange": {"$ref": "#/$defs/ActionId"}}, "required": ["t", "key", "options"]}]},
  "Button": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "Button"}, "label": {"$ref": "#/$defs/Line"}, "action": {"$ref": "#/$defs/ActionId"}, "value": {}, "variant": {"enum": ["Primary", "Secondary", "Ghost", "Danger"]}, "icon": {"$ref": "#/$defs/Icon"}, "disabled": {"type": "boolean"}, "confirm": {"type": "string"}}, "required": ["t", "label", "action"]}]},
  "Spinner": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "Spinner"}, "label": {"$ref": "#/$defs/Line"}}, "required": ["t"]}]},
  "Empty": {"allOf": [{"$ref": "#/$defs/Common"}, {"type": "object", "properties": {"t": {"const": "Empty"}, "title": {"type": "string"}, "message": {"type": "string"}, "icon": {"$ref": "#/$defs/Icon"}, "action": {"$ref": "#/$defs/Button"}}, "required": ["t"]}]},
  "Node": {"type": "object", "required": ["t"], "oneOf": [{"$ref": "#/$defs/Layout"}, {"$ref": "#/$defs/Block"}, {"$ref": "#/$defs/Paragraph"}, {"$ref": "#/$defs/List"}, {"$ref": "#/$defs/Table"}, {"$ref": "#/$defs/Tabs"}, {"$ref": "#/$defs/Gauge"}, {"$ref": "#/$defs/LineGauge"}, {"$ref": "#/$defs/Sparkline"}, {"$ref": "#/$defs/BarChart"}, {"$ref": "#/$defs/Chart"}, {"$ref": "#/$defs/Scrollbar"}, {"$ref": "#/$defs/Markdown"}, {"$ref": "#/$defs/Code"}, {"$ref": "#/$defs/Diff"}, {"$ref": "#/$defs/Image"}, {"$ref": "#/$defs/Log"}, {"$ref": "#/$defs/Tree"}, {"$ref": "#/$defs/KeyHints"}, {"$ref": "#/$defs/Input"}, {"$ref": "#/$defs/Toggle"}, {"$ref": "#/$defs/Select"}, {"$ref": "#/$defs/Button"}, {"$ref": "#/$defs/Spinner"}, {"$ref": "#/$defs/Empty"}]}
 }
}