{
  "$schema": "http://json-schema.org/draft-06/schema",
  "type": "object",
  "description": "Parameters to instantiate JS drone",
  "additionalProperties": false,
  "properties": {
    "autopilotIp": {
      "title": "IP address of the drone's autopilot",
      "description": "IP used to create a connection with the autopilot.",
      "type": "string"
    },
    "autopilotPort": {
      "title": "Port of the drone's autopilot",
      "description": "Port on which autopilot service is running.",
      "type": "integer"
    },
    "numberOfPeers": {
      "title": "Number of Peers",
      "description": "Number of drones and subscribers in the swarm",
      "type": "integer"
    },
    "id": {
      "title": "drone ID",
      "description": "Drone unique identifier",
      "type": "integer"
    },
    "isADrone": {
      "title": "Set the requested instance as a drone",
      "description": "The option used to determine if the instance is a drone. This affects the context of the user script (e.g. if it should be linked to an autopilot or publish its GPS coordinates)",
      "type": "boolean"
    },
    "isASimulation": {
      "title": "Set the flight as a simulation",
      "description": "The option used to determine if the flight is real or if it is a simulation. This affects the context of the flight (e.g. if the take off is manual or automatic).",
      "type": "boolean"
    },
    "multicastIp": {
      "title": "IP of the multicast group",
      "description": "IP address used to communicate with the other drones.",
      "type": "string"
    },
    "netIf": {
      "title": "Network interface",
      "description": "Interface used for multicast traffic.",
      "type": "string"
    },
    "flightScript": {
      "title": "Script's URL of the flight",
      "description": "URL of the script which will be executed for the flight. This URL must be publicly accesible so that all drones can fetch the script.",
      "type": "string"
    }
  }
}
