{
  "openapi": "3.0.0",
  "info": {
    "title": "MolViewSpec Node Schema OpenAPI",
    "version": "1.2"
  },
  "paths": {},
  "components": {
    "schemas": {
      "AngleMeasurementParams": {
        "title": "AngleMeasurementParams",
        "type": "object",
        "properties": {
          "start": {
            "title": "Start",
            "description": "Start of this tube.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "$ref": "#/definitions/PrimitiveComponentExpressions"
              }
            ]
          },
          "end": {
            "title": "End",
            "description": "End of this tube.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "$ref": "#/definitions/PrimitiveComponentExpressions"
              }
            ]
          },
          "radius": {
            "title": "Radius",
            "description": "Tube radius (in Angstroms).",
            "type": "number"
          },
          "dash_length": {
            "title": "Dash Length",
            "description": "Length of each dash.",
            "type": "number"
          },
          "color": {
            "title": "Color",
            "description": "Color of the tube. If not specified, the primitives group color is used.",
            "anyOf": [
              {
                "enum": [
                  "aliceblue",
                  "antiquewhite",
                  "aqua",
                  "aquamarine",
                  "azure",
                  "beige",
                  "bisque",
                  "black",
                  "blanchedalmond",
                  "blue",
                  "blueviolet",
                  "brown",
                  "burlywood",
                  "cadetblue",
                  "chartreuse",
                  "chocolate",
                  "coral",
                  "cornflowerblue",
                  "cornsilk",
                  "crimson",
                  "cyan",
                  "darkblue",
                  "darkcyan",
                  "darkgoldenrod",
                  "darkgray",
                  "darkgreen",
                  "darkgrey",
                  "darkkhaki",
                  "darkmagenta",
                  "darkolivegreen",
                  "darkorange",
                  "darkorchid",
                  "darkred",
                  "darksalmon",
                  "darkseagreen",
                  "darkslateblue",
                  "darkslategray",
                  "darkslategrey",
                  "darkturquoise",
                  "darkviolet",
                  "deeppink",
                  "deepskyblue",
                  "dimgray",
                  "dimgrey",
                  "dodgerblue",
                  "firebrick",
                  "floralwhite",
                  "forestgreen",
                  "fuchsia",
                  "gainsboro",
                  "ghostwhite",
                  "gold",
                  "goldenrod",
                  "gray",
                  "green",
                  "greenyellow",
                  "grey",
                  "honeydew",
                  "hotpink",
                  "indianred",
                  "indigo",
                  "ivory",
                  "khaki",
                  "lavender",
                  "lavenderblush",
                  "lawngreen",
                  "lemonchiffon",
                  "lightblue",
                  "lightcoral",
                  "lightcyan",
                  "lightgoldenrodyellow",
                  "lightgray",
                  "lightgreen",
                  "lightgrey",
                  "lightpink",
                  "lightsalmon",
                  "lightseagreen",
                  "lightskyblue",
                  "lightslategray",
                  "lightslategrey",
                  "lightsteelblue",
                  "lightyellow",
                  "lime",
                  "limegreen",
                  "linen",
                  "magenta",
                  "maroon",
                  "mediumaquamarine",
                  "mediumblue",
                  "mediumorchid",
                  "mediumpurple",
                  "mediumseagreen",
                  "mediumslateblue",
                  "mediumspringgreen",
                  "mediumturquoise",
                  "mediumvioletred",
                  "midnightblue",
                  "mintcream",
                  "mistyrose",
                  "moccasin",
                  "navajowhite",
                  "navy",
                  "oldlace",
                  "olive",
                  "olivedrab",
                  "orange",
                  "orangered",
                  "orchid",
                  "palegoldenrod",
                  "palegreen",
                  "paleturquoise",
                  "palevioletred",
                  "papayawhip",
                  "peachpuff",
                  "peru",
                  "pink",
                  "plum",
                  "powderblue",
                  "purple",
                  "red",
                  "rosybrown",
                  "royalblue",
                  "saddlebrown",
                  "salmon",
                  "sandybrown",
                  "seagreen",
                  "seashell",
                  "sienna",
                  "silver",
                  "skyblue",
                  "slateblue",
                  "slategray",
                  "slategrey",
                  "snow",
                  "springgreen",
                  "steelblue",
                  "tan",
                  "teal",
                  "thistle",
                  "tomato",
                  "turquoise",
                  "violet",
                  "wheat",
                  "white",
                  "whitesmoke",
                  "yellow",
                  "yellowgreen"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          },
          "kind": {
            "title": "Kind",
            "default": "angle_measurement",
            "enum": [
              "angle_measurement"
            ],
            "type": "string"
          },
          "a": {
            "title": "A",
            "description": "Point A.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "$ref": "#/definitions/PrimitiveComponentExpressions"
              }
            ]
          },
          "b": {
            "title": "B",
            "description": "Point B.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "$ref": "#/definitions/PrimitiveComponentExpressions"
              }
            ]
          },
          "c": {
            "title": "C",
            "description": "Point C.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "$ref": "#/definitions/PrimitiveComponentExpressions"
              }
            ]
          },
          "label_template": {
            "title": "Label Template",
            "description": "Template used to construct the label. Use {{angle}} as placeholder for the value.",
            "type": "string"
          },
          "label_size": {
            "title": "Label Size",
            "description": "Size of the label. Auto scales it by the average magnitude of (b - a) and (c - b).",
            "anyOf": [
              {
                "type": "number"
              },
              {
                "enum": [
                  "auto"
                ],
                "type": "string"
              }
            ]
          },
          "label_auto_size_scale": {
            "title": "Label Auto Size Scale",
            "description": "Scaling factor for auto size.",
            "type": "number"
          },
          "label_auto_size_min": {
            "title": "Label Auto Size Min",
            "description": "Minimum size for auto size.",
            "type": "number"
          },
          "label_color": {
            "title": "Label Color",
            "description": "Color of the label.",
            "anyOf": [
              {
                "enum": [
                  "aliceblue",
                  "antiquewhite",
                  "aqua",
                  "aquamarine",
                  "azure",
                  "beige",
                  "bisque",
                  "black",
                  "blanchedalmond",
                  "blue",
                  "blueviolet",
                  "brown",
                  "burlywood",
                  "cadetblue",
                  "chartreuse",
                  "chocolate",
                  "coral",
                  "cornflowerblue",
                  "cornsilk",
                  "crimson",
                  "cyan",
                  "darkblue",
                  "darkcyan",
                  "darkgoldenrod",
                  "darkgray",
                  "darkgreen",
                  "darkgrey",
                  "darkkhaki",
                  "darkmagenta",
                  "darkolivegreen",
                  "darkorange",
                  "darkorchid",
                  "darkred",
                  "darksalmon",
                  "darkseagreen",
                  "darkslateblue",
                  "darkslategray",
                  "darkslategrey",
                  "darkturquoise",
                  "darkviolet",
                  "deeppink",
                  "deepskyblue",
                  "dimgray",
                  "dimgrey",
                  "dodgerblue",
                  "firebrick",
                  "floralwhite",
                  "forestgreen",
                  "fuchsia",
                  "gainsboro",
                  "ghostwhite",
                  "gold",
                  "goldenrod",
                  "gray",
                  "green",
                  "greenyellow",
                  "grey",
                  "honeydew",
                  "hotpink",
                  "indianred",
                  "indigo",
                  "ivory",
                  "khaki",
                  "lavender",
                  "lavenderblush",
                  "lawngreen",
                  "lemonchiffon",
                  "lightblue",
                  "lightcoral",
                  "lightcyan",
                  "lightgoldenrodyellow",
                  "lightgray",
                  "lightgreen",
                  "lightgrey",
                  "lightpink",
                  "lightsalmon",
                  "lightseagreen",
                  "lightskyblue",
                  "lightslategray",
                  "lightslategrey",
                  "lightsteelblue",
                  "lightyellow",
                  "lime",
                  "limegreen",
                  "linen",
                  "magenta",
                  "maroon",
                  "mediumaquamarine",
                  "mediumblue",
                  "mediumorchid",
                  "mediumpurple",
                  "mediumseagreen",
                  "mediumslateblue",
                  "mediumspringgreen",
                  "mediumturquoise",
                  "mediumvioletred",
                  "midnightblue",
                  "mintcream",
                  "mistyrose",
                  "moccasin",
                  "navajowhite",
                  "navy",
                  "oldlace",
                  "olive",
                  "olivedrab",
                  "orange",
                  "orangered",
                  "orchid",
                  "palegoldenrod",
                  "palegreen",
                  "paleturquoise",
                  "palevioletred",
                  "papayawhip",
                  "peachpuff",
                  "peru",
                  "pink",
                  "plum",
                  "powderblue",
                  "purple",
                  "red",
                  "rosybrown",
                  "royalblue",
                  "saddlebrown",
                  "salmon",
                  "sandybrown",
                  "seagreen",
                  "seashell",
                  "sienna",
                  "silver",
                  "skyblue",
                  "slateblue",
                  "slategray",
                  "slategrey",
                  "snow",
                  "springgreen",
                  "steelblue",
                  "tan",
                  "teal",
                  "thistle",
                  "tomato",
                  "turquoise",
                  "violet",
                  "wheat",
                  "white",
                  "whitesmoke",
                  "yellow",
                  "yellowgreen"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          },
          "show_vector": {
            "title": "Show Vector",
            "description": "Draw vectors between (a, b) and (b, c).",
            "type": "boolean"
          },
          "vector_color": {
            "title": "Vector Color",
            "description": "Color of the vectors.",
            "anyOf": [
              {
                "enum": [
                  "aliceblue",
                  "antiquewhite",
                  "aqua",
                  "aquamarine",
                  "azure",
                  "beige",
                  "bisque",
                  "black",
                  "blanchedalmond",
                  "blue",
                  "blueviolet",
                  "brown",
                  "burlywood",
                  "cadetblue",
                  "chartreuse",
                  "chocolate",
                  "coral",
                  "cornflowerblue",
                  "cornsilk",
                  "crimson",
                  "cyan",
                  "darkblue",
                  "darkcyan",
                  "darkgoldenrod",
                  "darkgray",
                  "darkgreen",
                  "darkgrey",
                  "darkkhaki",
                  "darkmagenta",
                  "darkolivegreen",
                  "darkorange",
                  "darkorchid",
                  "darkred",
                  "darksalmon",
                  "darkseagreen",
                  "darkslateblue",
                  "darkslategray",
                  "darkslategrey",
                  "darkturquoise",
                  "darkviolet",
                  "deeppink",
                  "deepskyblue",
                  "dimgray",
                  "dimgrey",
                  "dodgerblue",
                  "firebrick",
                  "floralwhite",
                  "forestgreen",
                  "fuchsia",
                  "gainsboro",
                  "ghostwhite",
                  "gold",
                  "goldenrod",
                  "gray",
                  "green",
                  "greenyellow",
                  "grey",
                  "honeydew",
                  "hotpink",
                  "indianred",
                  "indigo",
                  "ivory",
                  "khaki",
                  "lavender",
                  "lavenderblush",
                  "lawngreen",
                  "lemonchiffon",
                  "lightblue",
                  "lightcoral",
                  "lightcyan",
                  "lightgoldenrodyellow",
                  "lightgray",
                  "lightgreen",
                  "lightgrey",
                  "lightpink",
                  "lightsalmon",
                  "lightseagreen",
                  "lightskyblue",
                  "lightslategray",
                  "lightslategrey",
                  "lightsteelblue",
                  "lightyellow",
                  "lime",
                  "limegreen",
                  "linen",
                  "magenta",
                  "maroon",
                  "mediumaquamarine",
                  "mediumblue",
                  "mediumorchid",
                  "mediumpurple",
                  "mediumseagreen",
                  "mediumslateblue",
                  "mediumspringgreen",
                  "mediumturquoise",
                  "mediumvioletred",
                  "midnightblue",
                  "mintcream",
                  "mistyrose",
                  "moccasin",
                  "navajowhite",
                  "navy",
                  "oldlace",
                  "olive",
                  "olivedrab",
                  "orange",
                  "orangered",
                  "orchid",
                  "palegoldenrod",
                  "palegreen",
                  "paleturquoise",
                  "palevioletred",
                  "papayawhip",
                  "peachpuff",
                  "peru",
                  "pink",
                  "plum",
                  "powderblue",
                  "purple",
                  "red",
                  "rosybrown",
                  "royalblue",
                  "saddlebrown",
                  "salmon",
                  "sandybrown",
                  "seagreen",
                  "seashell",
                  "sienna",
                  "silver",
                  "skyblue",
                  "slateblue",
                  "slategray",
                  "slategrey",
                  "snow",
                  "springgreen",
                  "steelblue",
                  "tan",
                  "teal",
                  "thistle",
                  "tomato",
                  "turquoise",
                  "violet",
                  "wheat",
                  "white",
                  "whitesmoke",
                  "yellow",
                  "yellowgreen"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          },
          "show_section": {
            "title": "Show Section",
            "description": "Draw a filled circle section representing the angle.",
            "type": "boolean"
          },
          "section_color": {
            "title": "Section Color",
            "description": "Color of the angle section. If not specified, the primitives group color is used.",
            "anyOf": [
              {
                "enum": [
                  "aliceblue",
                  "antiquewhite",
                  "aqua",
                  "aquamarine",
                  "azure",
                  "beige",
                  "bisque",
                  "black",
                  "blanchedalmond",
                  "blue",
                  "blueviolet",
                  "brown",
                  "burlywood",
                  "cadetblue",
                  "chartreuse",
                  "chocolate",
                  "coral",
                  "cornflowerblue",
                  "cornsilk",
                  "crimson",
                  "cyan",
                  "darkblue",
                  "darkcyan",
                  "darkgoldenrod",
                  "darkgray",
                  "darkgreen",
                  "darkgrey",
                  "darkkhaki",
                  "darkmagenta",
                  "darkolivegreen",
                  "darkorange",
                  "darkorchid",
                  "darkred",
                  "darksalmon",
                  "darkseagreen",
                  "darkslateblue",
                  "darkslategray",
                  "darkslategrey",
                  "darkturquoise",
                  "darkviolet",
                  "deeppink",
                  "deepskyblue",
                  "dimgray",
                  "dimgrey",
                  "dodgerblue",
                  "firebrick",
                  "floralwhite",
                  "forestgreen",
                  "fuchsia",
                  "gainsboro",
                  "ghostwhite",
                  "gold",
                  "goldenrod",
                  "gray",
                  "green",
                  "greenyellow",
                  "grey",
                  "honeydew",
                  "hotpink",
                  "indianred",
                  "indigo",
                  "ivory",
                  "khaki",
                  "lavender",
                  "lavenderblush",
                  "lawngreen",
                  "lemonchiffon",
                  "lightblue",
                  "lightcoral",
                  "lightcyan",
                  "lightgoldenrodyellow",
                  "lightgray",
                  "lightgreen",
                  "lightgrey",
                  "lightpink",
                  "lightsalmon",
                  "lightseagreen",
                  "lightskyblue",
                  "lightslategray",
                  "lightslategrey",
                  "lightsteelblue",
                  "lightyellow",
                  "lime",
                  "limegreen",
                  "linen",
                  "magenta",
                  "maroon",
                  "mediumaquamarine",
                  "mediumblue",
                  "mediumorchid",
                  "mediumpurple",
                  "mediumseagreen",
                  "mediumslateblue",
                  "mediumspringgreen",
                  "mediumturquoise",
                  "mediumvioletred",
                  "midnightblue",
                  "mintcream",
                  "mistyrose",
                  "moccasin",
                  "navajowhite",
                  "navy",
                  "oldlace",
                  "olive",
                  "olivedrab",
                  "orange",
                  "orangered",
                  "orchid",
                  "palegoldenrod",
                  "palegreen",
                  "paleturquoise",
                  "palevioletred",
                  "papayawhip",
                  "peachpuff",
                  "peru",
                  "pink",
                  "plum",
                  "powderblue",
                  "purple",
                  "red",
                  "rosybrown",
                  "royalblue",
                  "saddlebrown",
                  "salmon",
                  "sandybrown",
                  "seagreen",
                  "seashell",
                  "sienna",
                  "silver",
                  "skyblue",
                  "slateblue",
                  "slategray",
                  "slategrey",
                  "snow",
                  "springgreen",
                  "steelblue",
                  "tan",
                  "teal",
                  "thistle",
                  "tomato",
                  "turquoise",
                  "violet",
                  "wheat",
                  "white",
                  "whitesmoke",
                  "yellow",
                  "yellowgreen"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          },
          "section_radius": {
            "title": "Section Radius",
            "description": "Radius of the angle section. In angstroms.",
            "type": "number"
          },
          "section_radius_scale": {
            "title": "Section Radius Scale",
            "description": "Factor to scale the radius of the angle section. Ignored if section_radius is set.",
            "type": "number"
          }
        },
        "required": [
          "start",
          "end",
          "a",
          "b",
          "c"
        ],
        "definitions": {
          "ComponentExpression": {
            "title": "ComponentExpression",
            "description": "Component expressions are used to make selections.",
            "type": "object",
            "properties": {
              "label_entity_id": {
                "title": "Label Entity Id",
                "description": "Select an entity by its identifier",
                "type": "string"
              },
              "label_asym_id": {
                "title": "Label Asym Id",
                "description": "Select a chain using its standard, programmatically-assigned identifier",
                "type": "string"
              },
              "auth_asym_id": {
                "title": "Auth Asym Id",
                "description": "Select a chain using its legacy, author-assigned identifier",
                "type": "string"
              },
              "label_seq_id": {
                "title": "Label Seq Id",
                "description": "Select a residue by its standard, programmatically-assigned sequence position",
                "type": "integer"
              },
              "auth_seq_id": {
                "title": "Auth Seq Id",
                "description": "Select a residue by its legacy, author-assigned sequence position",
                "type": "integer"
              },
              "pdbx_PDB_ins_code": {
                "title": "Pdbx Pdb Ins Code",
                "description": "Optional legacy insertion code, only relevant for `auth_seq_id`",
                "type": "string"
              },
              "beg_label_seq_id": {
                "title": "Beg Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_label_seq_id`.",
                "type": "integer"
              },
              "end_label_seq_id": {
                "title": "End Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_label_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "beg_auth_seq_id": {
                "title": "Beg Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_auth_seq_id`.",
                "type": "integer"
              },
              "end_auth_seq_id": {
                "title": "End Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_auth_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "residue_index": {
                "title": "Residue Index",
                "description": "0-based residue index in the source file",
                "type": "integer"
              },
              "label_atom_id": {
                "title": "Label Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.label_atom_id`)",
                "type": "string"
              },
              "auth_atom_id": {
                "title": "Auth Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.auth_atom_id`)",
                "type": "string"
              },
              "type_symbol": {
                "title": "Type Symbol",
                "description": "Element symbol like 'H', 'HE', 'LI', 'BE' (`_atom_site.type_symbol`)",
                "type": "string"
              },
              "atom_id": {
                "title": "Atom Id",
                "description": "Unique atom identifier (`_atom_site.id`)",
                "type": "integer"
              },
              "atom_index": {
                "title": "Atom Index",
                "description": "0-based atom index in the source file",
                "type": "integer"
              }
            }
          },
          "PrimitiveComponentExpressions": {
            "title": "PrimitiveComponentExpressions",
            "type": "object",
            "properties": {
              "structure_ref": {
                "title": "Structure Ref",
                "description": "Reference to a structure node to apply this expresion to. If undefined, get the structure implicitly from the tree.",
                "type": "string"
              },
              "expression_schema": {
                "title": "Expression Schema",
                "description": "Schema the expressions follow, used for optimization of structure query resolution.",
                "enum": [
                  "whole_structure",
                  "entity",
                  "chain",
                  "auth_chain",
                  "residue",
                  "auth_residue",
                  "residue_range",
                  "auth_residue_range",
                  "atom",
                  "auth_atom",
                  "all_atomic"
                ],
                "type": "string"
              },
              "expressions": {
                "title": "Expressions",
                "description": "Expression refencing elements froms the structure_ref.",
                "type": "array",
                "items": {
                  "$ref": "#/definitions/ComponentExpression"
                }
              }
            },
            "required": [
              "expressions"
            ]
          }
        }
      },
      "ArrowParams": {
        "title": "ArrowParams",
        "type": "object",
        "properties": {
          "kind": {
            "title": "Kind",
            "default": "arrow",
            "enum": [
              "arrow"
            ],
            "type": "string"
          },
          "start": {
            "title": "Start",
            "description": "Start of this arrow.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "$ref": "#/definitions/PrimitiveComponentExpressions"
              }
            ]
          },
          "end": {
            "title": "End",
            "description": "End of this arrow.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "$ref": "#/definitions/PrimitiveComponentExpressions"
              }
            ]
          },
          "direction": {
            "title": "Direction",
            "description": "If specified, the endpoint is computed as start + direction.",
            "type": "array",
            "minItems": 3,
            "maxItems": 3,
            "items": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            ]
          },
          "length": {
            "title": "Length",
            "description": "Length of the arrow. If unset, the distance between start and end is used.",
            "type": "number"
          },
          "show_start_cap": {
            "title": "Show Start Cap",
            "description": "Draw a cap at the start of the arrow.",
            "type": "boolean"
          },
          "start_cap_length": {
            "title": "Start Cap Length",
            "description": "Length of the start cap.",
            "type": "number"
          },
          "start_cap_radius": {
            "title": "Start Cap Radius",
            "description": "Radius of the start cap.",
            "type": "number"
          },
          "show_end_cap": {
            "title": "Show End Cap",
            "description": "Draw a cap at the end of the arrow.",
            "type": "boolean"
          },
          "end_cap_length": {
            "title": "End Cap Length",
            "description": "Length of the end cap.",
            "type": "number"
          },
          "end_cap_radius": {
            "title": "End Cap Radius",
            "description": "Radius of the end cap.",
            "type": "number"
          },
          "show_tube": {
            "title": "Show Tube",
            "description": "Draw a tube between the start and end of the arrow.",
            "type": "boolean"
          },
          "tube_radius": {
            "title": "Tube Radius",
            "description": "Tube radius (in Angstroms).",
            "type": "number"
          },
          "tube_dash_length": {
            "title": "Tube Dash Length",
            "description": "Length of each dash.",
            "type": "number"
          },
          "color": {
            "title": "Color",
            "description": "Color of the arrow. If not specified, the primitives group color is used.",
            "anyOf": [
              {
                "enum": [
                  "aliceblue",
                  "antiquewhite",
                  "aqua",
                  "aquamarine",
                  "azure",
                  "beige",
                  "bisque",
                  "black",
                  "blanchedalmond",
                  "blue",
                  "blueviolet",
                  "brown",
                  "burlywood",
                  "cadetblue",
                  "chartreuse",
                  "chocolate",
                  "coral",
                  "cornflowerblue",
                  "cornsilk",
                  "crimson",
                  "cyan",
                  "darkblue",
                  "darkcyan",
                  "darkgoldenrod",
                  "darkgray",
                  "darkgreen",
                  "darkgrey",
                  "darkkhaki",
                  "darkmagenta",
                  "darkolivegreen",
                  "darkorange",
                  "darkorchid",
                  "darkred",
                  "darksalmon",
                  "darkseagreen",
                  "darkslateblue",
                  "darkslategray",
                  "darkslategrey",
                  "darkturquoise",
                  "darkviolet",
                  "deeppink",
                  "deepskyblue",
                  "dimgray",
                  "dimgrey",
                  "dodgerblue",
                  "firebrick",
                  "floralwhite",
                  "forestgreen",
                  "fuchsia",
                  "gainsboro",
                  "ghostwhite",
                  "gold",
                  "goldenrod",
                  "gray",
                  "green",
                  "greenyellow",
                  "grey",
                  "honeydew",
                  "hotpink",
                  "indianred",
                  "indigo",
                  "ivory",
                  "khaki",
                  "lavender",
                  "lavenderblush",
                  "lawngreen",
                  "lemonchiffon",
                  "lightblue",
                  "lightcoral",
                  "lightcyan",
                  "lightgoldenrodyellow",
                  "lightgray",
                  "lightgreen",
                  "lightgrey",
                  "lightpink",
                  "lightsalmon",
                  "lightseagreen",
                  "lightskyblue",
                  "lightslategray",
                  "lightslategrey",
                  "lightsteelblue",
                  "lightyellow",
                  "lime",
                  "limegreen",
                  "linen",
                  "magenta",
                  "maroon",
                  "mediumaquamarine",
                  "mediumblue",
                  "mediumorchid",
                  "mediumpurple",
                  "mediumseagreen",
                  "mediumslateblue",
                  "mediumspringgreen",
                  "mediumturquoise",
                  "mediumvioletred",
                  "midnightblue",
                  "mintcream",
                  "mistyrose",
                  "moccasin",
                  "navajowhite",
                  "navy",
                  "oldlace",
                  "olive",
                  "olivedrab",
                  "orange",
                  "orangered",
                  "orchid",
                  "palegoldenrod",
                  "palegreen",
                  "paleturquoise",
                  "palevioletred",
                  "papayawhip",
                  "peachpuff",
                  "peru",
                  "pink",
                  "plum",
                  "powderblue",
                  "purple",
                  "red",
                  "rosybrown",
                  "royalblue",
                  "saddlebrown",
                  "salmon",
                  "sandybrown",
                  "seagreen",
                  "seashell",
                  "sienna",
                  "silver",
                  "skyblue",
                  "slateblue",
                  "slategray",
                  "slategrey",
                  "snow",
                  "springgreen",
                  "steelblue",
                  "tan",
                  "teal",
                  "thistle",
                  "tomato",
                  "turquoise",
                  "violet",
                  "wheat",
                  "white",
                  "whitesmoke",
                  "yellow",
                  "yellowgreen"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          },
          "tooltip": {
            "title": "Tooltip",
            "description": "Tooltip to show when hovering on the arrow.",
            "type": "string"
          }
        },
        "required": [
          "start"
        ],
        "definitions": {
          "ComponentExpression": {
            "title": "ComponentExpression",
            "description": "Component expressions are used to make selections.",
            "type": "object",
            "properties": {
              "label_entity_id": {
                "title": "Label Entity Id",
                "description": "Select an entity by its identifier",
                "type": "string"
              },
              "label_asym_id": {
                "title": "Label Asym Id",
                "description": "Select a chain using its standard, programmatically-assigned identifier",
                "type": "string"
              },
              "auth_asym_id": {
                "title": "Auth Asym Id",
                "description": "Select a chain using its legacy, author-assigned identifier",
                "type": "string"
              },
              "label_seq_id": {
                "title": "Label Seq Id",
                "description": "Select a residue by its standard, programmatically-assigned sequence position",
                "type": "integer"
              },
              "auth_seq_id": {
                "title": "Auth Seq Id",
                "description": "Select a residue by its legacy, author-assigned sequence position",
                "type": "integer"
              },
              "pdbx_PDB_ins_code": {
                "title": "Pdbx Pdb Ins Code",
                "description": "Optional legacy insertion code, only relevant for `auth_seq_id`",
                "type": "string"
              },
              "beg_label_seq_id": {
                "title": "Beg Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_label_seq_id`.",
                "type": "integer"
              },
              "end_label_seq_id": {
                "title": "End Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_label_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "beg_auth_seq_id": {
                "title": "Beg Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_auth_seq_id`.",
                "type": "integer"
              },
              "end_auth_seq_id": {
                "title": "End Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_auth_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "residue_index": {
                "title": "Residue Index",
                "description": "0-based residue index in the source file",
                "type": "integer"
              },
              "label_atom_id": {
                "title": "Label Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.label_atom_id`)",
                "type": "string"
              },
              "auth_atom_id": {
                "title": "Auth Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.auth_atom_id`)",
                "type": "string"
              },
              "type_symbol": {
                "title": "Type Symbol",
                "description": "Element symbol like 'H', 'HE', 'LI', 'BE' (`_atom_site.type_symbol`)",
                "type": "string"
              },
              "atom_id": {
                "title": "Atom Id",
                "description": "Unique atom identifier (`_atom_site.id`)",
                "type": "integer"
              },
              "atom_index": {
                "title": "Atom Index",
                "description": "0-based atom index in the source file",
                "type": "integer"
              }
            }
          },
          "PrimitiveComponentExpressions": {
            "title": "PrimitiveComponentExpressions",
            "type": "object",
            "properties": {
              "structure_ref": {
                "title": "Structure Ref",
                "description": "Reference to a structure node to apply this expresion to. If undefined, get the structure implicitly from the tree.",
                "type": "string"
              },
              "expression_schema": {
                "title": "Expression Schema",
                "description": "Schema the expressions follow, used for optimization of structure query resolution.",
                "enum": [
                  "whole_structure",
                  "entity",
                  "chain",
                  "auth_chain",
                  "residue",
                  "auth_residue",
                  "residue_range",
                  "auth_residue_range",
                  "atom",
                  "auth_atom",
                  "all_atomic"
                ],
                "type": "string"
              },
              "expressions": {
                "title": "Expressions",
                "description": "Expression refencing elements froms the structure_ref.",
                "type": "array",
                "items": {
                  "$ref": "#/definitions/ComponentExpression"
                }
              }
            },
            "required": [
              "expressions"
            ]
          }
        }
      },
      "BallAndStickParams": {
        "title": "BallAndStickParams",
        "description": "Representation node, describing how to represent a component.",
        "type": "object",
        "properties": {
          "type": {
            "title": "Type",
            "default": "ball_and_stick",
            "enum": [
              "ball_and_stick"
            ],
            "type": "string"
          },
          "ignore_hydrogens": {
            "title": "Ignore Hydrogens",
            "descripton": "Controls whether hydrogen atoms are drawn.",
            "type": "boolean"
          },
          "size_factor": {
            "title": "Size Factor",
            "description": "Scales the corresponding visuals.",
            "type": "number"
          }
        }
      },
      "BoxParams": {
        "title": "BoxParams",
        "type": "object",
        "properties": {
          "kind": {
            "title": "Kind",
            "default": "box",
            "enum": [
              "box"
            ],
            "type": "string"
          },
          "center": {
            "title": "Center",
            "description": "The center of the box.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "$ref": "#/definitions/PrimitiveComponentExpressions"
              }
            ]
          },
          "extent": {
            "title": "Extent",
            "description": "The width, the height, and the depth of the box. Added to the bounding box determined by the center.",
            "type": "array",
            "minItems": 3,
            "maxItems": 3,
            "items": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            ]
          },
          "show_faces": {
            "title": "Show Faces",
            "description": "Determine whether to render the faces of the box.",
            "default": true,
            "type": "boolean"
          },
          "face_color": {
            "title": "Face Color",
            "description": "Color of the box faces.",
            "anyOf": [
              {
                "enum": [
                  "aliceblue",
                  "antiquewhite",
                  "aqua",
                  "aquamarine",
                  "azure",
                  "beige",
                  "bisque",
                  "black",
                  "blanchedalmond",
                  "blue",
                  "blueviolet",
                  "brown",
                  "burlywood",
                  "cadetblue",
                  "chartreuse",
                  "chocolate",
                  "coral",
                  "cornflowerblue",
                  "cornsilk",
                  "crimson",
                  "cyan",
                  "darkblue",
                  "darkcyan",
                  "darkgoldenrod",
                  "darkgray",
                  "darkgreen",
                  "darkgrey",
                  "darkkhaki",
                  "darkmagenta",
                  "darkolivegreen",
                  "darkorange",
                  "darkorchid",
                  "darkred",
                  "darksalmon",
                  "darkseagreen",
                  "darkslateblue",
                  "darkslategray",
                  "darkslategrey",
                  "darkturquoise",
                  "darkviolet",
                  "deeppink",
                  "deepskyblue",
                  "dimgray",
                  "dimgrey",
                  "dodgerblue",
                  "firebrick",
                  "floralwhite",
                  "forestgreen",
                  "fuchsia",
                  "gainsboro",
                  "ghostwhite",
                  "gold",
                  "goldenrod",
                  "gray",
                  "green",
                  "greenyellow",
                  "grey",
                  "honeydew",
                  "hotpink",
                  "indianred",
                  "indigo",
                  "ivory",
                  "khaki",
                  "lavender",
                  "lavenderblush",
                  "lawngreen",
                  "lemonchiffon",
                  "lightblue",
                  "lightcoral",
                  "lightcyan",
                  "lightgoldenrodyellow",
                  "lightgray",
                  "lightgreen",
                  "lightgrey",
                  "lightpink",
                  "lightsalmon",
                  "lightseagreen",
                  "lightskyblue",
                  "lightslategray",
                  "lightslategrey",
                  "lightsteelblue",
                  "lightyellow",
                  "lime",
                  "limegreen",
                  "linen",
                  "magenta",
                  "maroon",
                  "mediumaquamarine",
                  "mediumblue",
                  "mediumorchid",
                  "mediumpurple",
                  "mediumseagreen",
                  "mediumslateblue",
                  "mediumspringgreen",
                  "mediumturquoise",
                  "mediumvioletred",
                  "midnightblue",
                  "mintcream",
                  "mistyrose",
                  "moccasin",
                  "navajowhite",
                  "navy",
                  "oldlace",
                  "olive",
                  "olivedrab",
                  "orange",
                  "orangered",
                  "orchid",
                  "palegoldenrod",
                  "palegreen",
                  "paleturquoise",
                  "palevioletred",
                  "papayawhip",
                  "peachpuff",
                  "peru",
                  "pink",
                  "plum",
                  "powderblue",
                  "purple",
                  "red",
                  "rosybrown",
                  "royalblue",
                  "saddlebrown",
                  "salmon",
                  "sandybrown",
                  "seagreen",
                  "seashell",
                  "sienna",
                  "silver",
                  "skyblue",
                  "slateblue",
                  "slategray",
                  "slategrey",
                  "snow",
                  "springgreen",
                  "steelblue",
                  "tan",
                  "teal",
                  "thistle",
                  "tomato",
                  "turquoise",
                  "violet",
                  "wheat",
                  "white",
                  "whitesmoke",
                  "yellow",
                  "yellowgreen"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          },
          "show_edges": {
            "title": "Show Edges",
            "description": "Determine whether to render the edges of the box.",
            "default": false,
            "type": "boolean"
          },
          "edge_radius": {
            "title": "Edge Radius",
            "description": "Radius of the box edges. In angstroms.",
            "default": 0.1,
            "type": "number"
          },
          "edge_color": {
            "title": "Edge Color",
            "description": "Color of the edges.",
            "anyOf": [
              {
                "enum": [
                  "aliceblue",
                  "antiquewhite",
                  "aqua",
                  "aquamarine",
                  "azure",
                  "beige",
                  "bisque",
                  "black",
                  "blanchedalmond",
                  "blue",
                  "blueviolet",
                  "brown",
                  "burlywood",
                  "cadetblue",
                  "chartreuse",
                  "chocolate",
                  "coral",
                  "cornflowerblue",
                  "cornsilk",
                  "crimson",
                  "cyan",
                  "darkblue",
                  "darkcyan",
                  "darkgoldenrod",
                  "darkgray",
                  "darkgreen",
                  "darkgrey",
                  "darkkhaki",
                  "darkmagenta",
                  "darkolivegreen",
                  "darkorange",
                  "darkorchid",
                  "darkred",
                  "darksalmon",
                  "darkseagreen",
                  "darkslateblue",
                  "darkslategray",
                  "darkslategrey",
                  "darkturquoise",
                  "darkviolet",
                  "deeppink",
                  "deepskyblue",
                  "dimgray",
                  "dimgrey",
                  "dodgerblue",
                  "firebrick",
                  "floralwhite",
                  "forestgreen",
                  "fuchsia",
                  "gainsboro",
                  "ghostwhite",
                  "gold",
                  "goldenrod",
                  "gray",
                  "green",
                  "greenyellow",
                  "grey",
                  "honeydew",
                  "hotpink",
                  "indianred",
                  "indigo",
                  "ivory",
                  "khaki",
                  "lavender",
                  "lavenderblush",
                  "lawngreen",
                  "lemonchiffon",
                  "lightblue",
                  "lightcoral",
                  "lightcyan",
                  "lightgoldenrodyellow",
                  "lightgray",
                  "lightgreen",
                  "lightgrey",
                  "lightpink",
                  "lightsalmon",
                  "lightseagreen",
                  "lightskyblue",
                  "lightslategray",
                  "lightslategrey",
                  "lightsteelblue",
                  "lightyellow",
                  "lime",
                  "limegreen",
                  "linen",
                  "magenta",
                  "maroon",
                  "mediumaquamarine",
                  "mediumblue",
                  "mediumorchid",
                  "mediumpurple",
                  "mediumseagreen",
                  "mediumslateblue",
                  "mediumspringgreen",
                  "mediumturquoise",
                  "mediumvioletred",
                  "midnightblue",
                  "mintcream",
                  "mistyrose",
                  "moccasin",
                  "navajowhite",
                  "navy",
                  "oldlace",
                  "olive",
                  "olivedrab",
                  "orange",
                  "orangered",
                  "orchid",
                  "palegoldenrod",
                  "palegreen",
                  "paleturquoise",
                  "palevioletred",
                  "papayawhip",
                  "peachpuff",
                  "peru",
                  "pink",
                  "plum",
                  "powderblue",
                  "purple",
                  "red",
                  "rosybrown",
                  "royalblue",
                  "saddlebrown",
                  "salmon",
                  "sandybrown",
                  "seagreen",
                  "seashell",
                  "sienna",
                  "silver",
                  "skyblue",
                  "slateblue",
                  "slategray",
                  "slategrey",
                  "snow",
                  "springgreen",
                  "steelblue",
                  "tan",
                  "teal",
                  "thistle",
                  "tomato",
                  "turquoise",
                  "violet",
                  "wheat",
                  "white",
                  "whitesmoke",
                  "yellow",
                  "yellowgreen"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          },
          "tooltip": {
            "title": "Tooltip",
            "description": "Tooltip to show when hovering on the box.",
            "type": "string"
          }
        },
        "required": [
          "center"
        ],
        "definitions": {
          "ComponentExpression": {
            "title": "ComponentExpression",
            "description": "Component expressions are used to make selections.",
            "type": "object",
            "properties": {
              "label_entity_id": {
                "title": "Label Entity Id",
                "description": "Select an entity by its identifier",
                "type": "string"
              },
              "label_asym_id": {
                "title": "Label Asym Id",
                "description": "Select a chain using its standard, programmatically-assigned identifier",
                "type": "string"
              },
              "auth_asym_id": {
                "title": "Auth Asym Id",
                "description": "Select a chain using its legacy, author-assigned identifier",
                "type": "string"
              },
              "label_seq_id": {
                "title": "Label Seq Id",
                "description": "Select a residue by its standard, programmatically-assigned sequence position",
                "type": "integer"
              },
              "auth_seq_id": {
                "title": "Auth Seq Id",
                "description": "Select a residue by its legacy, author-assigned sequence position",
                "type": "integer"
              },
              "pdbx_PDB_ins_code": {
                "title": "Pdbx Pdb Ins Code",
                "description": "Optional legacy insertion code, only relevant for `auth_seq_id`",
                "type": "string"
              },
              "beg_label_seq_id": {
                "title": "Beg Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_label_seq_id`.",
                "type": "integer"
              },
              "end_label_seq_id": {
                "title": "End Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_label_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "beg_auth_seq_id": {
                "title": "Beg Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_auth_seq_id`.",
                "type": "integer"
              },
              "end_auth_seq_id": {
                "title": "End Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_auth_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "residue_index": {
                "title": "Residue Index",
                "description": "0-based residue index in the source file",
                "type": "integer"
              },
              "label_atom_id": {
                "title": "Label Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.label_atom_id`)",
                "type": "string"
              },
              "auth_atom_id": {
                "title": "Auth Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.auth_atom_id`)",
                "type": "string"
              },
              "type_symbol": {
                "title": "Type Symbol",
                "description": "Element symbol like 'H', 'HE', 'LI', 'BE' (`_atom_site.type_symbol`)",
                "type": "string"
              },
              "atom_id": {
                "title": "Atom Id",
                "description": "Unique atom identifier (`_atom_site.id`)",
                "type": "integer"
              },
              "atom_index": {
                "title": "Atom Index",
                "description": "0-based atom index in the source file",
                "type": "integer"
              }
            }
          },
          "PrimitiveComponentExpressions": {
            "title": "PrimitiveComponentExpressions",
            "type": "object",
            "properties": {
              "structure_ref": {
                "title": "Structure Ref",
                "description": "Reference to a structure node to apply this expresion to. If undefined, get the structure implicitly from the tree.",
                "type": "string"
              },
              "expression_schema": {
                "title": "Expression Schema",
                "description": "Schema the expressions follow, used for optimization of structure query resolution.",
                "enum": [
                  "whole_structure",
                  "entity",
                  "chain",
                  "auth_chain",
                  "residue",
                  "auth_residue",
                  "residue_range",
                  "auth_residue_range",
                  "atom",
                  "auth_atom",
                  "all_atomic"
                ],
                "type": "string"
              },
              "expressions": {
                "title": "Expressions",
                "description": "Expression refencing elements froms the structure_ref.",
                "type": "array",
                "items": {
                  "$ref": "#/definitions/ComponentExpression"
                }
              }
            },
            "required": [
              "expressions"
            ]
          }
        }
      },
      "CameraParams": {
        "title": "CameraParams",
        "description": "Controls the global camera position.",
        "type": "object",
        "properties": {
          "target": {
            "title": "Target",
            "description": "What to look at",
            "type": "array",
            "minItems": 3,
            "maxItems": 3,
            "items": [
              {
                "type": "number"
              },
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ]
          },
          "position": {
            "title": "Position",
            "description": "The position of the camera",
            "type": "array",
            "minItems": 3,
            "maxItems": 3,
            "items": [
              {
                "type": "number"
              },
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ]
          },
          "up": {
            "title": "Up",
            "description": "Controls the rotation around the vector between target and position",
            "required": true,
            "type": "array",
            "minItems": 3,
            "maxItems": 3,
            "items": [
              {
                "type": "number"
              },
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ]
          }
        },
        "required": [
          "target",
          "position",
          "up"
        ]
      },
      "CanvasParams": {
        "title": "CanvasParams",
        "description": "Controls global canvas properties.",
        "type": "object",
        "properties": {
          "background_color": {
            "title": "Background Color",
            "description": "Background color using SVG color names or RGB hex code",
            "anyOf": [
              {
                "enum": [
                  "aliceblue",
                  "antiquewhite",
                  "aqua",
                  "aquamarine",
                  "azure",
                  "beige",
                  "bisque",
                  "black",
                  "blanchedalmond",
                  "blue",
                  "blueviolet",
                  "brown",
                  "burlywood",
                  "cadetblue",
                  "chartreuse",
                  "chocolate",
                  "coral",
                  "cornflowerblue",
                  "cornsilk",
                  "crimson",
                  "cyan",
                  "darkblue",
                  "darkcyan",
                  "darkgoldenrod",
                  "darkgray",
                  "darkgreen",
                  "darkgrey",
                  "darkkhaki",
                  "darkmagenta",
                  "darkolivegreen",
                  "darkorange",
                  "darkorchid",
                  "darkred",
                  "darksalmon",
                  "darkseagreen",
                  "darkslateblue",
                  "darkslategray",
                  "darkslategrey",
                  "darkturquoise",
                  "darkviolet",
                  "deeppink",
                  "deepskyblue",
                  "dimgray",
                  "dimgrey",
                  "dodgerblue",
                  "firebrick",
                  "floralwhite",
                  "forestgreen",
                  "fuchsia",
                  "gainsboro",
                  "ghostwhite",
                  "gold",
                  "goldenrod",
                  "gray",
                  "green",
                  "greenyellow",
                  "grey",
                  "honeydew",
                  "hotpink",
                  "indianred",
                  "indigo",
                  "ivory",
                  "khaki",
                  "lavender",
                  "lavenderblush",
                  "lawngreen",
                  "lemonchiffon",
                  "lightblue",
                  "lightcoral",
                  "lightcyan",
                  "lightgoldenrodyellow",
                  "lightgray",
                  "lightgreen",
                  "lightgrey",
                  "lightpink",
                  "lightsalmon",
                  "lightseagreen",
                  "lightskyblue",
                  "lightslategray",
                  "lightslategrey",
                  "lightsteelblue",
                  "lightyellow",
                  "lime",
                  "limegreen",
                  "linen",
                  "magenta",
                  "maroon",
                  "mediumaquamarine",
                  "mediumblue",
                  "mediumorchid",
                  "mediumpurple",
                  "mediumseagreen",
                  "mediumslateblue",
                  "mediumspringgreen",
                  "mediumturquoise",
                  "mediumvioletred",
                  "midnightblue",
                  "mintcream",
                  "mistyrose",
                  "moccasin",
                  "navajowhite",
                  "navy",
                  "oldlace",
                  "olive",
                  "olivedrab",
                  "orange",
                  "orangered",
                  "orchid",
                  "palegoldenrod",
                  "palegreen",
                  "paleturquoise",
                  "palevioletred",
                  "papayawhip",
                  "peachpuff",
                  "peru",
                  "pink",
                  "plum",
                  "powderblue",
                  "purple",
                  "red",
                  "rosybrown",
                  "royalblue",
                  "saddlebrown",
                  "salmon",
                  "sandybrown",
                  "seagreen",
                  "seashell",
                  "sienna",
                  "silver",
                  "skyblue",
                  "slateblue",
                  "slategray",
                  "slategrey",
                  "snow",
                  "springgreen",
                  "steelblue",
                  "tan",
                  "teal",
                  "thistle",
                  "tomato",
                  "turquoise",
                  "violet",
                  "wheat",
                  "white",
                  "whitesmoke",
                  "yellow",
                  "yellowgreen"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "background_color"
        ]
      },
      "CarbohydrateParams": {
        "title": "CarbohydrateParams",
        "description": "Representation node, describing how to represent a component.",
        "type": "object",
        "properties": {
          "type": {
            "title": "Type",
            "default": "carbohydrate",
            "enum": [
              "carbohydrate"
            ],
            "type": "string"
          },
          "size_factor": {
            "title": "Size Factor",
            "description": "Scales the corresponding visuals.",
            "type": "number"
          }
        }
      },
      "CartoonParams": {
        "title": "CartoonParams",
        "description": "Representation node, describing how to represent a component.",
        "type": "object",
        "properties": {
          "type": {
            "title": "Type",
            "default": "cartoon",
            "enum": [
              "cartoon"
            ],
            "type": "string"
          },
          "size_factor": {
            "title": "Size Factor",
            "description": "Scales the corresponding visuals.",
            "type": "number"
          },
          "tubular_helices": {
            "title": "Tubular Helices",
            "description": "Simplify corkscrew helices to tubes.",
            "type": "boolean"
          }
        }
      },
      "ColorFromSourceParams": {
        "title": "ColorFromSourceParams",
        "description": "Color based on a category in the source file.",
        "type": "object",
        "properties": {
          "category_name": {
            "title": "Category Name",
            "description": "Category wherein selection is located.",
            "type": "string"
          },
          "field_name": {
            "title": "Field Name",
            "description": "Name of the column in CIF that contains the desired value (color/label/tooltip/component...); the default value is 'color'/'label'/'tooltip'/'component' depending on the node kind",
            "type": "string"
          },
          "block_header": {
            "title": "Block Header",
            "description": "Block name wherein selection is located.",
            "type": "string"
          },
          "block_index": {
            "title": "Block Index",
            "description": "Block index wherein selection is located.",
            "type": "integer"
          },
          "schema": {
            "title": "Schema",
            "description": "granularity/type of the selection",
            "enum": [
              "whole_structure",
              "entity",
              "chain",
              "auth_chain",
              "residue",
              "auth_residue",
              "residue_range",
              "auth_residue_range",
              "atom",
              "auth_atom",
              "all_atomic"
            ],
            "type": "string"
          }
        },
        "required": [
          "category_name",
          "schema"
        ]
      },
      "ColorFromUriParams": {
        "title": "ColorFromUriParams",
        "description": "Color based on another resource.",
        "type": "object",
        "properties": {
          "uri": {
            "title": "Uri",
            "description": "Location of the resource",
            "type": "string"
          },
          "format": {
            "title": "Format",
            "description": "Format of the resource, i.e. 'cif', 'bcif', or 'json'",
            "enum": [
              "cif",
              "bcif",
              "json"
            ],
            "type": "string"
          },
          "category_name": {
            "title": "Category Name",
            "description": "Category wherein selection is located. Only applies when format is 'cif' or 'bcif'.",
            "type": "string"
          },
          "field_name": {
            "title": "Field Name",
            "description": "Name of the column in CIF or field name (key) in JSON that contains the desired value (color/label/tooltip/component...); the default value is 'color'/'label'/'tooltip'/'component' depending on the node kind",
            "type": "string"
          },
          "block_header": {
            "title": "Block Header",
            "description": "Block name wherein selection is located. Only applies when format is 'cif' or 'bcif'.",
            "type": "string"
          },
          "block_index": {
            "title": "Block Index",
            "description": "Block index wherein selection is located. Only applies when format is 'cif' or 'bcif'.",
            "type": "integer"
          },
          "schema": {
            "title": "Schema",
            "description": "granularity/type of the selection",
            "enum": [
              "whole_structure",
              "entity",
              "chain",
              "auth_chain",
              "residue",
              "auth_residue",
              "residue_range",
              "auth_residue_range",
              "atom",
              "auth_atom",
              "all_atomic"
            ],
            "type": "string"
          }
        },
        "required": [
          "uri",
          "format",
          "schema"
        ]
      },
      "ColorInlineParams": {
        "title": "ColorInlineParams",
        "description": "Color based on function arguments.",
        "type": "object",
        "properties": {
          "selector": {
            "title": "Selector",
            "description": "Describes one or more selections or one of the enumerated selectors.",
            "anyOf": [
              {
                "enum": [
                  "all",
                  "polymer",
                  "protein",
                  "nucleic",
                  "branched",
                  "ligand",
                  "ion",
                  "water",
                  "coarse"
                ],
                "type": "string"
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/ComponentExpression"
                }
              }
            ]
          },
          "color": {
            "title": "Color",
            "description": "Color using SVG color names or RGB hex code",
            "anyOf": [
              {
                "enum": [
                  "aliceblue",
                  "antiquewhite",
                  "aqua",
                  "aquamarine",
                  "azure",
                  "beige",
                  "bisque",
                  "black",
                  "blanchedalmond",
                  "blue",
                  "blueviolet",
                  "brown",
                  "burlywood",
                  "cadetblue",
                  "chartreuse",
                  "chocolate",
                  "coral",
                  "cornflowerblue",
                  "cornsilk",
                  "crimson",
                  "cyan",
                  "darkblue",
                  "darkcyan",
                  "darkgoldenrod",
                  "darkgray",
                  "darkgreen",
                  "darkgrey",
                  "darkkhaki",
                  "darkmagenta",
                  "darkolivegreen",
                  "darkorange",
                  "darkorchid",
                  "darkred",
                  "darksalmon",
                  "darkseagreen",
                  "darkslateblue",
                  "darkslategray",
                  "darkslategrey",
                  "darkturquoise",
                  "darkviolet",
                  "deeppink",
                  "deepskyblue",
                  "dimgray",
                  "dimgrey",
                  "dodgerblue",
                  "firebrick",
                  "floralwhite",
                  "forestgreen",
                  "fuchsia",
                  "gainsboro",
                  "ghostwhite",
                  "gold",
                  "goldenrod",
                  "gray",
                  "green",
                  "greenyellow",
                  "grey",
                  "honeydew",
                  "hotpink",
                  "indianred",
                  "indigo",
                  "ivory",
                  "khaki",
                  "lavender",
                  "lavenderblush",
                  "lawngreen",
                  "lemonchiffon",
                  "lightblue",
                  "lightcoral",
                  "lightcyan",
                  "lightgoldenrodyellow",
                  "lightgray",
                  "lightgreen",
                  "lightgrey",
                  "lightpink",
                  "lightsalmon",
                  "lightseagreen",
                  "lightskyblue",
                  "lightslategray",
                  "lightslategrey",
                  "lightsteelblue",
                  "lightyellow",
                  "lime",
                  "limegreen",
                  "linen",
                  "magenta",
                  "maroon",
                  "mediumaquamarine",
                  "mediumblue",
                  "mediumorchid",
                  "mediumpurple",
                  "mediumseagreen",
                  "mediumslateblue",
                  "mediumspringgreen",
                  "mediumturquoise",
                  "mediumvioletred",
                  "midnightblue",
                  "mintcream",
                  "mistyrose",
                  "moccasin",
                  "navajowhite",
                  "navy",
                  "oldlace",
                  "olive",
                  "olivedrab",
                  "orange",
                  "orangered",
                  "orchid",
                  "palegoldenrod",
                  "palegreen",
                  "paleturquoise",
                  "palevioletred",
                  "papayawhip",
                  "peachpuff",
                  "peru",
                  "pink",
                  "plum",
                  "powderblue",
                  "purple",
                  "red",
                  "rosybrown",
                  "royalblue",
                  "saddlebrown",
                  "salmon",
                  "sandybrown",
                  "seagreen",
                  "seashell",
                  "sienna",
                  "silver",
                  "skyblue",
                  "slateblue",
                  "slategray",
                  "slategrey",
                  "snow",
                  "springgreen",
                  "steelblue",
                  "tan",
                  "teal",
                  "thistle",
                  "tomato",
                  "turquoise",
                  "violet",
                  "wheat",
                  "white",
                  "whitesmoke",
                  "yellow",
                  "yellowgreen"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "definitions": {
          "ComponentExpression": {
            "title": "ComponentExpression",
            "description": "Component expressions are used to make selections.",
            "type": "object",
            "properties": {
              "label_entity_id": {
                "title": "Label Entity Id",
                "description": "Select an entity by its identifier",
                "type": "string"
              },
              "label_asym_id": {
                "title": "Label Asym Id",
                "description": "Select a chain using its standard, programmatically-assigned identifier",
                "type": "string"
              },
              "auth_asym_id": {
                "title": "Auth Asym Id",
                "description": "Select a chain using its legacy, author-assigned identifier",
                "type": "string"
              },
              "label_seq_id": {
                "title": "Label Seq Id",
                "description": "Select a residue by its standard, programmatically-assigned sequence position",
                "type": "integer"
              },
              "auth_seq_id": {
                "title": "Auth Seq Id",
                "description": "Select a residue by its legacy, author-assigned sequence position",
                "type": "integer"
              },
              "pdbx_PDB_ins_code": {
                "title": "Pdbx Pdb Ins Code",
                "description": "Optional legacy insertion code, only relevant for `auth_seq_id`",
                "type": "string"
              },
              "beg_label_seq_id": {
                "title": "Beg Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_label_seq_id`.",
                "type": "integer"
              },
              "end_label_seq_id": {
                "title": "End Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_label_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "beg_auth_seq_id": {
                "title": "Beg Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_auth_seq_id`.",
                "type": "integer"
              },
              "end_auth_seq_id": {
                "title": "End Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_auth_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "residue_index": {
                "title": "Residue Index",
                "description": "0-based residue index in the source file",
                "type": "integer"
              },
              "label_atom_id": {
                "title": "Label Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.label_atom_id`)",
                "type": "string"
              },
              "auth_atom_id": {
                "title": "Auth Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.auth_atom_id`)",
                "type": "string"
              },
              "type_symbol": {
                "title": "Type Symbol",
                "description": "Element symbol like 'H', 'HE', 'LI', 'BE' (`_atom_site.type_symbol`)",
                "type": "string"
              },
              "atom_id": {
                "title": "Atom Id",
                "description": "Unique atom identifier (`_atom_site.id`)",
                "type": "integer"
              },
              "atom_index": {
                "title": "Atom Index",
                "description": "0-based atom index in the source file",
                "type": "integer"
              }
            }
          }
        }
      },
      "ComponentExpression": {
        "title": "ComponentExpression",
        "description": "Component expressions are used to make selections.",
        "type": "object",
        "properties": {
          "label_entity_id": {
            "title": "Label Entity Id",
            "description": "Select an entity by its identifier",
            "type": "string"
          },
          "label_asym_id": {
            "title": "Label Asym Id",
            "description": "Select a chain using its standard, programmatically-assigned identifier",
            "type": "string"
          },
          "auth_asym_id": {
            "title": "Auth Asym Id",
            "description": "Select a chain using its legacy, author-assigned identifier",
            "type": "string"
          },
          "label_seq_id": {
            "title": "Label Seq Id",
            "description": "Select a residue by its standard, programmatically-assigned sequence position",
            "type": "integer"
          },
          "auth_seq_id": {
            "title": "Auth Seq Id",
            "description": "Select a residue by its legacy, author-assigned sequence position",
            "type": "integer"
          },
          "pdbx_PDB_ins_code": {
            "title": "Pdbx Pdb Ins Code",
            "description": "Optional legacy insertion code, only relevant for `auth_seq_id`",
            "type": "string"
          },
          "beg_label_seq_id": {
            "title": "Beg Label Seq Id",
            "description": "Defines a consecutive range of residues when combined with `end_label_seq_id`.",
            "type": "integer"
          },
          "end_label_seq_id": {
            "title": "End Label Seq Id",
            "description": "Defines a consecutive range of residues when combined with `beg_label_seq_id`. End indices are inclusive.",
            "type": "integer"
          },
          "beg_auth_seq_id": {
            "title": "Beg Auth Seq Id",
            "description": "Defines a consecutive range of residues when combined with `end_auth_seq_id`.",
            "type": "integer"
          },
          "end_auth_seq_id": {
            "title": "End Auth Seq Id",
            "description": "Defines a consecutive range of residues when combined with `beg_auth_seq_id`. End indices are inclusive.",
            "type": "integer"
          },
          "residue_index": {
            "title": "Residue Index",
            "description": "0-based residue index in the source file",
            "type": "integer"
          },
          "label_atom_id": {
            "title": "Label Atom Id",
            "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.label_atom_id`)",
            "type": "string"
          },
          "auth_atom_id": {
            "title": "Auth Atom Id",
            "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.auth_atom_id`)",
            "type": "string"
          },
          "type_symbol": {
            "title": "Type Symbol",
            "description": "Element symbol like 'H', 'HE', 'LI', 'BE' (`_atom_site.type_symbol`)",
            "type": "string"
          },
          "atom_id": {
            "title": "Atom Id",
            "description": "Unique atom identifier (`_atom_site.id`)",
            "type": "integer"
          },
          "atom_index": {
            "title": "Atom Index",
            "description": "0-based atom index in the source file",
            "type": "integer"
          }
        }
      },
      "ComponentFromSourceParams": {
        "title": "ComponentFromSourceParams",
        "description": "Selection based on a category in the source file.",
        "type": "object",
        "properties": {
          "category_name": {
            "title": "Category Name",
            "description": "Category wherein selection is located.",
            "type": "string"
          },
          "field_name": {
            "title": "Field Name",
            "description": "Name of the column in CIF that contains the desired value (color/label/tooltip/component...); the default value is 'color'/'label'/'tooltip'/'component' depending on the node kind",
            "type": "string"
          },
          "block_header": {
            "title": "Block Header",
            "description": "Block name wherein selection is located.",
            "type": "string"
          },
          "block_index": {
            "title": "Block Index",
            "description": "Block index wherein selection is located.",
            "type": "integer"
          },
          "schema": {
            "title": "Schema",
            "description": "granularity/type of the selection",
            "enum": [
              "whole_structure",
              "entity",
              "chain",
              "auth_chain",
              "residue",
              "auth_residue",
              "residue_range",
              "auth_residue_range",
              "atom",
              "auth_atom",
              "all_atomic"
            ],
            "type": "string"
          },
          "field_values": {
            "title": "Field Values",
            "description": "Create the component from rows that have any of these values in the field specified by `field_name`. If not provided, create the component from all rows.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "category_name",
          "schema"
        ]
      },
      "ComponentFromUriParams": {
        "title": "ComponentFromUriParams",
        "description": "Selection based on another resource.",
        "type": "object",
        "properties": {
          "uri": {
            "title": "Uri",
            "description": "Location of the resource",
            "type": "string"
          },
          "format": {
            "title": "Format",
            "description": "Format of the resource, i.e. 'cif', 'bcif', or 'json'",
            "enum": [
              "cif",
              "bcif",
              "json"
            ],
            "type": "string"
          },
          "category_name": {
            "title": "Category Name",
            "description": "Category wherein selection is located. Only applies when format is 'cif' or 'bcif'.",
            "type": "string"
          },
          "field_name": {
            "title": "Field Name",
            "description": "Name of the column in CIF or field name (key) in JSON that contains the desired value (color/label/tooltip/component...); the default value is 'color'/'label'/'tooltip'/'component' depending on the node kind",
            "type": "string"
          },
          "block_header": {
            "title": "Block Header",
            "description": "Block name wherein selection is located. Only applies when format is 'cif' or 'bcif'.",
            "type": "string"
          },
          "block_index": {
            "title": "Block Index",
            "description": "Block index wherein selection is located. Only applies when format is 'cif' or 'bcif'.",
            "type": "integer"
          },
          "schema": {
            "title": "Schema",
            "description": "granularity/type of the selection",
            "enum": [
              "whole_structure",
              "entity",
              "chain",
              "auth_chain",
              "residue",
              "auth_residue",
              "residue_range",
              "auth_residue_range",
              "atom",
              "auth_atom",
              "all_atomic"
            ],
            "type": "string"
          },
          "field_values": {
            "title": "Field Values",
            "description": "Create the component from rows that have any of these values in the field specified by `field_name`. If not provided, create the component from all rows.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "uri",
          "format",
          "schema"
        ]
      },
      "ComponentInlineParams": {
        "title": "ComponentInlineParams",
        "description": "Selection based on function arguments.",
        "type": "object",
        "properties": {
          "selector": {
            "title": "Selector",
            "description": "Describes one or more selections or one of the enumerated selectors.",
            "anyOf": [
              {
                "enum": [
                  "all",
                  "polymer",
                  "protein",
                  "nucleic",
                  "branched",
                  "ligand",
                  "ion",
                  "water",
                  "coarse"
                ],
                "type": "string"
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/ComponentExpression"
                }
              }
            ]
          }
        },
        "definitions": {
          "ComponentExpression": {
            "title": "ComponentExpression",
            "description": "Component expressions are used to make selections.",
            "type": "object",
            "properties": {
              "label_entity_id": {
                "title": "Label Entity Id",
                "description": "Select an entity by its identifier",
                "type": "string"
              },
              "label_asym_id": {
                "title": "Label Asym Id",
                "description": "Select a chain using its standard, programmatically-assigned identifier",
                "type": "string"
              },
              "auth_asym_id": {
                "title": "Auth Asym Id",
                "description": "Select a chain using its legacy, author-assigned identifier",
                "type": "string"
              },
              "label_seq_id": {
                "title": "Label Seq Id",
                "description": "Select a residue by its standard, programmatically-assigned sequence position",
                "type": "integer"
              },
              "auth_seq_id": {
                "title": "Auth Seq Id",
                "description": "Select a residue by its legacy, author-assigned sequence position",
                "type": "integer"
              },
              "pdbx_PDB_ins_code": {
                "title": "Pdbx Pdb Ins Code",
                "description": "Optional legacy insertion code, only relevant for `auth_seq_id`",
                "type": "string"
              },
              "beg_label_seq_id": {
                "title": "Beg Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_label_seq_id`.",
                "type": "integer"
              },
              "end_label_seq_id": {
                "title": "End Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_label_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "beg_auth_seq_id": {
                "title": "Beg Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_auth_seq_id`.",
                "type": "integer"
              },
              "end_auth_seq_id": {
                "title": "End Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_auth_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "residue_index": {
                "title": "Residue Index",
                "description": "0-based residue index in the source file",
                "type": "integer"
              },
              "label_atom_id": {
                "title": "Label Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.label_atom_id`)",
                "type": "string"
              },
              "auth_atom_id": {
                "title": "Auth Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.auth_atom_id`)",
                "type": "string"
              },
              "type_symbol": {
                "title": "Type Symbol",
                "description": "Element symbol like 'H', 'HE', 'LI', 'BE' (`_atom_site.type_symbol`)",
                "type": "string"
              },
              "atom_id": {
                "title": "Atom Id",
                "description": "Unique atom identifier (`_atom_site.id`)",
                "type": "integer"
              },
              "atom_index": {
                "title": "Atom Index",
                "description": "0-based atom index in the source file",
                "type": "integer"
              }
            }
          }
        }
      },
      "DistanceMeasurementParams": {
        "title": "DistanceMeasurementParams",
        "type": "object",
        "properties": {
          "start": {
            "title": "Start",
            "description": "Start of this tube.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "$ref": "#/definitions/PrimitiveComponentExpressions"
              }
            ]
          },
          "end": {
            "title": "End",
            "description": "End of this tube.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "$ref": "#/definitions/PrimitiveComponentExpressions"
              }
            ]
          },
          "radius": {
            "title": "Radius",
            "description": "Tube radius (in Angstroms).",
            "type": "number"
          },
          "dash_length": {
            "title": "Dash Length",
            "description": "Length of each dash.",
            "type": "number"
          },
          "color": {
            "title": "Color",
            "description": "Color of the tube. If not specified, the primitives group color is used.",
            "anyOf": [
              {
                "enum": [
                  "aliceblue",
                  "antiquewhite",
                  "aqua",
                  "aquamarine",
                  "azure",
                  "beige",
                  "bisque",
                  "black",
                  "blanchedalmond",
                  "blue",
                  "blueviolet",
                  "brown",
                  "burlywood",
                  "cadetblue",
                  "chartreuse",
                  "chocolate",
                  "coral",
                  "cornflowerblue",
                  "cornsilk",
                  "crimson",
                  "cyan",
                  "darkblue",
                  "darkcyan",
                  "darkgoldenrod",
                  "darkgray",
                  "darkgreen",
                  "darkgrey",
                  "darkkhaki",
                  "darkmagenta",
                  "darkolivegreen",
                  "darkorange",
                  "darkorchid",
                  "darkred",
                  "darksalmon",
                  "darkseagreen",
                  "darkslateblue",
                  "darkslategray",
                  "darkslategrey",
                  "darkturquoise",
                  "darkviolet",
                  "deeppink",
                  "deepskyblue",
                  "dimgray",
                  "dimgrey",
                  "dodgerblue",
                  "firebrick",
                  "floralwhite",
                  "forestgreen",
                  "fuchsia",
                  "gainsboro",
                  "ghostwhite",
                  "gold",
                  "goldenrod",
                  "gray",
                  "green",
                  "greenyellow",
                  "grey",
                  "honeydew",
                  "hotpink",
                  "indianred",
                  "indigo",
                  "ivory",
                  "khaki",
                  "lavender",
                  "lavenderblush",
                  "lawngreen",
                  "lemonchiffon",
                  "lightblue",
                  "lightcoral",
                  "lightcyan",
                  "lightgoldenrodyellow",
                  "lightgray",
                  "lightgreen",
                  "lightgrey",
                  "lightpink",
                  "lightsalmon",
                  "lightseagreen",
                  "lightskyblue",
                  "lightslategray",
                  "lightslategrey",
                  "lightsteelblue",
                  "lightyellow",
                  "lime",
                  "limegreen",
                  "linen",
                  "magenta",
                  "maroon",
                  "mediumaquamarine",
                  "mediumblue",
                  "mediumorchid",
                  "mediumpurple",
                  "mediumseagreen",
                  "mediumslateblue",
                  "mediumspringgreen",
                  "mediumturquoise",
                  "mediumvioletred",
                  "midnightblue",
                  "mintcream",
                  "mistyrose",
                  "moccasin",
                  "navajowhite",
                  "navy",
                  "oldlace",
                  "olive",
                  "olivedrab",
                  "orange",
                  "orangered",
                  "orchid",
                  "palegoldenrod",
                  "palegreen",
                  "paleturquoise",
                  "palevioletred",
                  "papayawhip",
                  "peachpuff",
                  "peru",
                  "pink",
                  "plum",
                  "powderblue",
                  "purple",
                  "red",
                  "rosybrown",
                  "royalblue",
                  "saddlebrown",
                  "salmon",
                  "sandybrown",
                  "seagreen",
                  "seashell",
                  "sienna",
                  "silver",
                  "skyblue",
                  "slateblue",
                  "slategray",
                  "slategrey",
                  "snow",
                  "springgreen",
                  "steelblue",
                  "tan",
                  "teal",
                  "thistle",
                  "tomato",
                  "turquoise",
                  "violet",
                  "wheat",
                  "white",
                  "whitesmoke",
                  "yellow",
                  "yellowgreen"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          },
          "kind": {
            "title": "Kind",
            "default": "distance_measurement",
            "enum": [
              "distance_measurement"
            ],
            "type": "string"
          },
          "label_template": {
            "title": "Label Template",
            "description": "Template used to construct the label. Use {{distance}} as placeholder for the distance.",
            "type": "string"
          },
          "label_size": {
            "title": "Label Size",
            "description": "Size of the label. Auto scales it by the distance.",
            "anyOf": [
              {
                "type": "number"
              },
              {
                "enum": [
                  "auto"
                ],
                "type": "string"
              }
            ]
          },
          "label_auto_size_scale": {
            "title": "Label Auto Size Scale",
            "description": "Scaling factor for auto size.",
            "type": "number"
          },
          "label_auto_size_min": {
            "title": "Label Auto Size Min",
            "description": "Minimum size for auto size.",
            "type": "number"
          },
          "label_color": {
            "title": "Label Color",
            "description": "Color of the label.",
            "anyOf": [
              {
                "enum": [
                  "aliceblue",
                  "antiquewhite",
                  "aqua",
                  "aquamarine",
                  "azure",
                  "beige",
                  "bisque",
                  "black",
                  "blanchedalmond",
                  "blue",
                  "blueviolet",
                  "brown",
                  "burlywood",
                  "cadetblue",
                  "chartreuse",
                  "chocolate",
                  "coral",
                  "cornflowerblue",
                  "cornsilk",
                  "crimson",
                  "cyan",
                  "darkblue",
                  "darkcyan",
                  "darkgoldenrod",
                  "darkgray",
                  "darkgreen",
                  "darkgrey",
                  "darkkhaki",
                  "darkmagenta",
                  "darkolivegreen",
                  "darkorange",
                  "darkorchid",
                  "darkred",
                  "darksalmon",
                  "darkseagreen",
                  "darkslateblue",
                  "darkslategray",
                  "darkslategrey",
                  "darkturquoise",
                  "darkviolet",
                  "deeppink",
                  "deepskyblue",
                  "dimgray",
                  "dimgrey",
                  "dodgerblue",
                  "firebrick",
                  "floralwhite",
                  "forestgreen",
                  "fuchsia",
                  "gainsboro",
                  "ghostwhite",
                  "gold",
                  "goldenrod",
                  "gray",
                  "green",
                  "greenyellow",
                  "grey",
                  "honeydew",
                  "hotpink",
                  "indianred",
                  "indigo",
                  "ivory",
                  "khaki",
                  "lavender",
                  "lavenderblush",
                  "lawngreen",
                  "lemonchiffon",
                  "lightblue",
                  "lightcoral",
                  "lightcyan",
                  "lightgoldenrodyellow",
                  "lightgray",
                  "lightgreen",
                  "lightgrey",
                  "lightpink",
                  "lightsalmon",
                  "lightseagreen",
                  "lightskyblue",
                  "lightslategray",
                  "lightslategrey",
                  "lightsteelblue",
                  "lightyellow",
                  "lime",
                  "limegreen",
                  "linen",
                  "magenta",
                  "maroon",
                  "mediumaquamarine",
                  "mediumblue",
                  "mediumorchid",
                  "mediumpurple",
                  "mediumseagreen",
                  "mediumslateblue",
                  "mediumspringgreen",
                  "mediumturquoise",
                  "mediumvioletred",
                  "midnightblue",
                  "mintcream",
                  "mistyrose",
                  "moccasin",
                  "navajowhite",
                  "navy",
                  "oldlace",
                  "olive",
                  "olivedrab",
                  "orange",
                  "orangered",
                  "orchid",
                  "palegoldenrod",
                  "palegreen",
                  "paleturquoise",
                  "palevioletred",
                  "papayawhip",
                  "peachpuff",
                  "peru",
                  "pink",
                  "plum",
                  "powderblue",
                  "purple",
                  "red",
                  "rosybrown",
                  "royalblue",
                  "saddlebrown",
                  "salmon",
                  "sandybrown",
                  "seagreen",
                  "seashell",
                  "sienna",
                  "silver",
                  "skyblue",
                  "slateblue",
                  "slategray",
                  "slategrey",
                  "snow",
                  "springgreen",
                  "steelblue",
                  "tan",
                  "teal",
                  "thistle",
                  "tomato",
                  "turquoise",
                  "violet",
                  "wheat",
                  "white",
                  "whitesmoke",
                  "yellow",
                  "yellowgreen"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "start",
          "end"
        ],
        "definitions": {
          "ComponentExpression": {
            "title": "ComponentExpression",
            "description": "Component expressions are used to make selections.",
            "type": "object",
            "properties": {
              "label_entity_id": {
                "title": "Label Entity Id",
                "description": "Select an entity by its identifier",
                "type": "string"
              },
              "label_asym_id": {
                "title": "Label Asym Id",
                "description": "Select a chain using its standard, programmatically-assigned identifier",
                "type": "string"
              },
              "auth_asym_id": {
                "title": "Auth Asym Id",
                "description": "Select a chain using its legacy, author-assigned identifier",
                "type": "string"
              },
              "label_seq_id": {
                "title": "Label Seq Id",
                "description": "Select a residue by its standard, programmatically-assigned sequence position",
                "type": "integer"
              },
              "auth_seq_id": {
                "title": "Auth Seq Id",
                "description": "Select a residue by its legacy, author-assigned sequence position",
                "type": "integer"
              },
              "pdbx_PDB_ins_code": {
                "title": "Pdbx Pdb Ins Code",
                "description": "Optional legacy insertion code, only relevant for `auth_seq_id`",
                "type": "string"
              },
              "beg_label_seq_id": {
                "title": "Beg Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_label_seq_id`.",
                "type": "integer"
              },
              "end_label_seq_id": {
                "title": "End Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_label_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "beg_auth_seq_id": {
                "title": "Beg Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_auth_seq_id`.",
                "type": "integer"
              },
              "end_auth_seq_id": {
                "title": "End Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_auth_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "residue_index": {
                "title": "Residue Index",
                "description": "0-based residue index in the source file",
                "type": "integer"
              },
              "label_atom_id": {
                "title": "Label Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.label_atom_id`)",
                "type": "string"
              },
              "auth_atom_id": {
                "title": "Auth Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.auth_atom_id`)",
                "type": "string"
              },
              "type_symbol": {
                "title": "Type Symbol",
                "description": "Element symbol like 'H', 'HE', 'LI', 'BE' (`_atom_site.type_symbol`)",
                "type": "string"
              },
              "atom_id": {
                "title": "Atom Id",
                "description": "Unique atom identifier (`_atom_site.id`)",
                "type": "integer"
              },
              "atom_index": {
                "title": "Atom Index",
                "description": "0-based atom index in the source file",
                "type": "integer"
              }
            }
          },
          "PrimitiveComponentExpressions": {
            "title": "PrimitiveComponentExpressions",
            "type": "object",
            "properties": {
              "structure_ref": {
                "title": "Structure Ref",
                "description": "Reference to a structure node to apply this expresion to. If undefined, get the structure implicitly from the tree.",
                "type": "string"
              },
              "expression_schema": {
                "title": "Expression Schema",
                "description": "Schema the expressions follow, used for optimization of structure query resolution.",
                "enum": [
                  "whole_structure",
                  "entity",
                  "chain",
                  "auth_chain",
                  "residue",
                  "auth_residue",
                  "residue_range",
                  "auth_residue_range",
                  "atom",
                  "auth_atom",
                  "all_atomic"
                ],
                "type": "string"
              },
              "expressions": {
                "title": "Expressions",
                "description": "Expression refencing elements froms the structure_ref.",
                "type": "array",
                "items": {
                  "$ref": "#/definitions/ComponentExpression"
                }
              }
            },
            "required": [
              "expressions"
            ]
          }
        }
      },
      "DownloadParams": {
        "title": "DownloadParams",
        "description": "Download node, describing where structure data should be fetched from.",
        "type": "object",
        "properties": {
          "url": {
            "title": "Url",
            "description": "URL from which to pull structure data.",
            "type": "string"
          }
        },
        "required": [
          "url"
        ]
      },
      "EllipseParams": {
        "title": "EllipseParams",
        "type": "object",
        "properties": {
          "kind": {
            "title": "Kind",
            "default": "ellipse",
            "enum": [
              "ellipse"
            ],
            "type": "string"
          },
          "center": {
            "title": "Center",
            "description": "The center of the ellipse.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "$ref": "#/definitions/PrimitiveComponentExpressions"
              }
            ]
          },
          "as_circle": {
            "title": "As Circle",
            "description": "If true, ignores radius_minor/magnitude of the minor axis.",
            "type": "boolean"
          },
          "major_axis": {
            "title": "Major Axis",
            "description": "Major axis of this ellipse.",
            "type": "array",
            "minItems": 3,
            "maxItems": 3,
            "items": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            ]
          },
          "minor_axis": {
            "title": "Minor Axis",
            "description": "Minor axis of this ellipse.",
            "type": "array",
            "minItems": 3,
            "maxItems": 3,
            "items": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            ]
          },
          "major_axis_endpoint": {
            "title": "Major Axis Endpoint",
            "description": "Major axis endpoint. If specified, overrides major axis to be major_axis_endpoint - center.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "$ref": "#/definitions/PrimitiveComponentExpressions"
              }
            ]
          },
          "minor_axis_endpoint": {
            "title": "Minor Axis Endpoint",
            "description": "Minor axis endpoint. If specified, overrides minor axis to be minor_axis_endpoint - center.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "$ref": "#/definitions/PrimitiveComponentExpressions"
              }
            ]
          },
          "radius_major": {
            "title": "Radius Major",
            "description": "Radius of the major axis. If unset, the length of the major axis is used.",
            "type": "number"
          },
          "radius_minor": {
            "title": "Radius Minor",
            "description": "Radius of the minor axis. If unset, the length of the minor axis is used.",
            "type": "number"
          },
          "theta_start": {
            "title": "Theta Start",
            "description": "Start of the arc. In radians.",
            "type": "number"
          },
          "theta_end": {
            "title": "Theta End",
            "description": "End of the arc. In radians.",
            "type": "number"
          },
          "color": {
            "title": "Color",
            "description": "Default color for the ellipse.",
            "anyOf": [
              {
                "enum": [
                  "aliceblue",
                  "antiquewhite",
                  "aqua",
                  "aquamarine",
                  "azure",
                  "beige",
                  "bisque",
                  "black",
                  "blanchedalmond",
                  "blue",
                  "blueviolet",
                  "brown",
                  "burlywood",
                  "cadetblue",
                  "chartreuse",
                  "chocolate",
                  "coral",
                  "cornflowerblue",
                  "cornsilk",
                  "crimson",
                  "cyan",
                  "darkblue",
                  "darkcyan",
                  "darkgoldenrod",
                  "darkgray",
                  "darkgreen",
                  "darkgrey",
                  "darkkhaki",
                  "darkmagenta",
                  "darkolivegreen",
                  "darkorange",
                  "darkorchid",
                  "darkred",
                  "darksalmon",
                  "darkseagreen",
                  "darkslateblue",
                  "darkslategray",
                  "darkslategrey",
                  "darkturquoise",
                  "darkviolet",
                  "deeppink",
                  "deepskyblue",
                  "dimgray",
                  "dimgrey",
                  "dodgerblue",
                  "firebrick",
                  "floralwhite",
                  "forestgreen",
                  "fuchsia",
                  "gainsboro",
                  "ghostwhite",
                  "gold",
                  "goldenrod",
                  "gray",
                  "green",
                  "greenyellow",
                  "grey",
                  "honeydew",
                  "hotpink",
                  "indianred",
                  "indigo",
                  "ivory",
                  "khaki",
                  "lavender",
                  "lavenderblush",
                  "lawngreen",
                  "lemonchiffon",
                  "lightblue",
                  "lightcoral",
                  "lightcyan",
                  "lightgoldenrodyellow",
                  "lightgray",
                  "lightgreen",
                  "lightgrey",
                  "lightpink",
                  "lightsalmon",
                  "lightseagreen",
                  "lightskyblue",
                  "lightslategray",
                  "lightslategrey",
                  "lightsteelblue",
                  "lightyellow",
                  "lime",
                  "limegreen",
                  "linen",
                  "magenta",
                  "maroon",
                  "mediumaquamarine",
                  "mediumblue",
                  "mediumorchid",
                  "mediumpurple",
                  "mediumseagreen",
                  "mediumslateblue",
                  "mediumspringgreen",
                  "mediumturquoise",
                  "mediumvioletred",
                  "midnightblue",
                  "mintcream",
                  "mistyrose",
                  "moccasin",
                  "navajowhite",
                  "navy",
                  "oldlace",
                  "olive",
                  "olivedrab",
                  "orange",
                  "orangered",
                  "orchid",
                  "palegoldenrod",
                  "palegreen",
                  "paleturquoise",
                  "palevioletred",
                  "papayawhip",
                  "peachpuff",
                  "peru",
                  "pink",
                  "plum",
                  "powderblue",
                  "purple",
                  "red",
                  "rosybrown",
                  "royalblue",
                  "saddlebrown",
                  "salmon",
                  "sandybrown",
                  "seagreen",
                  "seashell",
                  "sienna",
                  "silver",
                  "skyblue",
                  "slateblue",
                  "slategray",
                  "slategrey",
                  "snow",
                  "springgreen",
                  "steelblue",
                  "tan",
                  "teal",
                  "thistle",
                  "tomato",
                  "turquoise",
                  "violet",
                  "wheat",
                  "white",
                  "whitesmoke",
                  "yellow",
                  "yellowgreen"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          },
          "tooltip": {
            "title": "Tooltip",
            "description": "Tooltip to show when hovering on the ellipse.",
            "type": "string"
          }
        },
        "required": [
          "center"
        ],
        "definitions": {
          "ComponentExpression": {
            "title": "ComponentExpression",
            "description": "Component expressions are used to make selections.",
            "type": "object",
            "properties": {
              "label_entity_id": {
                "title": "Label Entity Id",
                "description": "Select an entity by its identifier",
                "type": "string"
              },
              "label_asym_id": {
                "title": "Label Asym Id",
                "description": "Select a chain using its standard, programmatically-assigned identifier",
                "type": "string"
              },
              "auth_asym_id": {
                "title": "Auth Asym Id",
                "description": "Select a chain using its legacy, author-assigned identifier",
                "type": "string"
              },
              "label_seq_id": {
                "title": "Label Seq Id",
                "description": "Select a residue by its standard, programmatically-assigned sequence position",
                "type": "integer"
              },
              "auth_seq_id": {
                "title": "Auth Seq Id",
                "description": "Select a residue by its legacy, author-assigned sequence position",
                "type": "integer"
              },
              "pdbx_PDB_ins_code": {
                "title": "Pdbx Pdb Ins Code",
                "description": "Optional legacy insertion code, only relevant for `auth_seq_id`",
                "type": "string"
              },
              "beg_label_seq_id": {
                "title": "Beg Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_label_seq_id`.",
                "type": "integer"
              },
              "end_label_seq_id": {
                "title": "End Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_label_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "beg_auth_seq_id": {
                "title": "Beg Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_auth_seq_id`.",
                "type": "integer"
              },
              "end_auth_seq_id": {
                "title": "End Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_auth_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "residue_index": {
                "title": "Residue Index",
                "description": "0-based residue index in the source file",
                "type": "integer"
              },
              "label_atom_id": {
                "title": "Label Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.label_atom_id`)",
                "type": "string"
              },
              "auth_atom_id": {
                "title": "Auth Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.auth_atom_id`)",
                "type": "string"
              },
              "type_symbol": {
                "title": "Type Symbol",
                "description": "Element symbol like 'H', 'HE', 'LI', 'BE' (`_atom_site.type_symbol`)",
                "type": "string"
              },
              "atom_id": {
                "title": "Atom Id",
                "description": "Unique atom identifier (`_atom_site.id`)",
                "type": "integer"
              },
              "atom_index": {
                "title": "Atom Index",
                "description": "0-based atom index in the source file",
                "type": "integer"
              }
            }
          },
          "PrimitiveComponentExpressions": {
            "title": "PrimitiveComponentExpressions",
            "type": "object",
            "properties": {
              "structure_ref": {
                "title": "Structure Ref",
                "description": "Reference to a structure node to apply this expresion to. If undefined, get the structure implicitly from the tree.",
                "type": "string"
              },
              "expression_schema": {
                "title": "Expression Schema",
                "description": "Schema the expressions follow, used for optimization of structure query resolution.",
                "enum": [
                  "whole_structure",
                  "entity",
                  "chain",
                  "auth_chain",
                  "residue",
                  "auth_residue",
                  "residue_range",
                  "auth_residue_range",
                  "atom",
                  "auth_atom",
                  "all_atomic"
                ],
                "type": "string"
              },
              "expressions": {
                "title": "Expressions",
                "description": "Expression refencing elements froms the structure_ref.",
                "type": "array",
                "items": {
                  "$ref": "#/definitions/ComponentExpression"
                }
              }
            },
            "required": [
              "expressions"
            ]
          }
        }
      },
      "EllipsoidParams": {
        "title": "EllipsoidParams",
        "type": "object",
        "properties": {
          "kind": {
            "title": "Kind",
            "default": "ellipsoid",
            "enum": [
              "ellipsoid"
            ],
            "type": "string"
          },
          "center": {
            "title": "Center",
            "description": "The center of the ellipsoid.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "$ref": "#/definitions/PrimitiveComponentExpressions"
              }
            ]
          },
          "major_axis": {
            "title": "Major Axis",
            "description": "Major axis of this ellipsoid. Defaults to (1, 0, 0).",
            "type": "array",
            "minItems": 3,
            "maxItems": 3,
            "items": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            ]
          },
          "minor_axis": {
            "title": "Minor Axis",
            "description": "Minor axis of this ellipsoid. Defaults to (0, 1, 0).",
            "type": "array",
            "minItems": 3,
            "maxItems": 3,
            "items": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            ]
          },
          "major_axis_endpoint": {
            "title": "Major Axis Endpoint",
            "description": "Major axis endpoint. If specified, overrides major axis to be major_axis_endpoint - center.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "$ref": "#/definitions/PrimitiveComponentExpressions"
              }
            ]
          },
          "minor_axis_endpoint": {
            "title": "Minor Axis Endpoint",
            "description": "Minor axis endpoint. If specified, overrides minor axis to be minor_axis_endpoint - center.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "$ref": "#/definitions/PrimitiveComponentExpressions"
              }
            ]
          },
          "radius": {
            "title": "Radius",
            "description": "Radii of the ellipsoid along each axis.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "number"
              }
            ]
          },
          "radius_extent": {
            "title": "Radius Extent",
            "description": "Added to the radii of the ellipsoid along each axis.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "number"
              }
            ]
          },
          "color": {
            "title": "Color",
            "description": "Default color for the ellipsoid.",
            "anyOf": [
              {
                "enum": [
                  "aliceblue",
                  "antiquewhite",
                  "aqua",
                  "aquamarine",
                  "azure",
                  "beige",
                  "bisque",
                  "black",
                  "blanchedalmond",
                  "blue",
                  "blueviolet",
                  "brown",
                  "burlywood",
                  "cadetblue",
                  "chartreuse",
                  "chocolate",
                  "coral",
                  "cornflowerblue",
                  "cornsilk",
                  "crimson",
                  "cyan",
                  "darkblue",
                  "darkcyan",
                  "darkgoldenrod",
                  "darkgray",
                  "darkgreen",
                  "darkgrey",
                  "darkkhaki",
                  "darkmagenta",
                  "darkolivegreen",
                  "darkorange",
                  "darkorchid",
                  "darkred",
                  "darksalmon",
                  "darkseagreen",
                  "darkslateblue",
                  "darkslategray",
                  "darkslategrey",
                  "darkturquoise",
                  "darkviolet",
                  "deeppink",
                  "deepskyblue",
                  "dimgray",
                  "dimgrey",
                  "dodgerblue",
                  "firebrick",
                  "floralwhite",
                  "forestgreen",
                  "fuchsia",
                  "gainsboro",
                  "ghostwhite",
                  "gold",
                  "goldenrod",
                  "gray",
                  "green",
                  "greenyellow",
                  "grey",
                  "honeydew",
                  "hotpink",
                  "indianred",
                  "indigo",
                  "ivory",
                  "khaki",
                  "lavender",
                  "lavenderblush",
                  "lawngreen",
                  "lemonchiffon",
                  "lightblue",
                  "lightcoral",
                  "lightcyan",
                  "lightgoldenrodyellow",
                  "lightgray",
                  "lightgreen",
                  "lightgrey",
                  "lightpink",
                  "lightsalmon",
                  "lightseagreen",
                  "lightskyblue",
                  "lightslategray",
                  "lightslategrey",
                  "lightsteelblue",
                  "lightyellow",
                  "lime",
                  "limegreen",
                  "linen",
                  "magenta",
                  "maroon",
                  "mediumaquamarine",
                  "mediumblue",
                  "mediumorchid",
                  "mediumpurple",
                  "mediumseagreen",
                  "mediumslateblue",
                  "mediumspringgreen",
                  "mediumturquoise",
                  "mediumvioletred",
                  "midnightblue",
                  "mintcream",
                  "mistyrose",
                  "moccasin",
                  "navajowhite",
                  "navy",
                  "oldlace",
                  "olive",
                  "olivedrab",
                  "orange",
                  "orangered",
                  "orchid",
                  "palegoldenrod",
                  "palegreen",
                  "paleturquoise",
                  "palevioletred",
                  "papayawhip",
                  "peachpuff",
                  "peru",
                  "pink",
                  "plum",
                  "powderblue",
                  "purple",
                  "red",
                  "rosybrown",
                  "royalblue",
                  "saddlebrown",
                  "salmon",
                  "sandybrown",
                  "seagreen",
                  "seashell",
                  "sienna",
                  "silver",
                  "skyblue",
                  "slateblue",
                  "slategray",
                  "slategrey",
                  "snow",
                  "springgreen",
                  "steelblue",
                  "tan",
                  "teal",
                  "thistle",
                  "tomato",
                  "turquoise",
                  "violet",
                  "wheat",
                  "white",
                  "whitesmoke",
                  "yellow",
                  "yellowgreen"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          },
          "tooltip": {
            "title": "Tooltip",
            "description": "Tooltip to show when hovering on the ellipsoid.",
            "type": "string"
          }
        },
        "required": [
          "center"
        ],
        "definitions": {
          "ComponentExpression": {
            "title": "ComponentExpression",
            "description": "Component expressions are used to make selections.",
            "type": "object",
            "properties": {
              "label_entity_id": {
                "title": "Label Entity Id",
                "description": "Select an entity by its identifier",
                "type": "string"
              },
              "label_asym_id": {
                "title": "Label Asym Id",
                "description": "Select a chain using its standard, programmatically-assigned identifier",
                "type": "string"
              },
              "auth_asym_id": {
                "title": "Auth Asym Id",
                "description": "Select a chain using its legacy, author-assigned identifier",
                "type": "string"
              },
              "label_seq_id": {
                "title": "Label Seq Id",
                "description": "Select a residue by its standard, programmatically-assigned sequence position",
                "type": "integer"
              },
              "auth_seq_id": {
                "title": "Auth Seq Id",
                "description": "Select a residue by its legacy, author-assigned sequence position",
                "type": "integer"
              },
              "pdbx_PDB_ins_code": {
                "title": "Pdbx Pdb Ins Code",
                "description": "Optional legacy insertion code, only relevant for `auth_seq_id`",
                "type": "string"
              },
              "beg_label_seq_id": {
                "title": "Beg Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_label_seq_id`.",
                "type": "integer"
              },
              "end_label_seq_id": {
                "title": "End Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_label_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "beg_auth_seq_id": {
                "title": "Beg Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_auth_seq_id`.",
                "type": "integer"
              },
              "end_auth_seq_id": {
                "title": "End Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_auth_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "residue_index": {
                "title": "Residue Index",
                "description": "0-based residue index in the source file",
                "type": "integer"
              },
              "label_atom_id": {
                "title": "Label Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.label_atom_id`)",
                "type": "string"
              },
              "auth_atom_id": {
                "title": "Auth Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.auth_atom_id`)",
                "type": "string"
              },
              "type_symbol": {
                "title": "Type Symbol",
                "description": "Element symbol like 'H', 'HE', 'LI', 'BE' (`_atom_site.type_symbol`)",
                "type": "string"
              },
              "atom_id": {
                "title": "Atom Id",
                "description": "Unique atom identifier (`_atom_site.id`)",
                "type": "integer"
              },
              "atom_index": {
                "title": "Atom Index",
                "description": "0-based atom index in the source file",
                "type": "integer"
              }
            }
          },
          "PrimitiveComponentExpressions": {
            "title": "PrimitiveComponentExpressions",
            "type": "object",
            "properties": {
              "structure_ref": {
                "title": "Structure Ref",
                "description": "Reference to a structure node to apply this expresion to. If undefined, get the structure implicitly from the tree.",
                "type": "string"
              },
              "expression_schema": {
                "title": "Expression Schema",
                "description": "Schema the expressions follow, used for optimization of structure query resolution.",
                "enum": [
                  "whole_structure",
                  "entity",
                  "chain",
                  "auth_chain",
                  "residue",
                  "auth_residue",
                  "residue_range",
                  "auth_residue_range",
                  "atom",
                  "auth_atom",
                  "all_atomic"
                ],
                "type": "string"
              },
              "expressions": {
                "title": "Expressions",
                "description": "Expression refencing elements froms the structure_ref.",
                "type": "array",
                "items": {
                  "$ref": "#/definitions/ComponentExpression"
                }
              }
            },
            "required": [
              "expressions"
            ]
          }
        }
      },
      "FocusInlineParams": {
        "title": "FocusInlineParams",
        "description": "Define the camera focus based on function arguments.",
        "type": "object",
        "properties": {
          "direction": {
            "title": "Direction",
            "description": "Direction of the view (vector position -> target)",
            "type": "array",
            "minItems": 3,
            "maxItems": 3,
            "items": [
              {
                "type": "number"
              },
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ]
          },
          "up": {
            "title": "Up",
            "description": "Controls the rotation around the vector between target and position",
            "type": "array",
            "minItems": 3,
            "maxItems": 3,
            "items": [
              {
                "type": "number"
              },
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ]
          },
          "radius": {
            "title": "Radius",
            "description": "Radius of the focused sphere (overrides `radius_factor` and `radius_extra`)",
            "type": "number"
          },
          "radius_factor": {
            "title": "Radius Factor",
            "description": "Radius of the focused sphere relative to the radius of parent component (default: 1). Focused radius = component_radius * radius_factor + radius_extent.",
            "type": "number"
          },
          "radius_extent": {
            "title": "Radius Extent",
            "description": "Addition to the radius of the focused sphere, if computed from the radius of parent component (default: 0). Focused radius = component_radius * radius_factor + radius_extent.",
            "type": "number"
          }
        }
      },
      "GlobalMetadata": {
        "title": "GlobalMetadata",
        "description": "Top-level metadata for a MVS file (single-state or multi-state).",
        "type": "object",
        "properties": {
          "title": {
            "title": "Title",
            "description": "Name of this view(s).",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "description": "Detailed description of this view(s).",
            "type": "string"
          },
          "description_format": {
            "title": "Description Format",
            "description": "Format of `description`. Default is 'markdown'.",
            "enum": [
              "markdown",
              "plaintext"
            ],
            "type": "string"
          },
          "timestamp": {
            "title": "Timestamp",
            "description": "Timestamp when this file was exported.",
            "type": "string"
          },
          "version": {
            "title": "Version",
            "description": "Version of MolViewSpec used to write this file.",
            "type": "string"
          }
        }
      },
      "LabelFromSourceParams": {
        "title": "LabelFromSourceParams",
        "description": "Label based on a category in the source file.",
        "type": "object",
        "properties": {
          "category_name": {
            "title": "Category Name",
            "description": "Category wherein selection is located.",
            "type": "string"
          },
          "field_name": {
            "title": "Field Name",
            "description": "Name of the column in CIF that contains the desired value (color/label/tooltip/component...); the default value is 'color'/'label'/'tooltip'/'component' depending on the node kind",
            "type": "string"
          },
          "block_header": {
            "title": "Block Header",
            "description": "Block name wherein selection is located.",
            "type": "string"
          },
          "block_index": {
            "title": "Block Index",
            "description": "Block index wherein selection is located.",
            "type": "integer"
          },
          "schema": {
            "title": "Schema",
            "description": "granularity/type of the selection",
            "enum": [
              "whole_structure",
              "entity",
              "chain",
              "auth_chain",
              "residue",
              "auth_residue",
              "residue_range",
              "auth_residue_range",
              "atom",
              "auth_atom",
              "all_atomic"
            ],
            "type": "string"
          }
        },
        "required": [
          "category_name",
          "schema"
        ]
      },
      "LabelFromUriParams": {
        "title": "LabelFromUriParams",
        "description": "Label based on another resource.",
        "type": "object",
        "properties": {
          "uri": {
            "title": "Uri",
            "description": "Location of the resource",
            "type": "string"
          },
          "format": {
            "title": "Format",
            "description": "Format of the resource, i.e. 'cif', 'bcif', or 'json'",
            "enum": [
              "cif",
              "bcif",
              "json"
            ],
            "type": "string"
          },
          "category_name": {
            "title": "Category Name",
            "description": "Category wherein selection is located. Only applies when format is 'cif' or 'bcif'.",
            "type": "string"
          },
          "field_name": {
            "title": "Field Name",
            "description": "Name of the column in CIF or field name (key) in JSON that contains the desired value (color/label/tooltip/component...); the default value is 'color'/'label'/'tooltip'/'component' depending on the node kind",
            "type": "string"
          },
          "block_header": {
            "title": "Block Header",
            "description": "Block name wherein selection is located. Only applies when format is 'cif' or 'bcif'.",
            "type": "string"
          },
          "block_index": {
            "title": "Block Index",
            "description": "Block index wherein selection is located. Only applies when format is 'cif' or 'bcif'.",
            "type": "integer"
          },
          "schema": {
            "title": "Schema",
            "description": "granularity/type of the selection",
            "enum": [
              "whole_structure",
              "entity",
              "chain",
              "auth_chain",
              "residue",
              "auth_residue",
              "residue_range",
              "auth_residue_range",
              "atom",
              "auth_atom",
              "all_atomic"
            ],
            "type": "string"
          }
        },
        "required": [
          "uri",
          "format",
          "schema"
        ]
      },
      "LabelInlineParams": {
        "title": "LabelInlineParams",
        "description": "Label based on function arguments.",
        "type": "object",
        "properties": {
          "text": {
            "title": "Text",
            "description": "Text to show as label",
            "type": "string"
          }
        },
        "required": [
          "text"
        ]
      },
      "LinesParams": {
        "title": "LinesParams",
        "description": "Low-level, fully customizable lines representation of a shape.",
        "type": "object",
        "properties": {
          "kind": {
            "title": "Kind",
            "default": "lines",
            "enum": [
              "lines"
            ],
            "type": "string"
          },
          "vertices": {
            "title": "Vertices",
            "description": "3N length array of floats with vertex position (x1, y1, z1, ...)",
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "indices": {
            "title": "Indices",
            "description": "2N length array of indices into vertices that form lines (l1_1, ll1_2, ...)",
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "line_groups": {
            "title": "Line Groups",
            "description": "Assign a number to each triangle to group them.",
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "group_colors": {
            "title": "Group Colors",
            "description": "Assign a color to each group. If not assigned, default primitives group color is used. Takes precedence over line_colors.",
            "type": "object",
            "additionalProperties": {
              "anyOf": [
                {
                  "enum": [
                    "aliceblue",
                    "antiquewhite",
                    "aqua",
                    "aquamarine",
                    "azure",
                    "beige",
                    "bisque",
                    "black",
                    "blanchedalmond",
                    "blue",
                    "blueviolet",
                    "brown",
                    "burlywood",
                    "cadetblue",
                    "chartreuse",
                    "chocolate",
                    "coral",
                    "cornflowerblue",
                    "cornsilk",
                    "crimson",
                    "cyan",
                    "darkblue",
                    "darkcyan",
                    "darkgoldenrod",
                    "darkgray",
                    "darkgreen",
                    "darkgrey",
                    "darkkhaki",
                    "darkmagenta",
                    "darkolivegreen",
                    "darkorange",
                    "darkorchid",
                    "darkred",
                    "darksalmon",
                    "darkseagreen",
                    "darkslateblue",
                    "darkslategray",
                    "darkslategrey",
                    "darkturquoise",
                    "darkviolet",
                    "deeppink",
                    "deepskyblue",
                    "dimgray",
                    "dimgrey",
                    "dodgerblue",
                    "firebrick",
                    "floralwhite",
                    "forestgreen",
                    "fuchsia",
                    "gainsboro",
                    "ghostwhite",
                    "gold",
                    "goldenrod",
                    "gray",
                    "green",
                    "greenyellow",
                    "grey",
                    "honeydew",
                    "hotpink",
                    "indianred",
                    "indigo",
                    "ivory",
                    "khaki",
                    "lavender",
                    "lavenderblush",
                    "lawngreen",
                    "lemonchiffon",
                    "lightblue",
                    "lightcoral",
                    "lightcyan",
                    "lightgoldenrodyellow",
                    "lightgray",
                    "lightgreen",
                    "lightgrey",
                    "lightpink",
                    "lightsalmon",
                    "lightseagreen",
                    "lightskyblue",
                    "lightslategray",
                    "lightslategrey",
                    "lightsteelblue",
                    "lightyellow",
                    "lime",
                    "limegreen",
                    "linen",
                    "magenta",
                    "maroon",
                    "mediumaquamarine",
                    "mediumblue",
                    "mediumorchid",
                    "mediumpurple",
                    "mediumseagreen",
                    "mediumslateblue",
                    "mediumspringgreen",
                    "mediumturquoise",
                    "mediumvioletred",
                    "midnightblue",
                    "mintcream",
                    "mistyrose",
                    "moccasin",
                    "navajowhite",
                    "navy",
                    "oldlace",
                    "olive",
                    "olivedrab",
                    "orange",
                    "orangered",
                    "orchid",
                    "palegoldenrod",
                    "palegreen",
                    "paleturquoise",
                    "palevioletred",
                    "papayawhip",
                    "peachpuff",
                    "peru",
                    "pink",
                    "plum",
                    "powderblue",
                    "purple",
                    "red",
                    "rosybrown",
                    "royalblue",
                    "saddlebrown",
                    "salmon",
                    "sandybrown",
                    "seagreen",
                    "seashell",
                    "sienna",
                    "silver",
                    "skyblue",
                    "slateblue",
                    "slategray",
                    "slategrey",
                    "snow",
                    "springgreen",
                    "steelblue",
                    "tan",
                    "teal",
                    "thistle",
                    "tomato",
                    "turquoise",
                    "violet",
                    "wheat",
                    "white",
                    "whitesmoke",
                    "yellow",
                    "yellowgreen"
                  ],
                  "type": "string"
                },
                {
                  "type": "string"
                }
              ]
            }
          },
          "group_tooltips": {
            "title": "Group Tooltips",
            "description": "Assign an optional tooltip to each group.",
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "group_widths": {
            "title": "Group Widths",
            "description": "Assign an optional line width to each group. Take precedence over `width`.",
            "type": "object",
            "additionalProperties": {
              "type": "number"
            }
          },
          "tooltip": {
            "title": "Tooltip",
            "description": "Tooltip shown when hovering over the lines. Assigned group_tooltips take precedence.",
            "type": "string"
          },
          "width": {
            "title": "Width",
            "description": "Line width",
            "type": "number"
          },
          "color": {
            "title": "Color",
            "description": "Default color of the lines.",
            "anyOf": [
              {
                "enum": [
                  "aliceblue",
                  "antiquewhite",
                  "aqua",
                  "aquamarine",
                  "azure",
                  "beige",
                  "bisque",
                  "black",
                  "blanchedalmond",
                  "blue",
                  "blueviolet",
                  "brown",
                  "burlywood",
                  "cadetblue",
                  "chartreuse",
                  "chocolate",
                  "coral",
                  "cornflowerblue",
                  "cornsilk",
                  "crimson",
                  "cyan",
                  "darkblue",
                  "darkcyan",
                  "darkgoldenrod",
                  "darkgray",
                  "darkgreen",
                  "darkgrey",
                  "darkkhaki",
                  "darkmagenta",
                  "darkolivegreen",
                  "darkorange",
                  "darkorchid",
                  "darkred",
                  "darksalmon",
                  "darkseagreen",
                  "darkslateblue",
                  "darkslategray",
                  "darkslategrey",
                  "darkturquoise",
                  "darkviolet",
                  "deeppink",
                  "deepskyblue",
                  "dimgray",
                  "dimgrey",
                  "dodgerblue",
                  "firebrick",
                  "floralwhite",
                  "forestgreen",
                  "fuchsia",
                  "gainsboro",
                  "ghostwhite",
                  "gold",
                  "goldenrod",
                  "gray",
                  "green",
                  "greenyellow",
                  "grey",
                  "honeydew",
                  "hotpink",
                  "indianred",
                  "indigo",
                  "ivory",
                  "khaki",
                  "lavender",
                  "lavenderblush",
                  "lawngreen",
                  "lemonchiffon",
                  "lightblue",
                  "lightcoral",
                  "lightcyan",
                  "lightgoldenrodyellow",
                  "lightgray",
                  "lightgreen",
                  "lightgrey",
                  "lightpink",
                  "lightsalmon",
                  "lightseagreen",
                  "lightskyblue",
                  "lightslategray",
                  "lightslategrey",
                  "lightsteelblue",
                  "lightyellow",
                  "lime",
                  "limegreen",
                  "linen",
                  "magenta",
                  "maroon",
                  "mediumaquamarine",
                  "mediumblue",
                  "mediumorchid",
                  "mediumpurple",
                  "mediumseagreen",
                  "mediumslateblue",
                  "mediumspringgreen",
                  "mediumturquoise",
                  "mediumvioletred",
                  "midnightblue",
                  "mintcream",
                  "mistyrose",
                  "moccasin",
                  "navajowhite",
                  "navy",
                  "oldlace",
                  "olive",
                  "olivedrab",
                  "orange",
                  "orangered",
                  "orchid",
                  "palegoldenrod",
                  "palegreen",
                  "paleturquoise",
                  "palevioletred",
                  "papayawhip",
                  "peachpuff",
                  "peru",
                  "pink",
                  "plum",
                  "powderblue",
                  "purple",
                  "red",
                  "rosybrown",
                  "royalblue",
                  "saddlebrown",
                  "salmon",
                  "sandybrown",
                  "seagreen",
                  "seashell",
                  "sienna",
                  "silver",
                  "skyblue",
                  "slateblue",
                  "slategray",
                  "slategrey",
                  "snow",
                  "springgreen",
                  "steelblue",
                  "tan",
                  "teal",
                  "thistle",
                  "tomato",
                  "turquoise",
                  "violet",
                  "wheat",
                  "white",
                  "whitesmoke",
                  "yellow",
                  "yellowgreen"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "vertices",
          "indices"
        ]
      },
      "MeshParams": {
        "title": "MeshParams",
        "description": "Low-level, fully customizable mesh representation of a shape.",
        "type": "object",
        "properties": {
          "kind": {
            "title": "Kind",
            "default": "mesh",
            "enum": [
              "mesh"
            ],
            "type": "string"
          },
          "vertices": {
            "title": "Vertices",
            "description": "3N length array of floats with vertex position (x1, y1, z1, ...)",
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "indices": {
            "title": "Indices",
            "description": "3N length array of indices into vertices that form triangles (t1_1, t1_2, t1_3, ...)",
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "triangle_groups": {
            "title": "Triangle Groups",
            "description": "Assign a number to each triangle to group them. If not set, each triangle is considered a separate group.",
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "group_colors": {
            "title": "Group Colors",
            "description": "Assign a color to each group. If not assigned, default primitives group color is used.",
            "type": "object",
            "additionalProperties": {
              "anyOf": [
                {
                  "enum": [
                    "aliceblue",
                    "antiquewhite",
                    "aqua",
                    "aquamarine",
                    "azure",
                    "beige",
                    "bisque",
                    "black",
                    "blanchedalmond",
                    "blue",
                    "blueviolet",
                    "brown",
                    "burlywood",
                    "cadetblue",
                    "chartreuse",
                    "chocolate",
                    "coral",
                    "cornflowerblue",
                    "cornsilk",
                    "crimson",
                    "cyan",
                    "darkblue",
                    "darkcyan",
                    "darkgoldenrod",
                    "darkgray",
                    "darkgreen",
                    "darkgrey",
                    "darkkhaki",
                    "darkmagenta",
                    "darkolivegreen",
                    "darkorange",
                    "darkorchid",
                    "darkred",
                    "darksalmon",
                    "darkseagreen",
                    "darkslateblue",
                    "darkslategray",
                    "darkslategrey",
                    "darkturquoise",
                    "darkviolet",
                    "deeppink",
                    "deepskyblue",
                    "dimgray",
                    "dimgrey",
                    "dodgerblue",
                    "firebrick",
                    "floralwhite",
                    "forestgreen",
                    "fuchsia",
                    "gainsboro",
                    "ghostwhite",
                    "gold",
                    "goldenrod",
                    "gray",
                    "green",
                    "greenyellow",
                    "grey",
                    "honeydew",
                    "hotpink",
                    "indianred",
                    "indigo",
                    "ivory",
                    "khaki",
                    "lavender",
                    "lavenderblush",
                    "lawngreen",
                    "lemonchiffon",
                    "lightblue",
                    "lightcoral",
                    "lightcyan",
                    "lightgoldenrodyellow",
                    "lightgray",
                    "lightgreen",
                    "lightgrey",
                    "lightpink",
                    "lightsalmon",
                    "lightseagreen",
                    "lightskyblue",
                    "lightslategray",
                    "lightslategrey",
                    "lightsteelblue",
                    "lightyellow",
                    "lime",
                    "limegreen",
                    "linen",
                    "magenta",
                    "maroon",
                    "mediumaquamarine",
                    "mediumblue",
                    "mediumorchid",
                    "mediumpurple",
                    "mediumseagreen",
                    "mediumslateblue",
                    "mediumspringgreen",
                    "mediumturquoise",
                    "mediumvioletred",
                    "midnightblue",
                    "mintcream",
                    "mistyrose",
                    "moccasin",
                    "navajowhite",
                    "navy",
                    "oldlace",
                    "olive",
                    "olivedrab",
                    "orange",
                    "orangered",
                    "orchid",
                    "palegoldenrod",
                    "palegreen",
                    "paleturquoise",
                    "palevioletred",
                    "papayawhip",
                    "peachpuff",
                    "peru",
                    "pink",
                    "plum",
                    "powderblue",
                    "purple",
                    "red",
                    "rosybrown",
                    "royalblue",
                    "saddlebrown",
                    "salmon",
                    "sandybrown",
                    "seagreen",
                    "seashell",
                    "sienna",
                    "silver",
                    "skyblue",
                    "slateblue",
                    "slategray",
                    "slategrey",
                    "snow",
                    "springgreen",
                    "steelblue",
                    "tan",
                    "teal",
                    "thistle",
                    "tomato",
                    "turquoise",
                    "violet",
                    "wheat",
                    "white",
                    "whitesmoke",
                    "yellow",
                    "yellowgreen"
                  ],
                  "type": "string"
                },
                {
                  "type": "string"
                }
              ]
            }
          },
          "group_tooltips": {
            "title": "Group Tooltips",
            "description": "Assign an optional tooltip to each group.",
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "tooltip": {
            "title": "Tooltip",
            "description": "Tooltip shown when hovering over the mesh. Assigned group_tooltips take precedence.",
            "type": "string"
          },
          "color": {
            "title": "Color",
            "description": "Default color of the triangles.",
            "anyOf": [
              {
                "enum": [
                  "aliceblue",
                  "antiquewhite",
                  "aqua",
                  "aquamarine",
                  "azure",
                  "beige",
                  "bisque",
                  "black",
                  "blanchedalmond",
                  "blue",
                  "blueviolet",
                  "brown",
                  "burlywood",
                  "cadetblue",
                  "chartreuse",
                  "chocolate",
                  "coral",
                  "cornflowerblue",
                  "cornsilk",
                  "crimson",
                  "cyan",
                  "darkblue",
                  "darkcyan",
                  "darkgoldenrod",
                  "darkgray",
                  "darkgreen",
                  "darkgrey",
                  "darkkhaki",
                  "darkmagenta",
                  "darkolivegreen",
                  "darkorange",
                  "darkorchid",
                  "darkred",
                  "darksalmon",
                  "darkseagreen",
                  "darkslateblue",
                  "darkslategray",
                  "darkslategrey",
                  "darkturquoise",
                  "darkviolet",
                  "deeppink",
                  "deepskyblue",
                  "dimgray",
                  "dimgrey",
                  "dodgerblue",
                  "firebrick",
                  "floralwhite",
                  "forestgreen",
                  "fuchsia",
                  "gainsboro",
                  "ghostwhite",
                  "gold",
                  "goldenrod",
                  "gray",
                  "green",
                  "greenyellow",
                  "grey",
                  "honeydew",
                  "hotpink",
                  "indianred",
                  "indigo",
                  "ivory",
                  "khaki",
                  "lavender",
                  "lavenderblush",
                  "lawngreen",
                  "lemonchiffon",
                  "lightblue",
                  "lightcoral",
                  "lightcyan",
                  "lightgoldenrodyellow",
                  "lightgray",
                  "lightgreen",
                  "lightgrey",
                  "lightpink",
                  "lightsalmon",
                  "lightseagreen",
                  "lightskyblue",
                  "lightslategray",
                  "lightslategrey",
                  "lightsteelblue",
                  "lightyellow",
                  "lime",
                  "limegreen",
                  "linen",
                  "magenta",
                  "maroon",
                  "mediumaquamarine",
                  "mediumblue",
                  "mediumorchid",
                  "mediumpurple",
                  "mediumseagreen",
                  "mediumslateblue",
                  "mediumspringgreen",
                  "mediumturquoise",
                  "mediumvioletred",
                  "midnightblue",
                  "mintcream",
                  "mistyrose",
                  "moccasin",
                  "navajowhite",
                  "navy",
                  "oldlace",
                  "olive",
                  "olivedrab",
                  "orange",
                  "orangered",
                  "orchid",
                  "palegoldenrod",
                  "palegreen",
                  "paleturquoise",
                  "palevioletred",
                  "papayawhip",
                  "peachpuff",
                  "peru",
                  "pink",
                  "plum",
                  "powderblue",
                  "purple",
                  "red",
                  "rosybrown",
                  "royalblue",
                  "saddlebrown",
                  "salmon",
                  "sandybrown",
                  "seagreen",
                  "seashell",
                  "sienna",
                  "silver",
                  "skyblue",
                  "slateblue",
                  "slategray",
                  "slategrey",
                  "snow",
                  "springgreen",
                  "steelblue",
                  "tan",
                  "teal",
                  "thistle",
                  "tomato",
                  "turquoise",
                  "violet",
                  "wheat",
                  "white",
                  "whitesmoke",
                  "yellow",
                  "yellowgreen"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          },
          "show_triangles": {
            "title": "Show Triangles",
            "description": "Determine whether to render triangles of the mesh",
            "type": "boolean"
          },
          "show_wireframe": {
            "title": "Show Wireframe",
            "description": "Determine whether to render wireframe of the mesh",
            "type": "boolean"
          },
          "wireframe_width": {
            "title": "Wireframe Width",
            "description": "Wireframe line width",
            "type": "number"
          },
          "wireframe_color": {
            "title": "Wireframe Color",
            "description": "Wireframe color, uses triangle/group colors when not set",
            "anyOf": [
              {
                "enum": [
                  "aliceblue",
                  "antiquewhite",
                  "aqua",
                  "aquamarine",
                  "azure",
                  "beige",
                  "bisque",
                  "black",
                  "blanchedalmond",
                  "blue",
                  "blueviolet",
                  "brown",
                  "burlywood",
                  "cadetblue",
                  "chartreuse",
                  "chocolate",
                  "coral",
                  "cornflowerblue",
                  "cornsilk",
                  "crimson",
                  "cyan",
                  "darkblue",
                  "darkcyan",
                  "darkgoldenrod",
                  "darkgray",
                  "darkgreen",
                  "darkgrey",
                  "darkkhaki",
                  "darkmagenta",
                  "darkolivegreen",
                  "darkorange",
                  "darkorchid",
                  "darkred",
                  "darksalmon",
                  "darkseagreen",
                  "darkslateblue",
                  "darkslategray",
                  "darkslategrey",
                  "darkturquoise",
                  "darkviolet",
                  "deeppink",
                  "deepskyblue",
                  "dimgray",
                  "dimgrey",
                  "dodgerblue",
                  "firebrick",
                  "floralwhite",
                  "forestgreen",
                  "fuchsia",
                  "gainsboro",
                  "ghostwhite",
                  "gold",
                  "goldenrod",
                  "gray",
                  "green",
                  "greenyellow",
                  "grey",
                  "honeydew",
                  "hotpink",
                  "indianred",
                  "indigo",
                  "ivory",
                  "khaki",
                  "lavender",
                  "lavenderblush",
                  "lawngreen",
                  "lemonchiffon",
                  "lightblue",
                  "lightcoral",
                  "lightcyan",
                  "lightgoldenrodyellow",
                  "lightgray",
                  "lightgreen",
                  "lightgrey",
                  "lightpink",
                  "lightsalmon",
                  "lightseagreen",
                  "lightskyblue",
                  "lightslategray",
                  "lightslategrey",
                  "lightsteelblue",
                  "lightyellow",
                  "lime",
                  "limegreen",
                  "linen",
                  "magenta",
                  "maroon",
                  "mediumaquamarine",
                  "mediumblue",
                  "mediumorchid",
                  "mediumpurple",
                  "mediumseagreen",
                  "mediumslateblue",
                  "mediumspringgreen",
                  "mediumturquoise",
                  "mediumvioletred",
                  "midnightblue",
                  "mintcream",
                  "mistyrose",
                  "moccasin",
                  "navajowhite",
                  "navy",
                  "oldlace",
                  "olive",
                  "olivedrab",
                  "orange",
                  "orangered",
                  "orchid",
                  "palegoldenrod",
                  "palegreen",
                  "paleturquoise",
                  "palevioletred",
                  "papayawhip",
                  "peachpuff",
                  "peru",
                  "pink",
                  "plum",
                  "powderblue",
                  "purple",
                  "red",
                  "rosybrown",
                  "royalblue",
                  "saddlebrown",
                  "salmon",
                  "sandybrown",
                  "seagreen",
                  "seashell",
                  "sienna",
                  "silver",
                  "skyblue",
                  "slateblue",
                  "slategray",
                  "slategrey",
                  "snow",
                  "springgreen",
                  "steelblue",
                  "tan",
                  "teal",
                  "thistle",
                  "tomato",
                  "turquoise",
                  "violet",
                  "wheat",
                  "white",
                  "whitesmoke",
                  "yellow",
                  "yellowgreen"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "vertices",
          "indices"
        ]
      },
      "Node": {
        "$ref": "#/definitions/Node",
        "definitions": {
          "Node": {
            "title": "Node",
            "description": "Base impl of all state tree nodes.",
            "type": "object",
            "properties": {
              "kind": {
                "title": "Kind",
                "description": "The type of this node.",
                "enum": [
                  "root",
                  "camera",
                  "canvas",
                  "color",
                  "color_from_source",
                  "color_from_uri",
                  "component",
                  "component_from_source",
                  "component_from_uri",
                  "download",
                  "focus",
                  "label",
                  "label_from_source",
                  "label_from_uri",
                  "mesh_from_source",
                  "mesh_from_uri",
                  "opacity",
                  "parse",
                  "primitives",
                  "primitives_from_uri",
                  "primitive",
                  "representation",
                  "structure",
                  "tooltip",
                  "tooltip_from_source",
                  "tooltip_from_uri",
                  "transform",
                  "volume",
                  "volume_representation"
                ],
                "type": "string"
              },
              "params": {
                "title": "Params",
                "description": "Optional params that are needed for this node.",
                "type": "object"
              },
              "children": {
                "title": "Children",
                "description": "Optional collection of nested child nodes.",
                "type": "array",
                "items": {
                  "$ref": "#/definitions/Node"
                }
              },
              "custom": {
                "title": "Custom",
                "description": "Custom data to store attached to this node.",
                "type": "object"
              },
              "ref": {
                "title": "Ref",
                "description": "Optional reference that can be used to access this node.",
                "type": "string"
              }
            },
            "required": [
              "kind"
            ]
          }
        }
      },
      "OpacityInlineParams": {
        "title": "OpacityInlineParams",
        "description": "Change the opacity/transparency of a representation based on parameters.",
        "type": "object",
        "properties": {
          "selector": {
            "title": "Selector",
            "description": "Describes one or more selections or one of the enumerated selectors.",
            "anyOf": [
              {
                "enum": [
                  "all",
                  "polymer",
                  "protein",
                  "nucleic",
                  "branched",
                  "ligand",
                  "ion",
                  "water",
                  "coarse"
                ],
                "type": "string"
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/ComponentExpression"
                }
              }
            ]
          },
          "opacity": {
            "title": "Opacity",
            "description": "Opacity of a representation. 0.0: fully transparent, 1.0: fully opaque",
            "type": "number"
          }
        },
        "required": [
          "opacity"
        ],
        "definitions": {
          "ComponentExpression": {
            "title": "ComponentExpression",
            "description": "Component expressions are used to make selections.",
            "type": "object",
            "properties": {
              "label_entity_id": {
                "title": "Label Entity Id",
                "description": "Select an entity by its identifier",
                "type": "string"
              },
              "label_asym_id": {
                "title": "Label Asym Id",
                "description": "Select a chain using its standard, programmatically-assigned identifier",
                "type": "string"
              },
              "auth_asym_id": {
                "title": "Auth Asym Id",
                "description": "Select a chain using its legacy, author-assigned identifier",
                "type": "string"
              },
              "label_seq_id": {
                "title": "Label Seq Id",
                "description": "Select a residue by its standard, programmatically-assigned sequence position",
                "type": "integer"
              },
              "auth_seq_id": {
                "title": "Auth Seq Id",
                "description": "Select a residue by its legacy, author-assigned sequence position",
                "type": "integer"
              },
              "pdbx_PDB_ins_code": {
                "title": "Pdbx Pdb Ins Code",
                "description": "Optional legacy insertion code, only relevant for `auth_seq_id`",
                "type": "string"
              },
              "beg_label_seq_id": {
                "title": "Beg Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_label_seq_id`.",
                "type": "integer"
              },
              "end_label_seq_id": {
                "title": "End Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_label_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "beg_auth_seq_id": {
                "title": "Beg Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_auth_seq_id`.",
                "type": "integer"
              },
              "end_auth_seq_id": {
                "title": "End Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_auth_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "residue_index": {
                "title": "Residue Index",
                "description": "0-based residue index in the source file",
                "type": "integer"
              },
              "label_atom_id": {
                "title": "Label Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.label_atom_id`)",
                "type": "string"
              },
              "auth_atom_id": {
                "title": "Auth Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.auth_atom_id`)",
                "type": "string"
              },
              "type_symbol": {
                "title": "Type Symbol",
                "description": "Element symbol like 'H', 'HE', 'LI', 'BE' (`_atom_site.type_symbol`)",
                "type": "string"
              },
              "atom_id": {
                "title": "Atom Id",
                "description": "Unique atom identifier (`_atom_site.id`)",
                "type": "integer"
              },
              "atom_index": {
                "title": "Atom Index",
                "description": "0-based atom index in the source file",
                "type": "integer"
              }
            }
          }
        }
      },
      "ParseParams": {
        "title": "ParseParams",
        "description": "Parse node, describing how to parse downloaded data.",
        "type": "object",
        "properties": {
          "format": {
            "title": "Format",
            "description": "The format of the structure data.",
            "enum": [
              "mmcif",
              "bcif",
              "pdb",
              "map"
            ],
            "type": "string"
          }
        },
        "required": [
          "format"
        ]
      },
      "PrimitiveComponentExpressions": {
        "title": "PrimitiveComponentExpressions",
        "type": "object",
        "properties": {
          "structure_ref": {
            "title": "Structure Ref",
            "description": "Reference to a structure node to apply this expresion to. If undefined, get the structure implicitly from the tree.",
            "type": "string"
          },
          "expression_schema": {
            "title": "Expression Schema",
            "description": "Schema the expressions follow, used for optimization of structure query resolution.",
            "enum": [
              "whole_structure",
              "entity",
              "chain",
              "auth_chain",
              "residue",
              "auth_residue",
              "residue_range",
              "auth_residue_range",
              "atom",
              "auth_atom",
              "all_atomic"
            ],
            "type": "string"
          },
          "expressions": {
            "title": "Expressions",
            "description": "Expression refencing elements froms the structure_ref.",
            "type": "array",
            "items": {
              "$ref": "#/definitions/ComponentExpression"
            }
          }
        },
        "required": [
          "expressions"
        ],
        "definitions": {
          "ComponentExpression": {
            "title": "ComponentExpression",
            "description": "Component expressions are used to make selections.",
            "type": "object",
            "properties": {
              "label_entity_id": {
                "title": "Label Entity Id",
                "description": "Select an entity by its identifier",
                "type": "string"
              },
              "label_asym_id": {
                "title": "Label Asym Id",
                "description": "Select a chain using its standard, programmatically-assigned identifier",
                "type": "string"
              },
              "auth_asym_id": {
                "title": "Auth Asym Id",
                "description": "Select a chain using its legacy, author-assigned identifier",
                "type": "string"
              },
              "label_seq_id": {
                "title": "Label Seq Id",
                "description": "Select a residue by its standard, programmatically-assigned sequence position",
                "type": "integer"
              },
              "auth_seq_id": {
                "title": "Auth Seq Id",
                "description": "Select a residue by its legacy, author-assigned sequence position",
                "type": "integer"
              },
              "pdbx_PDB_ins_code": {
                "title": "Pdbx Pdb Ins Code",
                "description": "Optional legacy insertion code, only relevant for `auth_seq_id`",
                "type": "string"
              },
              "beg_label_seq_id": {
                "title": "Beg Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_label_seq_id`.",
                "type": "integer"
              },
              "end_label_seq_id": {
                "title": "End Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_label_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "beg_auth_seq_id": {
                "title": "Beg Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_auth_seq_id`.",
                "type": "integer"
              },
              "end_auth_seq_id": {
                "title": "End Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_auth_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "residue_index": {
                "title": "Residue Index",
                "description": "0-based residue index in the source file",
                "type": "integer"
              },
              "label_atom_id": {
                "title": "Label Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.label_atom_id`)",
                "type": "string"
              },
              "auth_atom_id": {
                "title": "Auth Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.auth_atom_id`)",
                "type": "string"
              },
              "type_symbol": {
                "title": "Type Symbol",
                "description": "Element symbol like 'H', 'HE', 'LI', 'BE' (`_atom_site.type_symbol`)",
                "type": "string"
              },
              "atom_id": {
                "title": "Atom Id",
                "description": "Unique atom identifier (`_atom_site.id`)",
                "type": "integer"
              },
              "atom_index": {
                "title": "Atom Index",
                "description": "0-based atom index in the source file",
                "type": "integer"
              }
            }
          }
        }
      },
      "PrimitiveLabelParams": {
        "title": "PrimitiveLabelParams",
        "type": "object",
        "properties": {
          "kind": {
            "title": "Kind",
            "default": "label",
            "enum": [
              "label"
            ],
            "type": "string"
          },
          "position": {
            "title": "Position",
            "description": "Position of this label.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "$ref": "#/definitions/PrimitiveComponentExpressions"
              }
            ]
          },
          "text": {
            "title": "Text",
            "default": "The label.",
            "type": "string"
          },
          "label_size": {
            "title": "Label Size",
            "description": "Size of the label.",
            "type": "number"
          },
          "label_color": {
            "title": "Label Color",
            "description": "Color of the label.",
            "anyOf": [
              {
                "enum": [
                  "aliceblue",
                  "antiquewhite",
                  "aqua",
                  "aquamarine",
                  "azure",
                  "beige",
                  "bisque",
                  "black",
                  "blanchedalmond",
                  "blue",
                  "blueviolet",
                  "brown",
                  "burlywood",
                  "cadetblue",
                  "chartreuse",
                  "chocolate",
                  "coral",
                  "cornflowerblue",
                  "cornsilk",
                  "crimson",
                  "cyan",
                  "darkblue",
                  "darkcyan",
                  "darkgoldenrod",
                  "darkgray",
                  "darkgreen",
                  "darkgrey",
                  "darkkhaki",
                  "darkmagenta",
                  "darkolivegreen",
                  "darkorange",
                  "darkorchid",
                  "darkred",
                  "darksalmon",
                  "darkseagreen",
                  "darkslateblue",
                  "darkslategray",
                  "darkslategrey",
                  "darkturquoise",
                  "darkviolet",
                  "deeppink",
                  "deepskyblue",
                  "dimgray",
                  "dimgrey",
                  "dodgerblue",
                  "firebrick",
                  "floralwhite",
                  "forestgreen",
                  "fuchsia",
                  "gainsboro",
                  "ghostwhite",
                  "gold",
                  "goldenrod",
                  "gray",
                  "green",
                  "greenyellow",
                  "grey",
                  "honeydew",
                  "hotpink",
                  "indianred",
                  "indigo",
                  "ivory",
                  "khaki",
                  "lavender",
                  "lavenderblush",
                  "lawngreen",
                  "lemonchiffon",
                  "lightblue",
                  "lightcoral",
                  "lightcyan",
                  "lightgoldenrodyellow",
                  "lightgray",
                  "lightgreen",
                  "lightgrey",
                  "lightpink",
                  "lightsalmon",
                  "lightseagreen",
                  "lightskyblue",
                  "lightslategray",
                  "lightslategrey",
                  "lightsteelblue",
                  "lightyellow",
                  "lime",
                  "limegreen",
                  "linen",
                  "magenta",
                  "maroon",
                  "mediumaquamarine",
                  "mediumblue",
                  "mediumorchid",
                  "mediumpurple",
                  "mediumseagreen",
                  "mediumslateblue",
                  "mediumspringgreen",
                  "mediumturquoise",
                  "mediumvioletred",
                  "midnightblue",
                  "mintcream",
                  "mistyrose",
                  "moccasin",
                  "navajowhite",
                  "navy",
                  "oldlace",
                  "olive",
                  "olivedrab",
                  "orange",
                  "orangered",
                  "orchid",
                  "palegoldenrod",
                  "palegreen",
                  "paleturquoise",
                  "palevioletred",
                  "papayawhip",
                  "peachpuff",
                  "peru",
                  "pink",
                  "plum",
                  "powderblue",
                  "purple",
                  "red",
                  "rosybrown",
                  "royalblue",
                  "saddlebrown",
                  "salmon",
                  "sandybrown",
                  "seagreen",
                  "seashell",
                  "sienna",
                  "silver",
                  "skyblue",
                  "slateblue",
                  "slategray",
                  "slategrey",
                  "snow",
                  "springgreen",
                  "steelblue",
                  "tan",
                  "teal",
                  "thistle",
                  "tomato",
                  "turquoise",
                  "violet",
                  "wheat",
                  "white",
                  "whitesmoke",
                  "yellow",
                  "yellowgreen"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          },
          "label_offset": {
            "title": "Label Offset",
            "description": "Camera-facing offset to prevent overlap with geometry.",
            "type": "number"
          }
        },
        "required": [
          "position"
        ],
        "definitions": {
          "ComponentExpression": {
            "title": "ComponentExpression",
            "description": "Component expressions are used to make selections.",
            "type": "object",
            "properties": {
              "label_entity_id": {
                "title": "Label Entity Id",
                "description": "Select an entity by its identifier",
                "type": "string"
              },
              "label_asym_id": {
                "title": "Label Asym Id",
                "description": "Select a chain using its standard, programmatically-assigned identifier",
                "type": "string"
              },
              "auth_asym_id": {
                "title": "Auth Asym Id",
                "description": "Select a chain using its legacy, author-assigned identifier",
                "type": "string"
              },
              "label_seq_id": {
                "title": "Label Seq Id",
                "description": "Select a residue by its standard, programmatically-assigned sequence position",
                "type": "integer"
              },
              "auth_seq_id": {
                "title": "Auth Seq Id",
                "description": "Select a residue by its legacy, author-assigned sequence position",
                "type": "integer"
              },
              "pdbx_PDB_ins_code": {
                "title": "Pdbx Pdb Ins Code",
                "description": "Optional legacy insertion code, only relevant for `auth_seq_id`",
                "type": "string"
              },
              "beg_label_seq_id": {
                "title": "Beg Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_label_seq_id`.",
                "type": "integer"
              },
              "end_label_seq_id": {
                "title": "End Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_label_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "beg_auth_seq_id": {
                "title": "Beg Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_auth_seq_id`.",
                "type": "integer"
              },
              "end_auth_seq_id": {
                "title": "End Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_auth_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "residue_index": {
                "title": "Residue Index",
                "description": "0-based residue index in the source file",
                "type": "integer"
              },
              "label_atom_id": {
                "title": "Label Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.label_atom_id`)",
                "type": "string"
              },
              "auth_atom_id": {
                "title": "Auth Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.auth_atom_id`)",
                "type": "string"
              },
              "type_symbol": {
                "title": "Type Symbol",
                "description": "Element symbol like 'H', 'HE', 'LI', 'BE' (`_atom_site.type_symbol`)",
                "type": "string"
              },
              "atom_id": {
                "title": "Atom Id",
                "description": "Unique atom identifier (`_atom_site.id`)",
                "type": "integer"
              },
              "atom_index": {
                "title": "Atom Index",
                "description": "0-based atom index in the source file",
                "type": "integer"
              }
            }
          },
          "PrimitiveComponentExpressions": {
            "title": "PrimitiveComponentExpressions",
            "type": "object",
            "properties": {
              "structure_ref": {
                "title": "Structure Ref",
                "description": "Reference to a structure node to apply this expresion to. If undefined, get the structure implicitly from the tree.",
                "type": "string"
              },
              "expression_schema": {
                "title": "Expression Schema",
                "description": "Schema the expressions follow, used for optimization of structure query resolution.",
                "enum": [
                  "whole_structure",
                  "entity",
                  "chain",
                  "auth_chain",
                  "residue",
                  "auth_residue",
                  "residue_range",
                  "auth_residue_range",
                  "atom",
                  "auth_atom",
                  "all_atomic"
                ],
                "type": "string"
              },
              "expressions": {
                "title": "Expressions",
                "description": "Expression refencing elements froms the structure_ref.",
                "type": "array",
                "items": {
                  "$ref": "#/definitions/ComponentExpression"
                }
              }
            },
            "required": [
              "expressions"
            ]
          }
        }
      },
      "PrimitivesFromUriParams": {
        "title": "PrimitivesFromUriParams",
        "type": "object",
        "properties": {
          "uri": {
            "title": "Uri",
            "description": "Location of the resource",
            "type": "string"
          },
          "format": {
            "title": "Format",
            "description": "Format of the data",
            "enum": [
              "mvs-node-json"
            ],
            "type": "string"
          },
          "references": {
            "title": "References",
            "description": "List of nodes the data are referencing",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "uri",
          "format"
        ]
      },
      "PrimitivesParams": {
        "title": "PrimitivesParams",
        "type": "object",
        "properties": {
          "color": {
            "title": "Color",
            "description": "Default color for primitives in this group",
            "anyOf": [
              {
                "enum": [
                  "aliceblue",
                  "antiquewhite",
                  "aqua",
                  "aquamarine",
                  "azure",
                  "beige",
                  "bisque",
                  "black",
                  "blanchedalmond",
                  "blue",
                  "blueviolet",
                  "brown",
                  "burlywood",
                  "cadetblue",
                  "chartreuse",
                  "chocolate",
                  "coral",
                  "cornflowerblue",
                  "cornsilk",
                  "crimson",
                  "cyan",
                  "darkblue",
                  "darkcyan",
                  "darkgoldenrod",
                  "darkgray",
                  "darkgreen",
                  "darkgrey",
                  "darkkhaki",
                  "darkmagenta",
                  "darkolivegreen",
                  "darkorange",
                  "darkorchid",
                  "darkred",
                  "darksalmon",
                  "darkseagreen",
                  "darkslateblue",
                  "darkslategray",
                  "darkslategrey",
                  "darkturquoise",
                  "darkviolet",
                  "deeppink",
                  "deepskyblue",
                  "dimgray",
                  "dimgrey",
                  "dodgerblue",
                  "firebrick",
                  "floralwhite",
                  "forestgreen",
                  "fuchsia",
                  "gainsboro",
                  "ghostwhite",
                  "gold",
                  "goldenrod",
                  "gray",
                  "green",
                  "greenyellow",
                  "grey",
                  "honeydew",
                  "hotpink",
                  "indianred",
                  "indigo",
                  "ivory",
                  "khaki",
                  "lavender",
                  "lavenderblush",
                  "lawngreen",
                  "lemonchiffon",
                  "lightblue",
                  "lightcoral",
                  "lightcyan",
                  "lightgoldenrodyellow",
                  "lightgray",
                  "lightgreen",
                  "lightgrey",
                  "lightpink",
                  "lightsalmon",
                  "lightseagreen",
                  "lightskyblue",
                  "lightslategray",
                  "lightslategrey",
                  "lightsteelblue",
                  "lightyellow",
                  "lime",
                  "limegreen",
                  "linen",
                  "magenta",
                  "maroon",
                  "mediumaquamarine",
                  "mediumblue",
                  "mediumorchid",
                  "mediumpurple",
                  "mediumseagreen",
                  "mediumslateblue",
                  "mediumspringgreen",
                  "mediumturquoise",
                  "mediumvioletred",
                  "midnightblue",
                  "mintcream",
                  "mistyrose",
                  "moccasin",
                  "navajowhite",
                  "navy",
                  "oldlace",
                  "olive",
                  "olivedrab",
                  "orange",
                  "orangered",
                  "orchid",
                  "palegoldenrod",
                  "palegreen",
                  "paleturquoise",
                  "palevioletred",
                  "papayawhip",
                  "peachpuff",
                  "peru",
                  "pink",
                  "plum",
                  "powderblue",
                  "purple",
                  "red",
                  "rosybrown",
                  "royalblue",
                  "saddlebrown",
                  "salmon",
                  "sandybrown",
                  "seagreen",
                  "seashell",
                  "sienna",
                  "silver",
                  "skyblue",
                  "slateblue",
                  "slategray",
                  "slategrey",
                  "snow",
                  "springgreen",
                  "steelblue",
                  "tan",
                  "teal",
                  "thistle",
                  "tomato",
                  "turquoise",
                  "violet",
                  "wheat",
                  "white",
                  "whitesmoke",
                  "yellow",
                  "yellowgreen"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          },
          "label_color": {
            "title": "Label Color",
            "description": "Default label color for primitives in this group",
            "anyOf": [
              {
                "enum": [
                  "aliceblue",
                  "antiquewhite",
                  "aqua",
                  "aquamarine",
                  "azure",
                  "beige",
                  "bisque",
                  "black",
                  "blanchedalmond",
                  "blue",
                  "blueviolet",
                  "brown",
                  "burlywood",
                  "cadetblue",
                  "chartreuse",
                  "chocolate",
                  "coral",
                  "cornflowerblue",
                  "cornsilk",
                  "crimson",
                  "cyan",
                  "darkblue",
                  "darkcyan",
                  "darkgoldenrod",
                  "darkgray",
                  "darkgreen",
                  "darkgrey",
                  "darkkhaki",
                  "darkmagenta",
                  "darkolivegreen",
                  "darkorange",
                  "darkorchid",
                  "darkred",
                  "darksalmon",
                  "darkseagreen",
                  "darkslateblue",
                  "darkslategray",
                  "darkslategrey",
                  "darkturquoise",
                  "darkviolet",
                  "deeppink",
                  "deepskyblue",
                  "dimgray",
                  "dimgrey",
                  "dodgerblue",
                  "firebrick",
                  "floralwhite",
                  "forestgreen",
                  "fuchsia",
                  "gainsboro",
                  "ghostwhite",
                  "gold",
                  "goldenrod",
                  "gray",
                  "green",
                  "greenyellow",
                  "grey",
                  "honeydew",
                  "hotpink",
                  "indianred",
                  "indigo",
                  "ivory",
                  "khaki",
                  "lavender",
                  "lavenderblush",
                  "lawngreen",
                  "lemonchiffon",
                  "lightblue",
                  "lightcoral",
                  "lightcyan",
                  "lightgoldenrodyellow",
                  "lightgray",
                  "lightgreen",
                  "lightgrey",
                  "lightpink",
                  "lightsalmon",
                  "lightseagreen",
                  "lightskyblue",
                  "lightslategray",
                  "lightslategrey",
                  "lightsteelblue",
                  "lightyellow",
                  "lime",
                  "limegreen",
                  "linen",
                  "magenta",
                  "maroon",
                  "mediumaquamarine",
                  "mediumblue",
                  "mediumorchid",
                  "mediumpurple",
                  "mediumseagreen",
                  "mediumslateblue",
                  "mediumspringgreen",
                  "mediumturquoise",
                  "mediumvioletred",
                  "midnightblue",
                  "mintcream",
                  "mistyrose",
                  "moccasin",
                  "navajowhite",
                  "navy",
                  "oldlace",
                  "olive",
                  "olivedrab",
                  "orange",
                  "orangered",
                  "orchid",
                  "palegoldenrod",
                  "palegreen",
                  "paleturquoise",
                  "palevioletred",
                  "papayawhip",
                  "peachpuff",
                  "peru",
                  "pink",
                  "plum",
                  "powderblue",
                  "purple",
                  "red",
                  "rosybrown",
                  "royalblue",
                  "saddlebrown",
                  "salmon",
                  "sandybrown",
                  "seagreen",
                  "seashell",
                  "sienna",
                  "silver",
                  "skyblue",
                  "slateblue",
                  "slategray",
                  "slategrey",
                  "snow",
                  "springgreen",
                  "steelblue",
                  "tan",
                  "teal",
                  "thistle",
                  "tomato",
                  "turquoise",
                  "violet",
                  "wheat",
                  "white",
                  "whitesmoke",
                  "yellow",
                  "yellowgreen"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          },
          "tooltip": {
            "title": "Tooltip",
            "description": "Default tooltip for primitives in this group",
            "type": "string"
          },
          "opacity": {
            "title": "Opacity",
            "description": "Opacity of primitive geometry in this group",
            "type": "number"
          },
          "label_opacity": {
            "title": "Label Opacity",
            "description": "Opacity of primitive labels in this group",
            "type": "number"
          },
          "instances": {
            "title": "Instances",
            "description": "Instances of this primitive group defined as 4x4 column major (j * 4 + i indexing) transformation matrices",
            "type": "array",
            "items": {
              "type": "array",
              "minItems": 16,
              "maxItems": 16,
              "items": [
                {
                  "type": "number"
                },
                {
                  "type": "number"
                },
                {
                  "type": "number"
                },
                {
                  "type": "number"
                },
                {
                  "type": "number"
                },
                {
                  "type": "number"
                },
                {
                  "type": "number"
                },
                {
                  "type": "number"
                },
                {
                  "type": "number"
                },
                {
                  "type": "number"
                },
                {
                  "type": "number"
                },
                {
                  "type": "number"
                },
                {
                  "type": "number"
                },
                {
                  "type": "number"
                },
                {
                  "type": "number"
                },
                {
                  "type": "number"
                }
              ]
            }
          }
        }
      },
      "RepresentationParams": {
        "title": "RepresentationParams",
        "description": "Representation node, describing how to represent a component.",
        "type": "object",
        "properties": {
          "type": {
            "title": "Type",
            "description": "Representation type, i.e. cartoon, ball_and_stick, etc.",
            "enum": [
              "ball_and_stick",
              "spacefill",
              "cartoon",
              "surface",
              "isosurface",
              "carbohydrate"
            ],
            "type": "string"
          }
        },
        "required": [
          "type"
        ]
      },
      "Snapshot": {
        "title": "Snapshot",
        "description": "Root node of an individual state tree (snapshot) within a collection of snapshots (`States`).",
        "type": "object",
        "properties": {
          "root": {
            "title": "Root",
            "description": "Root of the node tree.",
            "allOf": [
              {
                "$ref": "#/definitions/Node"
              }
            ]
          },
          "metadata": {
            "title": "Metadata",
            "description": "Associated metadata.",
            "allOf": [
              {
                "$ref": "#/definitions/SnapshotMetadata"
              }
            ]
          }
        },
        "required": [
          "root",
          "metadata"
        ],
        "definitions": {
          "Node": {
            "title": "Node",
            "description": "Base impl of all state tree nodes.",
            "type": "object",
            "properties": {
              "kind": {
                "title": "Kind",
                "description": "The type of this node.",
                "enum": [
                  "root",
                  "camera",
                  "canvas",
                  "color",
                  "color_from_source",
                  "color_from_uri",
                  "component",
                  "component_from_source",
                  "component_from_uri",
                  "download",
                  "focus",
                  "label",
                  "label_from_source",
                  "label_from_uri",
                  "mesh_from_source",
                  "mesh_from_uri",
                  "opacity",
                  "parse",
                  "primitives",
                  "primitives_from_uri",
                  "primitive",
                  "representation",
                  "structure",
                  "tooltip",
                  "tooltip_from_source",
                  "tooltip_from_uri",
                  "transform",
                  "volume",
                  "volume_representation"
                ],
                "type": "string"
              },
              "params": {
                "title": "Params",
                "description": "Optional params that are needed for this node.",
                "type": "object"
              },
              "children": {
                "title": "Children",
                "description": "Optional collection of nested child nodes.",
                "type": "array",
                "items": {
                  "$ref": "#/definitions/Node"
                }
              },
              "custom": {
                "title": "Custom",
                "description": "Custom data to store attached to this node.",
                "type": "object"
              },
              "ref": {
                "title": "Ref",
                "description": "Optional reference that can be used to access this node.",
                "type": "string"
              }
            },
            "required": [
              "kind"
            ]
          },
          "SnapshotMetadata": {
            "title": "SnapshotMetadata",
            "description": "Metadata for an individual snapshot.",
            "type": "object",
            "properties": {
              "title": {
                "title": "Title",
                "description": "Name of this snapshot.",
                "type": "string"
              },
              "description": {
                "title": "Description",
                "description": "Detailed description of this snapshot.",
                "type": "string"
              },
              "description_format": {
                "title": "Description Format",
                "description": "Format of `description`. Default is 'markdown'.",
                "enum": [
                  "markdown",
                  "plaintext"
                ],
                "type": "string"
              },
              "key": {
                "title": "Key",
                "description": "Unique identifier of this state, useful when working with collections of states.",
                "type": "string"
              },
              "linger_duration_ms": {
                "title": "Linger Duration Ms",
                "description": "Timespan for snapshot.",
                "type": "integer"
              },
              "transition_duration_ms": {
                "title": "Transition Duration Ms",
                "description": "Timespan for the animation to the next snapshot. Leave empty to skip animations.",
                "type": "integer"
              }
            },
            "required": [
              "linger_duration_ms"
            ]
          }
        }
      },
      "SnapshotMetadata": {
        "title": "SnapshotMetadata",
        "description": "Metadata for an individual snapshot.",
        "type": "object",
        "properties": {
          "title": {
            "title": "Title",
            "description": "Name of this snapshot.",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "description": "Detailed description of this snapshot.",
            "type": "string"
          },
          "description_format": {
            "title": "Description Format",
            "description": "Format of `description`. Default is 'markdown'.",
            "enum": [
              "markdown",
              "plaintext"
            ],
            "type": "string"
          },
          "key": {
            "title": "Key",
            "description": "Unique identifier of this state, useful when working with collections of states.",
            "type": "string"
          },
          "linger_duration_ms": {
            "title": "Linger Duration Ms",
            "description": "Timespan for snapshot.",
            "type": "integer"
          },
          "transition_duration_ms": {
            "title": "Transition Duration Ms",
            "description": "Timespan for the animation to the next snapshot. Leave empty to skip animations.",
            "type": "integer"
          }
        },
        "required": [
          "linger_duration_ms"
        ]
      },
      "SpacefillParams": {
        "title": "SpacefillParams",
        "description": "Representation node, describing how to represent a component.",
        "type": "object",
        "properties": {
          "type": {
            "title": "Type",
            "default": "spacefill",
            "enum": [
              "spacefill"
            ],
            "type": "string"
          },
          "ignore_hydrogens": {
            "title": "Ignore Hydrogens",
            "descripton": "Controls whether hydrogen atoms are drawn.",
            "type": "boolean"
          },
          "size_factor": {
            "title": "Size Factor",
            "description": "Scales the corresponding visuals.",
            "type": "number"
          }
        }
      },
      "State": {
        "title": "State",
        "description": "Root node of a single state tree with metadata.",
        "type": "object",
        "properties": {
          "kind": {
            "title": "Kind",
            "description": "Specifies whether this is an individual state or a collection of states.",
            "default": "single",
            "const": "single",
            "enum": [
              "single",
              "multiple"
            ],
            "type": "string"
          },
          "root": {
            "title": "Root",
            "description": "Root of the node tree.",
            "allOf": [
              {
                "$ref": "#/definitions/Node"
              }
            ]
          },
          "metadata": {
            "title": "Metadata",
            "description": "Associated metadata.",
            "allOf": [
              {
                "$ref": "#/definitions/GlobalMetadata"
              }
            ]
          }
        },
        "required": [
          "root",
          "metadata"
        ],
        "definitions": {
          "Node": {
            "title": "Node",
            "description": "Base impl of all state tree nodes.",
            "type": "object",
            "properties": {
              "kind": {
                "title": "Kind",
                "description": "The type of this node.",
                "enum": [
                  "root",
                  "camera",
                  "canvas",
                  "color",
                  "color_from_source",
                  "color_from_uri",
                  "component",
                  "component_from_source",
                  "component_from_uri",
                  "download",
                  "focus",
                  "label",
                  "label_from_source",
                  "label_from_uri",
                  "mesh_from_source",
                  "mesh_from_uri",
                  "opacity",
                  "parse",
                  "primitives",
                  "primitives_from_uri",
                  "primitive",
                  "representation",
                  "structure",
                  "tooltip",
                  "tooltip_from_source",
                  "tooltip_from_uri",
                  "transform",
                  "volume",
                  "volume_representation"
                ],
                "type": "string"
              },
              "params": {
                "title": "Params",
                "description": "Optional params that are needed for this node.",
                "type": "object"
              },
              "children": {
                "title": "Children",
                "description": "Optional collection of nested child nodes.",
                "type": "array",
                "items": {
                  "$ref": "#/definitions/Node"
                }
              },
              "custom": {
                "title": "Custom",
                "description": "Custom data to store attached to this node.",
                "type": "object"
              },
              "ref": {
                "title": "Ref",
                "description": "Optional reference that can be used to access this node.",
                "type": "string"
              }
            },
            "required": [
              "kind"
            ]
          },
          "GlobalMetadata": {
            "title": "GlobalMetadata",
            "description": "Top-level metadata for a MVS file (single-state or multi-state).",
            "type": "object",
            "properties": {
              "title": {
                "title": "Title",
                "description": "Name of this view(s).",
                "type": "string"
              },
              "description": {
                "title": "Description",
                "description": "Detailed description of this view(s).",
                "type": "string"
              },
              "description_format": {
                "title": "Description Format",
                "description": "Format of `description`. Default is 'markdown'.",
                "enum": [
                  "markdown",
                  "plaintext"
                ],
                "type": "string"
              },
              "timestamp": {
                "title": "Timestamp",
                "description": "Timestamp when this file was exported.",
                "type": "string"
              },
              "version": {
                "title": "Version",
                "description": "Version of MolViewSpec used to write this file.",
                "type": "string"
              }
            }
          }
        }
      },
      "States": {
        "title": "States",
        "description": "Root node of state descriptions that encompass multiple distinct state trees (snapshots).",
        "type": "object",
        "properties": {
          "kind": {
            "title": "Kind",
            "description": "Specifies whether this is an individual state or a collection of states.",
            "default": "multiple",
            "const": "multiple",
            "enum": [
              "single",
              "multiple"
            ],
            "type": "string"
          },
          "metadata": {
            "title": "Metadata",
            "description": "Associated metadata.",
            "allOf": [
              {
                "$ref": "#/definitions/GlobalMetadata"
              }
            ]
          },
          "snapshots": {
            "title": "Snapshots",
            "description": "Ordered collection of individual states.",
            "type": "array",
            "items": {
              "$ref": "#/definitions/Snapshot"
            }
          }
        },
        "required": [
          "metadata",
          "snapshots"
        ],
        "definitions": {
          "GlobalMetadata": {
            "title": "GlobalMetadata",
            "description": "Top-level metadata for a MVS file (single-state or multi-state).",
            "type": "object",
            "properties": {
              "title": {
                "title": "Title",
                "description": "Name of this view(s).",
                "type": "string"
              },
              "description": {
                "title": "Description",
                "description": "Detailed description of this view(s).",
                "type": "string"
              },
              "description_format": {
                "title": "Description Format",
                "description": "Format of `description`. Default is 'markdown'.",
                "enum": [
                  "markdown",
                  "plaintext"
                ],
                "type": "string"
              },
              "timestamp": {
                "title": "Timestamp",
                "description": "Timestamp when this file was exported.",
                "type": "string"
              },
              "version": {
                "title": "Version",
                "description": "Version of MolViewSpec used to write this file.",
                "type": "string"
              }
            }
          },
          "Node": {
            "title": "Node",
            "description": "Base impl of all state tree nodes.",
            "type": "object",
            "properties": {
              "kind": {
                "title": "Kind",
                "description": "The type of this node.",
                "enum": [
                  "root",
                  "camera",
                  "canvas",
                  "color",
                  "color_from_source",
                  "color_from_uri",
                  "component",
                  "component_from_source",
                  "component_from_uri",
                  "download",
                  "focus",
                  "label",
                  "label_from_source",
                  "label_from_uri",
                  "mesh_from_source",
                  "mesh_from_uri",
                  "opacity",
                  "parse",
                  "primitives",
                  "primitives_from_uri",
                  "primitive",
                  "representation",
                  "structure",
                  "tooltip",
                  "tooltip_from_source",
                  "tooltip_from_uri",
                  "transform",
                  "volume",
                  "volume_representation"
                ],
                "type": "string"
              },
              "params": {
                "title": "Params",
                "description": "Optional params that are needed for this node.",
                "type": "object"
              },
              "children": {
                "title": "Children",
                "description": "Optional collection of nested child nodes.",
                "type": "array",
                "items": {
                  "$ref": "#/definitions/Node"
                }
              },
              "custom": {
                "title": "Custom",
                "description": "Custom data to store attached to this node.",
                "type": "object"
              },
              "ref": {
                "title": "Ref",
                "description": "Optional reference that can be used to access this node.",
                "type": "string"
              }
            },
            "required": [
              "kind"
            ]
          },
          "SnapshotMetadata": {
            "title": "SnapshotMetadata",
            "description": "Metadata for an individual snapshot.",
            "type": "object",
            "properties": {
              "title": {
                "title": "Title",
                "description": "Name of this snapshot.",
                "type": "string"
              },
              "description": {
                "title": "Description",
                "description": "Detailed description of this snapshot.",
                "type": "string"
              },
              "description_format": {
                "title": "Description Format",
                "description": "Format of `description`. Default is 'markdown'.",
                "enum": [
                  "markdown",
                  "plaintext"
                ],
                "type": "string"
              },
              "key": {
                "title": "Key",
                "description": "Unique identifier of this state, useful when working with collections of states.",
                "type": "string"
              },
              "linger_duration_ms": {
                "title": "Linger Duration Ms",
                "description": "Timespan for snapshot.",
                "type": "integer"
              },
              "transition_duration_ms": {
                "title": "Transition Duration Ms",
                "description": "Timespan for the animation to the next snapshot. Leave empty to skip animations.",
                "type": "integer"
              }
            },
            "required": [
              "linger_duration_ms"
            ]
          },
          "Snapshot": {
            "title": "Snapshot",
            "description": "Root node of an individual state tree (snapshot) within a collection of snapshots (`States`).",
            "type": "object",
            "properties": {
              "root": {
                "title": "Root",
                "description": "Root of the node tree.",
                "allOf": [
                  {
                    "$ref": "#/definitions/Node"
                  }
                ]
              },
              "metadata": {
                "title": "Metadata",
                "description": "Associated metadata.",
                "allOf": [
                  {
                    "$ref": "#/definitions/SnapshotMetadata"
                  }
                ]
              }
            },
            "required": [
              "root",
              "metadata"
            ]
          }
        }
      },
      "StructureParams": {
        "title": "StructureParams",
        "description": "Structure node, describing which type (assembly 1, deposited coordinates, etc.) of the parsed data to create.",
        "type": "object",
        "properties": {
          "type": {
            "title": "Type",
            "description": "How to interpret the loaded data",
            "enum": [
              "model",
              "assembly",
              "symmetry",
              "symmetry_mates"
            ],
            "type": "string"
          },
          "assembly_id": {
            "title": "Assembly Id",
            "description": "Use the name to specify which assembly to load",
            "type": "string"
          },
          "assembly_index": {
            "title": "Assembly Index",
            "description": "0-based assembly index, use this to load the 1st assembly",
            "type": "integer"
          },
          "model_index": {
            "title": "Model Index",
            "description": "0-based model index in case multiple NMR frames are present",
            "type": "integer"
          },
          "block_index": {
            "title": "Block Index",
            "description": "0-based block index in case multiple mmCIF or SDF data blocks are present",
            "type": "integer"
          },
          "block_header": {
            "title": "Block Header",
            "description": "Reference a specific mmCIF or SDF data block by its block header",
            "type": "string"
          },
          "radius": {
            "title": "Radius",
            "description": "Radius around model coordinates when loading symmetry mates",
            "type": "number"
          },
          "ijk_min": {
            "title": "Ijk Min",
            "description": "Bottom-left Miller indices",
            "type": "array",
            "minItems": 3,
            "maxItems": 3,
            "items": [
              {
                "type": "integer"
              },
              {
                "type": "integer"
              },
              {
                "type": "integer"
              }
            ]
          },
          "ijk_max": {
            "title": "Ijk Max",
            "description": "Top-right Miller indices",
            "type": "array",
            "minItems": 3,
            "maxItems": 3,
            "items": [
              {
                "type": "integer"
              },
              {
                "type": "integer"
              },
              {
                "type": "integer"
              }
            ]
          }
        },
        "required": [
          "type"
        ]
      },
      "SurfaceParams": {
        "title": "SurfaceParams",
        "description": "Representation node, describing how to represent a component.",
        "type": "object",
        "properties": {
          "type": {
            "title": "Type",
            "default": "surface",
            "enum": [
              "surface"
            ],
            "type": "string"
          },
          "ignore_hydrogens": {
            "title": "Ignore Hydrogens",
            "descripton": "Controls whether hydrogen atoms are drawn.",
            "type": "boolean"
          },
          "size_factor": {
            "title": "Size Factor",
            "description": "Scales the corresponding visuals.",
            "type": "number"
          }
        }
      },
      "TooltipFromSourceParams": {
        "title": "TooltipFromSourceParams",
        "description": "Abstract node that's shared by all selections based on the source file.",
        "type": "object",
        "properties": {
          "category_name": {
            "title": "Category Name",
            "description": "Category wherein selection is located.",
            "type": "string"
          },
          "field_name": {
            "title": "Field Name",
            "description": "Name of the column in CIF that contains the desired value (color/label/tooltip/component...); the default value is 'color'/'label'/'tooltip'/'component' depending on the node kind",
            "type": "string"
          },
          "block_header": {
            "title": "Block Header",
            "description": "Block name wherein selection is located.",
            "type": "string"
          },
          "block_index": {
            "title": "Block Index",
            "description": "Block index wherein selection is located.",
            "type": "integer"
          },
          "schema": {
            "title": "Schema",
            "description": "granularity/type of the selection",
            "enum": [
              "whole_structure",
              "entity",
              "chain",
              "auth_chain",
              "residue",
              "auth_residue",
              "residue_range",
              "auth_residue_range",
              "atom",
              "auth_atom",
              "all_atomic"
            ],
            "type": "string"
          }
        },
        "required": [
          "category_name",
          "schema"
        ]
      },
      "TooltipFromUriParams": {
        "title": "TooltipFromUriParams",
        "description": "Abstract node that's shared by all resource-based selections.",
        "type": "object",
        "properties": {
          "uri": {
            "title": "Uri",
            "description": "Location of the resource",
            "type": "string"
          },
          "format": {
            "title": "Format",
            "description": "Format of the resource, i.e. 'cif', 'bcif', or 'json'",
            "enum": [
              "cif",
              "bcif",
              "json"
            ],
            "type": "string"
          },
          "category_name": {
            "title": "Category Name",
            "description": "Category wherein selection is located. Only applies when format is 'cif' or 'bcif'.",
            "type": "string"
          },
          "field_name": {
            "title": "Field Name",
            "description": "Name of the column in CIF or field name (key) in JSON that contains the desired value (color/label/tooltip/component...); the default value is 'color'/'label'/'tooltip'/'component' depending on the node kind",
            "type": "string"
          },
          "block_header": {
            "title": "Block Header",
            "description": "Block name wherein selection is located. Only applies when format is 'cif' or 'bcif'.",
            "type": "string"
          },
          "block_index": {
            "title": "Block Index",
            "description": "Block index wherein selection is located. Only applies when format is 'cif' or 'bcif'.",
            "type": "integer"
          },
          "schema": {
            "title": "Schema",
            "description": "granularity/type of the selection",
            "enum": [
              "whole_structure",
              "entity",
              "chain",
              "auth_chain",
              "residue",
              "auth_residue",
              "residue_range",
              "auth_residue_range",
              "atom",
              "auth_atom",
              "all_atomic"
            ],
            "type": "string"
          }
        },
        "required": [
          "uri",
          "format",
          "schema"
        ]
      },
      "TooltipInlineParams": {
        "title": "TooltipInlineParams",
        "type": "object",
        "properties": {
          "text": {
            "title": "Text",
            "description": "Text to show as tooltip upon hover",
            "type": "string"
          }
        },
        "required": [
          "text"
        ]
      },
      "TransformParams": {
        "title": "TransformParams",
        "description": "Define a transformation.",
        "type": "object",
        "properties": {
          "rotation": {
            "title": "Rotation",
            "description": "9d vector describing the rotation, in a column major (j * 3 + i indexing) format, this is equivalent to Fortran-order in numpy, to be multiplied from the left",
            "type": "array",
            "minItems": 9,
            "maxItems": 9,
            "items": [
              {
                "type": "number"
              },
              {
                "type": "number"
              },
              {
                "type": "number"
              },
              {
                "type": "number"
              },
              {
                "type": "number"
              },
              {
                "type": "number"
              },
              {
                "type": "number"
              },
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ]
          },
          "translation": {
            "title": "Translation",
            "description": "3d vector describing the translation",
            "type": "array",
            "minItems": 3,
            "maxItems": 3,
            "items": [
              {
                "type": "number"
              },
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ]
          }
        }
      },
      "TubeParams": {
        "title": "TubeParams",
        "type": "object",
        "properties": {
          "start": {
            "title": "Start",
            "description": "Start of this tube.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "$ref": "#/definitions/PrimitiveComponentExpressions"
              }
            ]
          },
          "end": {
            "title": "End",
            "description": "End of this tube.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "$ref": "#/definitions/PrimitiveComponentExpressions"
              }
            ]
          },
          "radius": {
            "title": "Radius",
            "description": "Tube radius (in Angstroms).",
            "type": "number"
          },
          "dash_length": {
            "title": "Dash Length",
            "description": "Length of each dash.",
            "type": "number"
          },
          "color": {
            "title": "Color",
            "description": "Color of the tube. If not specified, the primitives group color is used.",
            "anyOf": [
              {
                "enum": [
                  "aliceblue",
                  "antiquewhite",
                  "aqua",
                  "aquamarine",
                  "azure",
                  "beige",
                  "bisque",
                  "black",
                  "blanchedalmond",
                  "blue",
                  "blueviolet",
                  "brown",
                  "burlywood",
                  "cadetblue",
                  "chartreuse",
                  "chocolate",
                  "coral",
                  "cornflowerblue",
                  "cornsilk",
                  "crimson",
                  "cyan",
                  "darkblue",
                  "darkcyan",
                  "darkgoldenrod",
                  "darkgray",
                  "darkgreen",
                  "darkgrey",
                  "darkkhaki",
                  "darkmagenta",
                  "darkolivegreen",
                  "darkorange",
                  "darkorchid",
                  "darkred",
                  "darksalmon",
                  "darkseagreen",
                  "darkslateblue",
                  "darkslategray",
                  "darkslategrey",
                  "darkturquoise",
                  "darkviolet",
                  "deeppink",
                  "deepskyblue",
                  "dimgray",
                  "dimgrey",
                  "dodgerblue",
                  "firebrick",
                  "floralwhite",
                  "forestgreen",
                  "fuchsia",
                  "gainsboro",
                  "ghostwhite",
                  "gold",
                  "goldenrod",
                  "gray",
                  "green",
                  "greenyellow",
                  "grey",
                  "honeydew",
                  "hotpink",
                  "indianred",
                  "indigo",
                  "ivory",
                  "khaki",
                  "lavender",
                  "lavenderblush",
                  "lawngreen",
                  "lemonchiffon",
                  "lightblue",
                  "lightcoral",
                  "lightcyan",
                  "lightgoldenrodyellow",
                  "lightgray",
                  "lightgreen",
                  "lightgrey",
                  "lightpink",
                  "lightsalmon",
                  "lightseagreen",
                  "lightskyblue",
                  "lightslategray",
                  "lightslategrey",
                  "lightsteelblue",
                  "lightyellow",
                  "lime",
                  "limegreen",
                  "linen",
                  "magenta",
                  "maroon",
                  "mediumaquamarine",
                  "mediumblue",
                  "mediumorchid",
                  "mediumpurple",
                  "mediumseagreen",
                  "mediumslateblue",
                  "mediumspringgreen",
                  "mediumturquoise",
                  "mediumvioletred",
                  "midnightblue",
                  "mintcream",
                  "mistyrose",
                  "moccasin",
                  "navajowhite",
                  "navy",
                  "oldlace",
                  "olive",
                  "olivedrab",
                  "orange",
                  "orangered",
                  "orchid",
                  "palegoldenrod",
                  "palegreen",
                  "paleturquoise",
                  "palevioletred",
                  "papayawhip",
                  "peachpuff",
                  "peru",
                  "pink",
                  "plum",
                  "powderblue",
                  "purple",
                  "red",
                  "rosybrown",
                  "royalblue",
                  "saddlebrown",
                  "salmon",
                  "sandybrown",
                  "seagreen",
                  "seashell",
                  "sienna",
                  "silver",
                  "skyblue",
                  "slateblue",
                  "slategray",
                  "slategrey",
                  "snow",
                  "springgreen",
                  "steelblue",
                  "tan",
                  "teal",
                  "thistle",
                  "tomato",
                  "turquoise",
                  "violet",
                  "wheat",
                  "white",
                  "whitesmoke",
                  "yellow",
                  "yellowgreen"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          },
          "kind": {
            "title": "Kind",
            "default": "tube",
            "enum": [
              "tube"
            ],
            "type": "string"
          },
          "tooltip": {
            "title": "Tooltip",
            "description": "Tooltip to show when hovering on the tube.",
            "type": "string"
          }
        },
        "required": [
          "start",
          "end"
        ],
        "definitions": {
          "ComponentExpression": {
            "title": "ComponentExpression",
            "description": "Component expressions are used to make selections.",
            "type": "object",
            "properties": {
              "label_entity_id": {
                "title": "Label Entity Id",
                "description": "Select an entity by its identifier",
                "type": "string"
              },
              "label_asym_id": {
                "title": "Label Asym Id",
                "description": "Select a chain using its standard, programmatically-assigned identifier",
                "type": "string"
              },
              "auth_asym_id": {
                "title": "Auth Asym Id",
                "description": "Select a chain using its legacy, author-assigned identifier",
                "type": "string"
              },
              "label_seq_id": {
                "title": "Label Seq Id",
                "description": "Select a residue by its standard, programmatically-assigned sequence position",
                "type": "integer"
              },
              "auth_seq_id": {
                "title": "Auth Seq Id",
                "description": "Select a residue by its legacy, author-assigned sequence position",
                "type": "integer"
              },
              "pdbx_PDB_ins_code": {
                "title": "Pdbx Pdb Ins Code",
                "description": "Optional legacy insertion code, only relevant for `auth_seq_id`",
                "type": "string"
              },
              "beg_label_seq_id": {
                "title": "Beg Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_label_seq_id`.",
                "type": "integer"
              },
              "end_label_seq_id": {
                "title": "End Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_label_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "beg_auth_seq_id": {
                "title": "Beg Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_auth_seq_id`.",
                "type": "integer"
              },
              "end_auth_seq_id": {
                "title": "End Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_auth_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "residue_index": {
                "title": "Residue Index",
                "description": "0-based residue index in the source file",
                "type": "integer"
              },
              "label_atom_id": {
                "title": "Label Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.label_atom_id`)",
                "type": "string"
              },
              "auth_atom_id": {
                "title": "Auth Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.auth_atom_id`)",
                "type": "string"
              },
              "type_symbol": {
                "title": "Type Symbol",
                "description": "Element symbol like 'H', 'HE', 'LI', 'BE' (`_atom_site.type_symbol`)",
                "type": "string"
              },
              "atom_id": {
                "title": "Atom Id",
                "description": "Unique atom identifier (`_atom_site.id`)",
                "type": "integer"
              },
              "atom_index": {
                "title": "Atom Index",
                "description": "0-based atom index in the source file",
                "type": "integer"
              }
            }
          },
          "PrimitiveComponentExpressions": {
            "title": "PrimitiveComponentExpressions",
            "type": "object",
            "properties": {
              "structure_ref": {
                "title": "Structure Ref",
                "description": "Reference to a structure node to apply this expresion to. If undefined, get the structure implicitly from the tree.",
                "type": "string"
              },
              "expression_schema": {
                "title": "Expression Schema",
                "description": "Schema the expressions follow, used for optimization of structure query resolution.",
                "enum": [
                  "whole_structure",
                  "entity",
                  "chain",
                  "auth_chain",
                  "residue",
                  "auth_residue",
                  "residue_range",
                  "auth_residue_range",
                  "atom",
                  "auth_atom",
                  "all_atomic"
                ],
                "type": "string"
              },
              "expressions": {
                "title": "Expressions",
                "description": "Expression refencing elements froms the structure_ref.",
                "type": "array",
                "items": {
                  "$ref": "#/definitions/ComponentExpression"
                }
              }
            },
            "required": [
              "expressions"
            ]
          }
        }
      },
      "VolumeIsoSurfaceParams": {
        "title": "VolumeIsoSurfaceParams",
        "description": "Volume isosurface representation.",
        "type": "object",
        "properties": {
          "type": {
            "title": "Type",
            "default": "isosurface",
            "enum": [
              "isosurface"
            ],
            "type": "string"
          },
          "relative_isovalue": {
            "title": "Relative Isovalue",
            "description": "Relative isovalue",
            "type": "number"
          },
          "absolute_isovalue": {
            "title": "Absolute Isovalue",
            "description": "Absolute isovalue. Overrides `relative_isovalue`.",
            "type": "number"
          },
          "show_wireframe": {
            "title": "Show Wireframe",
            "description": "Show mesh wireframe. Defaults to false.",
            "type": "boolean"
          },
          "show_faces": {
            "title": "Show Faces",
            "description": "Show mesh faces. Defaults to true.",
            "type": "boolean"
          }
        }
      },
      "VolumeParams": {
        "title": "VolumeParams",
        "description": "Volume node, describing how to load and render volumetric data.",
        "type": "object",
        "properties": {
          "channel_id": {
            "title": "Channel Id",
            "description": "ID of the channel to load from the source data.",
            "type": "string"
          }
        }
      },
      "VolumeRepresentationParams": {
        "title": "VolumeRepresentationParams",
        "description": "Representation node, describing how to represent a component.",
        "type": "object",
        "properties": {
          "type": {
            "title": "Type",
            "description": "Representation type, i.e. isosurface",
            "enum": [
              "isosurface"
            ],
            "type": "string"
          }
        },
        "required": [
          "type"
        ]
      },
      "_DataFromSourceParams": {
        "title": "_DataFromSourceParams",
        "description": "Abstract node that's shared by all selections based on the source file.",
        "type": "object",
        "properties": {
          "category_name": {
            "title": "Category Name",
            "description": "Category wherein selection is located.",
            "type": "string"
          },
          "field_name": {
            "title": "Field Name",
            "description": "Name of the column in CIF that contains the desired value (color/label/tooltip/component...); the default value is 'color'/'label'/'tooltip'/'component' depending on the node kind",
            "type": "string"
          },
          "block_header": {
            "title": "Block Header",
            "description": "Block name wherein selection is located.",
            "type": "string"
          },
          "block_index": {
            "title": "Block Index",
            "description": "Block index wherein selection is located.",
            "type": "integer"
          },
          "schema": {
            "title": "Schema",
            "description": "granularity/type of the selection",
            "enum": [
              "whole_structure",
              "entity",
              "chain",
              "auth_chain",
              "residue",
              "auth_residue",
              "residue_range",
              "auth_residue_range",
              "atom",
              "auth_atom",
              "all_atomic"
            ],
            "type": "string"
          }
        },
        "required": [
          "category_name",
          "schema"
        ]
      },
      "_DataFromUriParams": {
        "title": "_DataFromUriParams",
        "description": "Abstract node that's shared by all resource-based selections.",
        "type": "object",
        "properties": {
          "uri": {
            "title": "Uri",
            "description": "Location of the resource",
            "type": "string"
          },
          "format": {
            "title": "Format",
            "description": "Format of the resource, i.e. 'cif', 'bcif', or 'json'",
            "enum": [
              "cif",
              "bcif",
              "json"
            ],
            "type": "string"
          },
          "category_name": {
            "title": "Category Name",
            "description": "Category wherein selection is located. Only applies when format is 'cif' or 'bcif'.",
            "type": "string"
          },
          "field_name": {
            "title": "Field Name",
            "description": "Name of the column in CIF or field name (key) in JSON that contains the desired value (color/label/tooltip/component...); the default value is 'color'/'label'/'tooltip'/'component' depending on the node kind",
            "type": "string"
          },
          "block_header": {
            "title": "Block Header",
            "description": "Block name wherein selection is located. Only applies when format is 'cif' or 'bcif'.",
            "type": "string"
          },
          "block_index": {
            "title": "Block Index",
            "description": "Block index wherein selection is located. Only applies when format is 'cif' or 'bcif'.",
            "type": "integer"
          },
          "schema": {
            "title": "Schema",
            "description": "granularity/type of the selection",
            "enum": [
              "whole_structure",
              "entity",
              "chain",
              "auth_chain",
              "residue",
              "auth_residue",
              "residue_range",
              "auth_residue_range",
              "atom",
              "auth_atom",
              "all_atomic"
            ],
            "type": "string"
          }
        },
        "required": [
          "uri",
          "format",
          "schema"
        ]
      },
      "_TubeParamsBase": {
        "title": "_TubeParamsBase",
        "type": "object",
        "properties": {
          "start": {
            "title": "Start",
            "description": "Start of this tube.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "$ref": "#/definitions/PrimitiveComponentExpressions"
              }
            ]
          },
          "end": {
            "title": "End",
            "description": "End of this tube.",
            "anyOf": [
              {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "$ref": "#/definitions/ComponentExpression"
              },
              {
                "$ref": "#/definitions/PrimitiveComponentExpressions"
              }
            ]
          },
          "radius": {
            "title": "Radius",
            "description": "Tube radius (in Angstroms).",
            "type": "number"
          },
          "dash_length": {
            "title": "Dash Length",
            "description": "Length of each dash.",
            "type": "number"
          },
          "color": {
            "title": "Color",
            "description": "Color of the tube. If not specified, the primitives group color is used.",
            "anyOf": [
              {
                "enum": [
                  "aliceblue",
                  "antiquewhite",
                  "aqua",
                  "aquamarine",
                  "azure",
                  "beige",
                  "bisque",
                  "black",
                  "blanchedalmond",
                  "blue",
                  "blueviolet",
                  "brown",
                  "burlywood",
                  "cadetblue",
                  "chartreuse",
                  "chocolate",
                  "coral",
                  "cornflowerblue",
                  "cornsilk",
                  "crimson",
                  "cyan",
                  "darkblue",
                  "darkcyan",
                  "darkgoldenrod",
                  "darkgray",
                  "darkgreen",
                  "darkgrey",
                  "darkkhaki",
                  "darkmagenta",
                  "darkolivegreen",
                  "darkorange",
                  "darkorchid",
                  "darkred",
                  "darksalmon",
                  "darkseagreen",
                  "darkslateblue",
                  "darkslategray",
                  "darkslategrey",
                  "darkturquoise",
                  "darkviolet",
                  "deeppink",
                  "deepskyblue",
                  "dimgray",
                  "dimgrey",
                  "dodgerblue",
                  "firebrick",
                  "floralwhite",
                  "forestgreen",
                  "fuchsia",
                  "gainsboro",
                  "ghostwhite",
                  "gold",
                  "goldenrod",
                  "gray",
                  "green",
                  "greenyellow",
                  "grey",
                  "honeydew",
                  "hotpink",
                  "indianred",
                  "indigo",
                  "ivory",
                  "khaki",
                  "lavender",
                  "lavenderblush",
                  "lawngreen",
                  "lemonchiffon",
                  "lightblue",
                  "lightcoral",
                  "lightcyan",
                  "lightgoldenrodyellow",
                  "lightgray",
                  "lightgreen",
                  "lightgrey",
                  "lightpink",
                  "lightsalmon",
                  "lightseagreen",
                  "lightskyblue",
                  "lightslategray",
                  "lightslategrey",
                  "lightsteelblue",
                  "lightyellow",
                  "lime",
                  "limegreen",
                  "linen",
                  "magenta",
                  "maroon",
                  "mediumaquamarine",
                  "mediumblue",
                  "mediumorchid",
                  "mediumpurple",
                  "mediumseagreen",
                  "mediumslateblue",
                  "mediumspringgreen",
                  "mediumturquoise",
                  "mediumvioletred",
                  "midnightblue",
                  "mintcream",
                  "mistyrose",
                  "moccasin",
                  "navajowhite",
                  "navy",
                  "oldlace",
                  "olive",
                  "olivedrab",
                  "orange",
                  "orangered",
                  "orchid",
                  "palegoldenrod",
                  "palegreen",
                  "paleturquoise",
                  "palevioletred",
                  "papayawhip",
                  "peachpuff",
                  "peru",
                  "pink",
                  "plum",
                  "powderblue",
                  "purple",
                  "red",
                  "rosybrown",
                  "royalblue",
                  "saddlebrown",
                  "salmon",
                  "sandybrown",
                  "seagreen",
                  "seashell",
                  "sienna",
                  "silver",
                  "skyblue",
                  "slateblue",
                  "slategray",
                  "slategrey",
                  "snow",
                  "springgreen",
                  "steelblue",
                  "tan",
                  "teal",
                  "thistle",
                  "tomato",
                  "turquoise",
                  "violet",
                  "wheat",
                  "white",
                  "whitesmoke",
                  "yellow",
                  "yellowgreen"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "start",
          "end"
        ],
        "definitions": {
          "ComponentExpression": {
            "title": "ComponentExpression",
            "description": "Component expressions are used to make selections.",
            "type": "object",
            "properties": {
              "label_entity_id": {
                "title": "Label Entity Id",
                "description": "Select an entity by its identifier",
                "type": "string"
              },
              "label_asym_id": {
                "title": "Label Asym Id",
                "description": "Select a chain using its standard, programmatically-assigned identifier",
                "type": "string"
              },
              "auth_asym_id": {
                "title": "Auth Asym Id",
                "description": "Select a chain using its legacy, author-assigned identifier",
                "type": "string"
              },
              "label_seq_id": {
                "title": "Label Seq Id",
                "description": "Select a residue by its standard, programmatically-assigned sequence position",
                "type": "integer"
              },
              "auth_seq_id": {
                "title": "Auth Seq Id",
                "description": "Select a residue by its legacy, author-assigned sequence position",
                "type": "integer"
              },
              "pdbx_PDB_ins_code": {
                "title": "Pdbx Pdb Ins Code",
                "description": "Optional legacy insertion code, only relevant for `auth_seq_id`",
                "type": "string"
              },
              "beg_label_seq_id": {
                "title": "Beg Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_label_seq_id`.",
                "type": "integer"
              },
              "end_label_seq_id": {
                "title": "End Label Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_label_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "beg_auth_seq_id": {
                "title": "Beg Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `end_auth_seq_id`.",
                "type": "integer"
              },
              "end_auth_seq_id": {
                "title": "End Auth Seq Id",
                "description": "Defines a consecutive range of residues when combined with `beg_auth_seq_id`. End indices are inclusive.",
                "type": "integer"
              },
              "residue_index": {
                "title": "Residue Index",
                "description": "0-based residue index in the source file",
                "type": "integer"
              },
              "label_atom_id": {
                "title": "Label Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.label_atom_id`)",
                "type": "string"
              },
              "auth_atom_id": {
                "title": "Auth Atom Id",
                "description": "Atom name like 'CA', 'N', 'O' (`_atom_site.auth_atom_id`)",
                "type": "string"
              },
              "type_symbol": {
                "title": "Type Symbol",
                "description": "Element symbol like 'H', 'HE', 'LI', 'BE' (`_atom_site.type_symbol`)",
                "type": "string"
              },
              "atom_id": {
                "title": "Atom Id",
                "description": "Unique atom identifier (`_atom_site.id`)",
                "type": "integer"
              },
              "atom_index": {
                "title": "Atom Index",
                "description": "0-based atom index in the source file",
                "type": "integer"
              }
            }
          },
          "PrimitiveComponentExpressions": {
            "title": "PrimitiveComponentExpressions",
            "type": "object",
            "properties": {
              "structure_ref": {
                "title": "Structure Ref",
                "description": "Reference to a structure node to apply this expresion to. If undefined, get the structure implicitly from the tree.",
                "type": "string"
              },
              "expression_schema": {
                "title": "Expression Schema",
                "description": "Schema the expressions follow, used for optimization of structure query resolution.",
                "enum": [
                  "whole_structure",
                  "entity",
                  "chain",
                  "auth_chain",
                  "residue",
                  "auth_residue",
                  "residue_range",
                  "auth_residue_range",
                  "atom",
                  "auth_atom",
                  "all_atomic"
                ],
                "type": "string"
              },
              "expressions": {
                "title": "Expressions",
                "description": "Expression refencing elements froms the structure_ref.",
                "type": "array",
                "items": {
                  "$ref": "#/definitions/ComponentExpression"
                }
              }
            },
            "required": [
              "expressions"
            ]
          }
        }
      },
      "Component": {
        "title": "Component",
        "description": "Builder step with operations relevant for a particular component.",
        "type": "object",
        "properties": {}
      },
      "Download": {
        "title": "Download",
        "description": "Builder step with operations needed after downloading structure data.",
        "type": "object",
        "properties": {}
      },
      "Parse": {
        "title": "Parse",
        "description": "Builder step with operations needed after parsing structure data.",
        "type": "object",
        "properties": {}
      },
      "Primitives": {
        "title": "Primitives",
        "description": "A collection of primitives (such as spheres, lines, ...) that will be grouped together and can be customized using\noptions.",
        "type": "object",
        "properties": {}
      },
      "PrimitivesFromUri": {
        "title": "PrimitivesFromUri",
        "description": "A collection of primitives (such as spheres, lines, ...) that will be loaded from provided resource.",
        "type": "object",
        "properties": {}
      },
      "Representation": {
        "title": "Representation",
        "description": "Builder step with operations relating to particular representations.",
        "type": "object",
        "properties": {}
      },
      "Root": {
        "title": "Root",
        "description": "The builder for MolViewSpec state descriptions. Provides fine-grained options as well as global properties such as\ncanvas color or camera position and functionality to eventually export this scene.",
        "type": "object",
        "properties": {}
      },
      "Structure": {
        "title": "Structure",
        "description": "Builder step with operations needed after defining the structure to work with.",
        "type": "object",
        "properties": {}
      },
      "Volume": {
        "title": "Volume",
        "description": "Internal base node from which all other builder nodes are derived.",
        "type": "object",
        "properties": {}
      },
      "VolumeRepresentation": {
        "title": "VolumeRepresentation",
        "description": "Builder step with operations relating to particular representations.",
        "type": "object",
        "properties": {}
      },
      "_Base": {
        "title": "_Base",
        "description": "Internal base node from which all other builder nodes are derived.",
        "type": "object",
        "properties": {}
      }
    }
  }
}