{
  "definitions": {},
  "$schema": "http://json-schema.org/draft-06/schema#",
  "$id": "https://github.com/gap-packages/francy/gap/schema/francy.json",
  "type": "object",
  "properties": {
    "mime": {
      "type": "string",
      "title": "The Mime Schema.",
      "description": "Describes the type of mime object to be rendered.",
      "default": "application/vnd.francy+json",
      "examples": [
        "application/vnd.francy+json"
      ]
    },
    "version": {
      "type": "string",
      "title": "The Version Schema.",
      "description": "Describes the version of the generated data.",
      "default": "",
      "examples": [
        "0.0.1"
      ]
    },
    "canvas": {
      "type": "object",
      "properties": {
        "width": {
          "type": "string",
          "title": "The Width Schema.",
          "description": "The canvas width.",
          "default": "",
          "examples": [
            "800"
          ]
        },
        "height": {
          "type": "string",
          "title": "The Height Schema.",
          "description": "The canvas height.",
          "default": "",
          "examples": [
            "600"
          ]
        },
        "id": {
          "type": "string",
          "title": "The Id Schema.",
          "description": "A unique identifier that identifies this object.",
          "default": "",
          "examples": [
            "F123"
          ]
        },
        "title": {
          "type": "string",
          "title": "The Title Schema.",
          "description": "A title for the canvas.",
          "default": "",
          "examples": [
            "Quaternion Group Subgroup Lattice"
          ]
        },
        "menus": {
          "type": "object",
          "properties": {
            "366688A254054F9AFC43A6EA5008CAD2": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "title": "The Id Schema.",
                  "description": "A unique identifier that identifies this object.",
                  "default": "",
                  "examples": [
                    "F123"
                  ]
                },
                "title": {
                  "type": "string",
                  "title": "The Title Schema.",
                  "description": "A title for the menu to be used as label.",
                  "default": "",
                  "examples": [
                    "Add Circle"
                  ]
                },
                "callback": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "The Id Schema.",
                      "description": "A unique identifier that identifies this object.",
                      "default": "",
                      "examples": [
                        "F123"
                      ]
                    },
                    "trigger": {
                      "type": "string",
                      "title": "The Trigger Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": "",
                      "examples": [
                        "click"
                      ]
                    },
                    "knownArgs": {
                      "type": "array",
                      "items": {
                        "$id": "giantbear",
                        "title": "Empty Object",
                        "description": "This accepts anything, as long as it's valid JSON."
                      }
                    },
                    "requiredArgs": {
                      "type": "object",
                      "properties": {
                        "8F794C1FA828467404CA41218DCFC68D": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "title": "The Type Schema.",
                              "description": "An explanation about the purpose of this instance.",
                              "default": "",
                              "examples": [
                                "number"
                              ]
                            },
                            "id": {
                              "type": "string",
                              "title": "The Id Schema.",
                              "description": "A unique identifier that identifies this object.",
                              "default": "",
                              "examples": [
                                "8F794C1FA828467404CA41218DCFC68D"
                              ]
                            },
                            "title": {
                              "type": "string",
                              "title": "The Title Schema.",
                              "description": "An explanation about the purpose of this instance.",
                              "default": "",
                              "examples": [
                                "How many Circles?"
                              ]
                            },
                            "value": {
                              "type": "string",
                              "title": "The Value Schema.",
                              "description": "An explanation about the purpose of this instance.",
                              "default": "",
                              "examples": [
                                ""
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "id",
                            "title",
                            "value"
                          ]
                        }
                      },
                      "required": [
                        "8F794C1FA828467404CA41218DCFC68D"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "trigger",
                    "knownArgs",
                    "requiredArgs"
                  ]
                },
                "menus": {
                  "type": "object"
                }
              },
              "required": [
                "id",
                "title",
                "callback",
                "menus"
              ]
            }
          },
          "required": [
            "366688A254054F9AFC43A6EA5008CAD2"
          ]
        },
        "chart": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "title": "The Type Schema.",
              "description": "An explanation about the purpose of this instance.",
              "default": "",
              "examples": [
                "line"
              ]
            },
            "data": {
              "type": "object",
              "properties": {
                "data1": {
                  "type": "array",
                  "items": {
                    "type": "integer",
                    "title": "The 0 Schema.",
                    "description": "An explanation about the purpose of this instance.",
                    "default": 0,
                    "examples": [
                      5
                    ]
                  }
                }
              },
              "required": [
                "data1"
              ]
            },
            "labels": {
              "type": "boolean",
              "title": "The Labels Schema.",
              "description": "An explanation about the purpose of this instance.",
              "default": false,
              "examples": [
                true
              ]
            },
            "id": {
              "type": "string",
              "title": "The Id Schema.",
              "description": "An explanation about the purpose of this instance.",
              "default": "",
              "examples": [
                "C2232D710B7840D7AC0B65170CB76F5B"
              ]
            },
            "legend": {
              "type": "boolean",
              "title": "The Legend Schema.",
              "description": "An explanation about the purpose of this instance.",
              "default": false,
              "examples": [
                true
              ]
            },
            "axis": {
              "type": "object",
              "properties": {
                "x": {
                  "type": "object",
                  "properties": {
                    "domain": {
                      "type": "array",
                      "items": {
                        "$id": "giantbear",
                        "title": "Empty Object",
                        "description": "This accepts anything, as long as it's valid JSON."
                      }
                    },
                    "title": {
                      "type": "string",
                      "title": "The Title Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": "",
                      "examples": [
                        "X Axis"
                      ]
                    },
                    "scale": {
                      "type": "string",
                      "title": "The Scale Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": "",
                      "examples": [
                        "band"
                      ]
                    }
                  },
                  "required": [
                    "domain",
                    "title",
                    "scale"
                  ]
                },
                "y": {
                  "type": "object",
                  "properties": {
                    "domain": {
                      "type": "array",
                      "items": {
                        "$id": "eastbear",
                        "title": "Empty Object",
                        "description": "This accepts anything, as long as it's valid JSON."
                      }
                    },
                    "title": {
                      "type": "string",
                      "title": "The Title Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": "",
                      "examples": [
                        "Y Axis"
                      ]
                    },
                    "scale": {
                      "type": "string",
                      "title": "The Scale Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": "",
                      "examples": [
                        "linear"
                      ]
                    }
                  },
                  "required": [
                    "domain",
                    "title",
                    "scale"
                  ]
                }
              },
              "required": [
                "x",
                "y"
              ]
            }
          },
          "required": [
            "type",
            "data",
            "labels",
            "id",
            "legend",
            "axis"
          ]
        },
        "graph": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "title": "The Type Schema.",
              "description": "An explanation about the purpose of this instance.",
              "default": "",
              "examples": [
                "hasse"
              ]
            },
            "id": {
              "type": "string",
              "title": "The Id Schema.",
              "description": "An explanation about the purpose of this instance.",
              "default": "",
              "examples": [
                "585C13EF00EC4E71DCCF4C7246C86807"
              ]
            },
            "simulation": {
              "type": "boolean",
              "title": "The Simulation Schema.",
              "description": "An explanation about the purpose of this instance.",
              "default": false,
              "examples": [
                true
              ]
            },
            "nodes": {
              "type": "object",
              "properties": {
                "85A237CE30554A1FF46170E35B1B80BD": {
                  "type": "object",
                  "properties": {
                    "x": {
                      "type": "integer",
                      "title": "The X Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": 0,
                      "examples": [
                        0
                      ]
                    },
                    "y": {
                      "type": "integer",
                      "title": "The Y Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": 0,
                      "examples": [
                        0
                      ]
                    },
                    "type": {
                      "type": "string",
                      "title": "The Type Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": "",
                      "examples": [
                        "diamond"
                      ]
                    },
                    "size": {
                      "type": "integer",
                      "title": "The Size Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": 0,
                      "examples": [
                        10
                      ]
                    },
                    "id": {
                      "type": "string",
                      "title": "The Id Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": "",
                      "examples": [
                        "85A237CE30554A1FF46170E35B1B80BD"
                      ]
                    },
                    "title": {
                      "type": "string",
                      "title": "The Title Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": "",
                      "examples": [
                        "G"
                      ]
                    },
                    "layer": {
                      "type": "integer",
                      "title": "The Layer Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": 0,
                      "examples": [
                        0
                      ]
                    },
                    "info": {
                      "type": "object",
                      "properties": {}
                    },
                    "callbacks": {
                      "type": "object",
                      "properties": {}
                    },
                    "menus": {
                      "type": "object",
                      "properties": {
                        "366688A254054F9AFC43A6EA5008CAD2": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "title": "The Id Schema.",
                              "description": "An explanation about the purpose of this instance.",
                              "default": "",
                              "examples": [
                                "366688A254054F9AFC43A6EA5008CAD2"
                              ]
                            },
                            "title": {
                              "type": "string",
                              "title": "The Title Schema.",
                              "description": "An explanation about the purpose of this instance.",
                              "default": "",
                              "examples": [
                                "Add Circle"
                              ]
                            },
                            "callback": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "title": "The Id Schema.",
                                  "description": "An explanation about the purpose of this instance.",
                                  "default": "",
                                  "examples": [
                                    "9A4E435F8A234BBD34DD34C838182A5C"
                                  ]
                                },
                                "trigger": {
                                  "type": "string",
                                  "title": "The Trigger Schema.",
                                  "description": "An explanation about the purpose of this instance.",
                                  "default": "",
                                  "examples": [
                                    "click"
                                  ]
                                },
                                "knownArgs": {
                                  "type": "array",
                                  "items": {
                                    "$id": "slothbear",
                                    "title": "Empty Object",
                                    "description": "This accepts anything, as long as it's valid JSON."
                                  }
                                },
                                "requiredArgs": {
                                  "type": "object",
                                  "properties": {
                                    "8F794C1FA828467404CA41218DCFC68D": {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "title": "The Type Schema.",
                                          "description": "An explanation about the purpose of this instance.",
                                          "default": "",
                                          "examples": [
                                            "number"
                                          ]
                                        },
                                        "id": {
                                          "type": "string",
                                          "title": "The Id Schema.",
                                          "description": "An explanation about the purpose of this instance.",
                                          "default": "",
                                          "examples": [
                                            "8F794C1FA828467404CA41218DCFC68D"
                                          ]
                                        },
                                        "title": {
                                          "type": "string",
                                          "title": "The Title Schema.",
                                          "description": "An explanation about the purpose of this instance.",
                                          "default": "",
                                          "examples": [
                                            "How many Circles?"
                                          ]
                                        },
                                        "value": {
                                          "type": "string",
                                          "title": "The Value Schema.",
                                          "description": "An explanation about the purpose of this instance.",
                                          "default": "",
                                          "examples": [
                                            ""
                                          ]
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "id",
                                        "title",
                                        "value"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "8F794C1FA828467404CA41218DCFC68D"
                                  ]
                                }
                              },
                              "required": [
                                "id",
                                "trigger",
                                "knownArgs",
                                "requiredArgs"
                              ]
                            },
                            "menus": {
                              "type": "object",
                              "properties": {}
                            }
                          },
                          "required": [
                            "id",
                            "title",
                            "callback",
                            "menus"
                          ]
                        }
                      },
                      "required": [
                        "366688A254054F9AFC43A6EA5008CAD2"
                      ]
                    },
                    "highlight": {
                      "type": "boolean",
                      "title": "The Highlight Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": false,
                      "examples": [
                        true
                      ]
                    }
                  },
                  "required": [
                    "x",
                    "y",
                    "type",
                    "size",
                    "id",
                    "title",
                    "layer",
                    "info",
                    "callbacks",
                    "menus",
                    "highlight"
                  ]
                },
                "1FA9D518A51B4422D4BCFDD58129403D": {
                  "type": "object",
                  "properties": {
                    "x": {
                      "type": "integer",
                      "title": "The X Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": 0,
                      "examples": [
                        0
                      ]
                    },
                    "y": {
                      "type": "integer",
                      "title": "The Y Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": 0,
                      "examples": [
                        0
                      ]
                    },
                    "type": {
                      "type": "string",
                      "title": "The Type Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": "",
                      "examples": [
                        "circle"
                      ]
                    },
                    "size": {
                      "type": "integer",
                      "title": "The Size Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": 0,
                      "examples": [
                        10
                      ]
                    },
                    "id": {
                      "type": "string",
                      "title": "The Id Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": "",
                      "examples": [
                        "1FA9D518A51B4422D4BCFDD58129403D"
                      ]
                    },
                    "title": {
                      "type": "string",
                      "title": "The Title Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": "",
                      "examples": [
                        "SG1"
                      ]
                    },
                    "layer": {
                      "type": "integer",
                      "title": "The Layer Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": 0,
                      "examples": [
                        1
                      ]
                    },
                    "menus": {
                      "type": "object",
                      "properties": {}
                    },
                    "info": {
                      "type": "object",
                      "properties": {}
                    },
                    "callbacks": {
                      "type": "object",
                      "properties": {
                        "9A4E435F8A234BBD34DD34C838182A5C": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "title": "The Id Schema.",
                              "description": "An explanation about the purpose of this instance.",
                              "default": "",
                              "examples": [
                                "9A4E435F8A234BBD34DD34C838182A5C"
                              ]
                            },
                            "trigger": {
                              "type": "string",
                              "title": "The Trigger Schema.",
                              "description": "An explanation about the purpose of this instance.",
                              "default": "",
                              "examples": [
                                "click"
                              ]
                            },
                            "knownArgs": {
                              "type": "array",
                              "items": {
                                "$id": "baluchistanbear",
                                "title": "Empty Object",
                                "description": "This accepts anything, as long as it's valid JSON."
                              }
                            },
                            "requiredArgs": {
                              "type": "object",
                              "properties": {}
                            }
                          },
                          "required": [
                            "id",
                            "trigger",
                            "knownArgs",
                            "requiredArgs"
                          ]
                        }
                      },
                      "required": [
                        "9A4E435F8A234BBD34DD34C838182A5C"
                      ]
                    },
                    "highlight": {
                      "type": "boolean",
                      "title": "The Highlight Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": false,
                      "examples": [
                        true
                      ]
                    }
                  },
                  "required": [
                    "x",
                    "y",
                    "type",
                    "size",
                    "id",
                    "title",
                    "layer",
                    "menus",
                    "info",
                    "callbacks",
                    "highlight"
                  ]
                }
              },
              "required": [
                "85A237CE30554A1FF46170E35B1B80BD",
                "1FA9D518A51B4422D4BCFDD58129403D"
              ]
            },
            "links": {
              "type": "object",
              "properties": {
                "4B5B4F8B7FFF40EB1CCB52D91AE1A625": {
                  "type": "object",
                  "properties": {
                    "source": {
                      "type": "string",
                      "title": "The Source Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": "",
                      "examples": [
                        "85A237CE30554A1FF46170E35B1B80BD"
                      ]
                    },
                    "id": {
                      "type": "string",
                      "title": "The Id Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": "",
                      "examples": [
                        "4B5B4F8B7FFF40EB1CCB52D91AE1A625"
                      ]
                    },
                    "target": {
                      "type": "string",
                      "title": "The Target Schema.",
                      "description": "An explanation about the purpose of this instance.",
                      "default": "",
                      "examples": [
                        "1FA9D518A51B4422D4BCFDD58129403D"
                      ]
                    }
                  },
                  "required": [
                    "source",
                    "id",
                    "target"
                  ]
                }
              },
              "required": [
                "4B5B4F8B7FFF40EB1CCB52D91AE1A625"
              ]
            }
          },
          "required": [
            "type",
            "id",
            "simulation",
            "nodes",
            "links"
          ]
        }
      },
      "required": [
        "width",
        "height",
        "id",
        "title",
        "menus",
        "chart",
        "graph"
      ]
    }
  },
  "required": [
    "mime",
    "version",
    "canvas"
  ]
}