{
  "opengeodeweb_viewer": {
    "generic": {
      "register": {
        "$id": "opengeodeweb_viewer.generic.register",
        "rpc": "register",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false
      },
      "deregister": {
        "$id": "opengeodeweb_viewer.generic.deregister",
        "rpc": "deregister",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    },
    "mesh": {
      "cells": {
        "attribute": {
          "cell": {
            "attribute": {
              "$id": "opengeodeweb_viewer.mesh.cells.attribute.cell.attribute",
              "rpc": "attribute",
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1
                },
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "item": {
                  "type": "integer",
                  "minimum": 0
                },
                "points": {
                  "type": "array",
                  "description": "Flat array of [value, r, g, b, ...]",
                  "items": {
                    "type": "number"
                  },
                  "minItems": 8
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                }
              },
              "required": [
                "id",
                "name",
                "item",
                "points",
                "minimum",
                "maximum"
              ],
              "additionalProperties": false
            }
          },
          "vertex": {
            "attribute": {
              "$id": "opengeodeweb_viewer.mesh.cells.attribute.vertex.attribute",
              "rpc": "attribute",
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1
                },
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "item": {
                  "type": "integer",
                  "minimum": 0
                },
                "points": {
                  "type": "array",
                  "description": "Flat array of [value, r, g, b, ...]",
                  "items": {
                    "type": "number"
                  },
                  "minItems": 8
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                }
              },
              "required": [
                "id",
                "name",
                "item",
                "points",
                "minimum",
                "maximum"
              ],
              "additionalProperties": false
            }
          }
        },
        "visibility": {
          "$id": "opengeodeweb_viewer.mesh.cells.visibility",
          "rpc": "visibility",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "visibility": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "visibility"
          ],
          "additionalProperties": false
        },
        "color": {
          "$id": "opengeodeweb_viewer.mesh.cells.color",
          "rpc": "color",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "color": {
              "type": "object",
              "properties": {
                "red": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "green": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "blue": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "alpha": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                }
              },
              "required": [
                "red",
                "green",
                "blue",
                "alpha"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "id",
            "color"
          ],
          "additionalProperties": false
        }
      },
      "edges": {
        "attribute": {
          "edge": {
            "attribute": {
              "$id": "opengeodeweb_viewer.mesh.edges.attribute.edge.attribute",
              "rpc": "attribute",
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1
                },
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "item": {
                  "type": "integer",
                  "minimum": 0
                },
                "points": {
                  "type": "array",
                  "description": "Flat array of [value, r, g, b, ...]",
                  "items": {
                    "type": "number"
                  },
                  "minItems": 8
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                }
              },
              "required": [
                "id",
                "name",
                "item",
                "points",
                "minimum",
                "maximum"
              ],
              "additionalProperties": false
            }
          },
          "vertex": {
            "attribute": {
              "$id": "opengeodeweb_viewer.mesh.edges.attribute.vertex.attribute",
              "rpc": "attribute",
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1
                },
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "item": {
                  "type": "integer",
                  "minimum": 0
                },
                "points": {
                  "type": "array",
                  "description": "Flat array of [value, r, g, b, ...]",
                  "items": {
                    "type": "number"
                  },
                  "minItems": 8
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                }
              },
              "required": [
                "id",
                "name",
                "item",
                "points",
                "minimum",
                "maximum"
              ],
              "additionalProperties": false
            }
          }
        },
        "width": {
          "$id": "opengeodeweb_viewer.mesh.edges.width",
          "rpc": "width",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "width": {
              "type": "number"
            }
          },
          "required": [
            "id",
            "width"
          ],
          "additionalProperties": false
        },
        "visibility": {
          "$id": "opengeodeweb_viewer.mesh.edges.visibility",
          "rpc": "visibility",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "visibility": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "visibility"
          ],
          "additionalProperties": false
        },
        "color": {
          "$id": "opengeodeweb_viewer.mesh.edges.color",
          "rpc": "color",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "color": {
              "type": "object",
              "properties": {
                "red": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "green": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "blue": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "alpha": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                }
              },
              "required": [
                "red",
                "green",
                "blue",
                "alpha"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "id",
            "color"
          ],
          "additionalProperties": false
        }
      },
      "points": {
        "attribute": {
          "vertex": {
            "attribute": {
              "$id": "opengeodeweb_viewer.mesh.points.attribute.vertex.attribute",
              "rpc": "attribute",
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1
                },
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "item": {
                  "type": "integer",
                  "minimum": 0
                },
                "points": {
                  "type": "array",
                  "description": "Flat array of [value, r, g, b, ...]",
                  "items": {
                    "type": "number"
                  },
                  "minItems": 8
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                }
              },
              "required": [
                "id",
                "name",
                "item",
                "points",
                "minimum",
                "maximum"
              ],
              "additionalProperties": false
            }
          }
        },
        "visibility": {
          "$id": "opengeodeweb_viewer.mesh.points.visibility",
          "rpc": "visibility",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "visibility": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "visibility"
          ],
          "additionalProperties": false
        },
        "size": {
          "$id": "opengeodeweb_viewer.mesh.points.size",
          "rpc": "size",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "size": {
              "type": "number"
            }
          },
          "required": [
            "id",
            "size"
          ],
          "additionalProperties": false
        },
        "color": {
          "$id": "opengeodeweb_viewer.mesh.points.color",
          "rpc": "color",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "color": {
              "type": "object",
              "properties": {
                "red": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "green": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "blue": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "alpha": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                }
              },
              "required": [
                "red",
                "green",
                "blue",
                "alpha"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "id",
            "color"
          ],
          "additionalProperties": false
        }
      },
      "polygons": {
        "attribute": {
          "polygon": {
            "attribute": {
              "$id": "opengeodeweb_viewer.mesh.polygons.attribute.polygon.attribute",
              "rpc": "attribute",
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1
                },
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "item": {
                  "type": "integer",
                  "minimum": 0
                },
                "points": {
                  "type": "array",
                  "description": "Flat array of [value, r, g, b, ...]",
                  "items": {
                    "type": "number"
                  },
                  "minItems": 8
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                }
              },
              "required": [
                "id",
                "name",
                "item",
                "points",
                "minimum",
                "maximum"
              ],
              "additionalProperties": false
            }
          },
          "vertex": {
            "attribute": {
              "$id": "opengeodeweb_viewer.mesh.polygons.attribute.vertex.attribute",
              "rpc": "attribute",
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1
                },
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "item": {
                  "type": "integer",
                  "minimum": 0
                },
                "points": {
                  "type": "array",
                  "description": "Flat array of [value, r, g, b, ...]",
                  "items": {
                    "type": "number"
                  },
                  "minItems": 8
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                }
              },
              "required": [
                "id",
                "name",
                "item",
                "points",
                "minimum",
                "maximum"
              ],
              "additionalProperties": false
            }
          }
        },
        "visibility": {
          "$id": "opengeodeweb_viewer.mesh.polygons.visibility",
          "rpc": "visibility",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "visibility": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "visibility"
          ],
          "additionalProperties": false
        },
        "color": {
          "$id": "opengeodeweb_viewer.mesh.polygons.color",
          "rpc": "color",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "color": {
              "type": "object",
              "properties": {
                "red": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "green": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "blue": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "alpha": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                }
              },
              "required": [
                "red",
                "green",
                "blue",
                "alpha"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "id",
            "color"
          ],
          "additionalProperties": false
        }
      },
      "polyhedra": {
        "attribute": {
          "polyhedron": {
            "attribute": {
              "$id": "opengeodeweb_viewer.mesh.polyhedra.attribute.polyhedron.attribute",
              "rpc": "attribute",
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1
                },
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "item": {
                  "type": "integer",
                  "minimum": 0
                },
                "points": {
                  "type": "array",
                  "description": "Flat array of [value, r, g, b, ...]",
                  "items": {
                    "type": "number"
                  },
                  "minItems": 8
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                }
              },
              "required": [
                "id",
                "name",
                "item",
                "points",
                "minimum",
                "maximum"
              ],
              "additionalProperties": false
            }
          },
          "vertex": {
            "attribute": {
              "$id": "opengeodeweb_viewer.mesh.polyhedra.attribute.vertex.attribute",
              "rpc": "attribute",
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1
                },
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "item": {
                  "type": "integer",
                  "minimum": 0
                },
                "points": {
                  "type": "array",
                  "description": "Flat array of [value, r, g, b, ...]",
                  "items": {
                    "type": "number"
                  },
                  "minItems": 8
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                }
              },
              "required": [
                "id",
                "name",
                "item",
                "points",
                "minimum",
                "maximum"
              ],
              "additionalProperties": false
            }
          }
        },
        "visibility": {
          "$id": "opengeodeweb_viewer.mesh.polyhedra.visibility",
          "rpc": "visibility",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "visibility": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "visibility"
          ],
          "additionalProperties": false
        },
        "color": {
          "$id": "opengeodeweb_viewer.mesh.polyhedra.color",
          "rpc": "color",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "color": {
              "type": "object",
              "properties": {
                "red": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "green": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "blue": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "alpha": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                }
              },
              "required": [
                "red",
                "green",
                "blue",
                "alpha"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "id",
            "color"
          ],
          "additionalProperties": false
        }
      },
      "visibility": {
        "$id": "opengeodeweb_viewer.mesh.visibility",
        "rpc": "visibility",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "visibility": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "visibility"
        ],
        "additionalProperties": false
      },
      "register": {
        "$id": "opengeodeweb_viewer.mesh.register",
        "rpc": "register",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false
      },
      "highlight": {
        "$id": "opengeodeweb_viewer.mesh.highlight",
        "rpc": "highlight",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "visibility": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "visibility"
        ],
        "additionalProperties": false
      },
      "deregister": {
        "$id": "opengeodeweb_viewer.mesh.deregister",
        "rpc": "deregister",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "color": {
        "$id": "opengeodeweb_viewer.mesh.color",
        "rpc": "color",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "color": {
            "type": "object",
            "properties": {
              "red": {
                "type": "integer",
                "minimum": 0,
                "maximum": 255
              },
              "green": {
                "type": "integer",
                "minimum": 0,
                "maximum": 255
              },
              "blue": {
                "type": "integer",
                "minimum": 0,
                "maximum": 255
              },
              "alpha": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              }
            },
            "required": [
              "red",
              "green",
              "blue",
              "alpha"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "id",
          "color"
        ],
        "additionalProperties": false
      },
      "apply_textures": {
        "$id": "opengeodeweb_viewer.mesh.apply_textures",
        "rpc": "apply_textures",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "textures": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "texture_name": {
                  "type": "string",
                  "minLength": 1
                },
                "id": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "texture_name",
                "id"
              ],
              "additionalProperties": false
            },
            "minItems": 1
          }
        },
        "required": [
          "id",
          "textures"
        ],
        "additionalProperties": false
      }
    },
    "model": {
      "blocks": {
        "attribute": {
          "polyhedron": {
            "attribute": {
              "$id": "opengeodeweb_viewer.model.blocks.attribute.polyhedron.attribute",
              "rpc": "attribute",
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1
                },
                "block_ids": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "minItems": 1
                },
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "item": {
                  "type": "integer",
                  "minimum": 0
                },
                "points": {
                  "type": "array",
                  "description": "Flat array of [value, r, g, b, ...]",
                  "items": {
                    "type": "number"
                  },
                  "minItems": 8
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                }
              },
              "required": [
                "id",
                "block_ids",
                "name",
                "item",
                "points",
                "minimum",
                "maximum"
              ],
              "additionalProperties": false
            }
          },
          "vertex": {
            "attribute": {
              "$id": "opengeodeweb_viewer.model.blocks.attribute.vertex.attribute",
              "rpc": "attribute",
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1
                },
                "block_ids": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "minItems": 1
                },
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "item": {
                  "type": "integer",
                  "minimum": 0
                },
                "points": {
                  "type": "array",
                  "description": "Flat array of [value, r, g, b, ...]",
                  "items": {
                    "type": "number"
                  },
                  "minItems": 8
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                }
              },
              "required": [
                "id",
                "block_ids",
                "name",
                "item",
                "points",
                "minimum",
                "maximum"
              ],
              "additionalProperties": false
            }
          }
        },
        "visibility": {
          "$id": "opengeodeweb_viewer.model.blocks.visibility",
          "rpc": "visibility",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "block_ids": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "minItems": 1
            },
            "visibility": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "block_ids",
            "visibility"
          ],
          "additionalProperties": false
        },
        "color": {
          "$id": "opengeodeweb_viewer.model.blocks.color",
          "rpc": "color",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "block_ids": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "minItems": 1
            },
            "color_mode": {
              "type": "string",
              "enum": [
                "constant",
                "random"
              ]
            },
            "color": {
              "type": "object",
              "properties": {
                "red": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "green": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "blue": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "alpha": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                }
              },
              "required": [
                "red",
                "green",
                "blue",
                "alpha"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "id",
            "block_ids",
            "color_mode"
          ],
          "additionalProperties": false
        }
      },
      "corners": {
        "attribute": {
          "vertex": {
            "attribute": {
              "$id": "opengeodeweb_viewer.model.corners.attribute.vertex.attribute",
              "rpc": "attribute",
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1
                },
                "block_ids": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "minItems": 1
                },
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "item": {
                  "type": "integer",
                  "minimum": 0
                },
                "points": {
                  "type": "array",
                  "description": "Flat array of [value, r, g, b, ...]",
                  "items": {
                    "type": "number"
                  },
                  "minItems": 8
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                }
              },
              "required": [
                "id",
                "block_ids",
                "name",
                "item",
                "points",
                "minimum",
                "maximum"
              ],
              "additionalProperties": false
            }
          }
        },
        "visibility": {
          "$id": "opengeodeweb_viewer.model.corners.visibility",
          "rpc": "visibility",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "block_ids": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "minItems": 1
            },
            "visibility": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "block_ids",
            "visibility"
          ],
          "additionalProperties": false
        },
        "color": {
          "$id": "opengeodeweb_viewer.model.corners.color",
          "rpc": "color",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "block_ids": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "minItems": 1
            },
            "color_mode": {
              "type": "string",
              "enum": [
                "constant",
                "random"
              ]
            },
            "color": {
              "type": "object",
              "properties": {
                "red": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "green": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "blue": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "alpha": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                }
              },
              "required": [
                "red",
                "green",
                "blue",
                "alpha"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "id",
            "block_ids",
            "color_mode"
          ],
          "additionalProperties": false
        }
      },
      "edges": {
        "visibility": {
          "$id": "opengeodeweb_viewer.model.edges.visibility",
          "rpc": "visibility",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "visibility": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "visibility"
          ],
          "additionalProperties": false
        }
      },
      "lines": {
        "attribute": {
          "edge": {
            "attribute": {
              "$id": "opengeodeweb_viewer.model.lines.attribute.edge.attribute",
              "rpc": "attribute",
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1
                },
                "block_ids": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "minItems": 1
                },
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "item": {
                  "type": "integer",
                  "minimum": 0
                },
                "points": {
                  "type": "array",
                  "description": "Flat array of [value, r, g, b, ...]",
                  "items": {
                    "type": "number"
                  },
                  "minItems": 8
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                }
              },
              "required": [
                "id",
                "block_ids",
                "name",
                "item",
                "points",
                "minimum",
                "maximum"
              ],
              "additionalProperties": false
            }
          },
          "vertex": {
            "attribute": {
              "$id": "opengeodeweb_viewer.model.lines.attribute.vertex.attribute",
              "rpc": "attribute",
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1
                },
                "block_ids": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "minItems": 1
                },
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "item": {
                  "type": "integer",
                  "minimum": 0
                },
                "points": {
                  "type": "array",
                  "description": "Flat array of [value, r, g, b, ...]",
                  "items": {
                    "type": "number"
                  },
                  "minItems": 8
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                }
              },
              "required": [
                "id",
                "block_ids",
                "name",
                "item",
                "points",
                "minimum",
                "maximum"
              ],
              "additionalProperties": false
            }
          }
        },
        "visibility": {
          "$id": "opengeodeweb_viewer.model.lines.visibility",
          "rpc": "visibility",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "block_ids": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "minItems": 1
            },
            "visibility": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "block_ids",
            "visibility"
          ],
          "additionalProperties": false
        },
        "color": {
          "$id": "opengeodeweb_viewer.model.lines.color",
          "rpc": "color",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "block_ids": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "minItems": 1
            },
            "color_mode": {
              "type": "string",
              "enum": [
                "constant",
                "random"
              ]
            },
            "color": {
              "type": "object",
              "properties": {
                "red": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "green": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "blue": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "alpha": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                }
              },
              "required": [
                "red",
                "green",
                "blue",
                "alpha"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "id",
            "block_ids",
            "color_mode"
          ],
          "additionalProperties": false
        }
      },
      "points": {
        "visibility": {
          "$id": "opengeodeweb_viewer.model.points.visibility",
          "rpc": "visibility",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "visibility": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "visibility"
          ],
          "additionalProperties": false
        },
        "size": {
          "$id": "opengeodeweb_viewer.model.points.size",
          "rpc": "size",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "size": {
              "type": "number"
            }
          },
          "required": [
            "id",
            "size"
          ],
          "additionalProperties": false
        }
      },
      "visibility": {
        "$id": "opengeodeweb_viewer.model.visibility",
        "rpc": "visibility",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "visibility": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "visibility"
        ],
        "additionalProperties": false
      },
      "register": {
        "$id": "opengeodeweb_viewer.model.register",
        "rpc": "register",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false
      },
      "highlight": {
        "$id": "opengeodeweb_viewer.model.highlight",
        "rpc": "highlight",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "block_ids": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "visibility": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "block_ids",
          "visibility"
        ],
        "additionalProperties": false
      },
      "get_blocks_bounds": {
        "$id": "opengeodeweb_viewer.model.get_blocks_bounds",
        "rpc": "get_blocks_bounds",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "block_ids": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          }
        },
        "required": [
          "id",
          "block_ids"
        ],
        "additionalProperties": false
      },
      "deregister": {
        "$id": "opengeodeweb_viewer.model.deregister",
        "rpc": "deregister",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "surfaces": {
        "attribute": {
          "polygon": {
            "attribute": {
              "$id": "opengeodeweb_viewer.model.surfaces.attribute.polygon.attribute",
              "rpc": "attribute",
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1
                },
                "block_ids": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "minItems": 1
                },
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "item": {
                  "type": "integer",
                  "minimum": 0
                },
                "points": {
                  "type": "array",
                  "description": "Flat array of [value, r, g, b, ...]",
                  "items": {
                    "type": "number"
                  },
                  "minItems": 8
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                }
              },
              "required": [
                "id",
                "block_ids",
                "name",
                "item",
                "points",
                "minimum",
                "maximum"
              ],
              "additionalProperties": false
            }
          },
          "vertex": {
            "attribute": {
              "$id": "opengeodeweb_viewer.model.surfaces.attribute.vertex.attribute",
              "rpc": "attribute",
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1
                },
                "block_ids": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "minItems": 1
                },
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "item": {
                  "type": "integer",
                  "minimum": 0
                },
                "points": {
                  "type": "array",
                  "description": "Flat array of [value, r, g, b, ...]",
                  "items": {
                    "type": "number"
                  },
                  "minItems": 8
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                }
              },
              "required": [
                "id",
                "block_ids",
                "name",
                "item",
                "points",
                "minimum",
                "maximum"
              ],
              "additionalProperties": false
            }
          }
        },
        "visibility": {
          "$id": "opengeodeweb_viewer.model.surfaces.visibility",
          "rpc": "visibility",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "block_ids": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "minItems": 1
            },
            "visibility": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "block_ids",
            "visibility"
          ],
          "additionalProperties": false
        },
        "color": {
          "$id": "opengeodeweb_viewer.model.surfaces.color",
          "rpc": "color",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "block_ids": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "minItems": 1
            },
            "color_mode": {
              "type": "string",
              "enum": [
                "constant",
                "random"
              ]
            },
            "color": {
              "type": "object",
              "properties": {
                "red": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "green": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "blue": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                },
                "alpha": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                }
              },
              "required": [
                "red",
                "green",
                "blue",
                "alpha"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "id",
            "block_ids",
            "color_mode"
          ],
          "additionalProperties": false
        },
        "apply_textures": {
          "$id": "opengeodeweb_viewer.model.surfaces.apply_textures",
          "rpc": "apply_textures",
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            },
            "textures": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "texture_name": {
                    "type": "string",
                    "minLength": 1
                  },
                  "texture_file_name": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "texture_name",
                  "texture_file_name"
                ],
                "additionalProperties": false
              },
              "minItems": 1
            }
          },
          "required": [
            "id",
            "textures"
          ],
          "additionalProperties": false
        }
      }
    },
    "kill": {
      "$id": "opengeodeweb_viewer.kill",
      "rpc": "kill",
      "type": "object",
      "properties": {},
      "required": [],
      "additionalProperties": false
    },
    "import_project": {
      "$id": "opengeodeweb_viewer.import_project",
      "rpc": "import_project",
      "type": "object",
      "properties": {},
      "required": [],
      "additionalProperties": false
    },
    "viewer": {
      "update_data": {
        "$id": "opengeodeweb_viewer.viewer.update_data",
        "rpc": "update_data",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "update_camera": {
        "$id": "opengeodeweb_viewer.viewer.update_camera",
        "rpc": "update_camera",
        "type": "object",
        "properties": {
          "camera_options": {
            "type": "object",
            "properties": {
              "focal_point": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "minItems": 3,
                "maxItems": 3
              },
              "view_up": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "minItems": 3,
                "maxItems": 3
              },
              "position": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "minItems": 3,
                "maxItems": 3
              },
              "view_angle": {
                "type": "number"
              },
              "clipping_range": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "minItems": 2,
                "maxItems": 2
              }
            },
            "required": [
              "focal_point",
              "view_up",
              "position",
              "view_angle",
              "clipping_range"
            ]
          }
        },
        "required": [
          "camera_options"
        ]
      },
      "take_screenshot": {
        "$id": "opengeodeweb_viewer.viewer.take_screenshot",
        "rpc": "take_screenshot",
        "type": "object",
        "properties": {
          "filename": {
            "type": "string",
            "minLength": 1
          },
          "output_extension": {
            "type": "string",
            "minLength": 1,
            "enum": [
              "png",
              "jpg"
            ]
          },
          "include_background": {
            "type": "boolean"
          }
        },
        "required": [
          "filename",
          "output_extension",
          "include_background"
        ],
        "additionalProperties": false
      },
      "shrink": {
        "$id": "opengeodeweb_viewer.viewer.shrink",
        "rpc": "shrink",
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 32,
              "maxLength": 32
            }
          },
          "shrink_factor": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          }
        },
        "required": [
          "ids",
          "shrink_factor"
        ],
        "additionalProperties": false
      },
      "set_z_scaling": {
        "$id": "opengeodeweb_viewer.viewer.set_z_scaling",
        "rpc": "set_z_scaling",
        "type": "object",
        "properties": {
          "z_scale": {
            "type": "number",
            "minimum": 1
          }
        },
        "required": [
          "z_scale"
        ],
        "additionalProperties": false
      },
      "set_background_color": {
        "$id": "opengeodeweb_viewer.viewer.set_background_color",
        "rpc": "set_background_color",
        "type": "object",
        "properties": {
          "color": {
            "type": "object",
            "properties": {
              "r": {
                "type": "integer",
                "minimum": 0,
                "maximum": 255
              },
              "g": {
                "type": "integer",
                "minimum": 0,
                "maximum": 255
              },
              "b": {
                "type": "integer",
                "minimum": 0,
                "maximum": 255
              }
            },
            "required": [
              "r",
              "g",
              "b"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "color"
        ],
        "additionalProperties": false
      },
      "ruler": {
        "$id": "opengeodeweb_viewer.viewer.ruler",
        "rpc": "ruler",
        "type": "object",
        "properties": {
          "points": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "number"
              },
              "minItems": 3,
              "maxItems": 3
            },
            "minItems": 1,
            "maxItems": 2
          }
        },
        "required": [
          "points"
        ],
        "additionalProperties": false
      },
      "reset_visualization": {
        "$id": "opengeodeweb_viewer.viewer.reset_visualization",
        "rpc": "reset_visualization",
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      },
      "reset_ruler": {
        "$id": "opengeodeweb_viewer.viewer.reset_ruler",
        "rpc": "reset_ruler",
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      },
      "reset_camera": {
        "$id": "opengeodeweb_viewer.viewer.reset_camera",
        "rpc": "reset_camera",
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      },
      "render": {
        "$id": "opengeodeweb_viewer.viewer.render",
        "rpc": "render",
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      },
      "preview_points": {
        "$id": "opengeodeweb_viewer.viewer.preview_points",
        "rpc": "preview_points",
        "type": "object",
        "properties": {
          "points": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "x": {
                  "type": "number"
                },
                "y": {
                  "type": "number"
                },
                "z": {
                  "type": "number"
                }
              },
              "required": [
                "x",
                "y",
                "z"
              ],
              "additionalProperties": false
            }
          },
          "style": {
            "type": "string",
            "enum": [
              "points",
              "curve",
              "surface"
            ]
          },
          "closed": {
            "type": "boolean"
          }
        },
        "required": [
          "points",
          "style"
        ],
        "additionalProperties": false
      },
      "picked_ids": {
        "$id": "opengeodeweb_viewer.viewer.picked_ids",
        "rpc": "picked_ids",
        "type": "object",
        "properties": {
          "x": {
            "type": "number"
          },
          "y": {
            "type": "number"
          },
          "ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          }
        },
        "required": [
          "x",
          "y",
          "ids"
        ],
        "additionalProperties": false
      },
      "pick_colormap": {
        "$id": "opengeodeweb_viewer.viewer.pick_colormap",
        "route": "pick_colormap",
        "rpc": "pick_colormap",
        "type": "object",
        "properties": {
          "x": {
            "type": "number"
          },
          "y": {
            "type": "number"
          }
        },
        "required": [
          "x",
          "y"
        ]
      },
      "highlight": {
        "$id": "opengeodeweb_viewer.viewer.highlight",
        "rpc": "highlight",
        "type": "object",
        "properties": {
          "x": {
            "type": "number"
          },
          "y": {
            "type": "number"
          },
          "field_type": {
            "enum": [
              "CELL",
              "POINT"
            ]
          },
          "ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          }
        },
        "required": [
          "x",
          "y",
          "field_type",
          "ids"
        ],
        "additionalProperties": false
      },
      "grid_scale": {
        "$id": "opengeodeweb_viewer.viewer.grid_scale",
        "rpc": "grid_scale",
        "type": "object",
        "properties": {
          "visibility": {
            "type": "boolean"
          }
        },
        "required": [
          "visibility"
        ],
        "additionalProperties": false
      },
      "get_point_position": {
        "$id": "opengeodeweb_viewer.viewer.get_point_position",
        "rpc": "get_point_position",
        "type": "object",
        "properties": {
          "x": {
            "type": "integer"
          },
          "y": {
            "type": "integer"
          }
        },
        "required": [
          "x",
          "y"
        ],
        "additionalProperties": false
      },
      "clipping_planes": {
        "$id": "opengeodeweb_viewer.viewer.clipping_planes",
        "rpc": "clipping_planes",
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 32,
              "maxLength": 32
            }
          },
          "planes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "origin": {
                  "type": "array",
                  "items": {
                    "type": "number"
                  },
                  "minItems": 3,
                  "maxItems": 3
                },
                "normal": {
                  "type": "array",
                  "items": {
                    "type": "number"
                  },
                  "minItems": 3,
                  "maxItems": 3
                }
              },
              "required": [
                "origin",
                "normal"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "ids",
          "planes"
        ],
        "additionalProperties": false
      },
      "axes": {
        "$id": "opengeodeweb_viewer.viewer.axes",
        "rpc": "axes",
        "type": "object",
        "properties": {
          "visibility": {
            "type": "boolean"
          }
        },
        "required": [
          "visibility"
        ],
        "additionalProperties": false
      }
    }
  }
}