{
  "pluginAlias": "LIRC",
  "pluginType": "platform",
  "singular": true,
  "schema": {
    "type": "object",
    "properties": {
      "devices": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "title": "Television Name",
              "type": "string",
              "required": true
            },
            "manufacturer": {
              "type": "string",
              "placeholder": "Unknown"
            },
            "serial": {
              "type": "string",
              "placeholder": "Unknown"
            },
            "model": {
              "type": "string",
              "placeholder": "Unknown"
            },
            "remote": {
              "title": "LIRC Remote Name",
              "type": "string",
              "required": true
            },
            "delay": {
              "title": "Delay between IR send commands",
              "type": "integer",
              "placeholder": 0
            },
            "host": {
              "title": "LIRC Hostname/IP",
              "type": "string",
              "required": true
            },
            "port": {
              "title": "LIRC Port",
              "type": "integer",
              "placeholder": 8765
            },
            "powerOn": {
              "title": "Power On Command(s)",
              "type": "array",
              "items": {
                "title": "LIRC Remote Button/Command",
                "type": "string"
              },
              "required": ["items"]
            },
            "powerOff": {
              "title": "Power Off Command(s)",
              "type": "array",
              "items": {
                "title": "LIRC Remote Button/Command",
                "type": "string"
              },
              "required": ["items"]
            },
            "muteOn": {
              "title": "Set Mute On Command(s)",
              "type": "array",
              "items": {
                "title": "LIRC Remote Button/Command",
                "type": "string"
              }
            },
            "muteOff": {
              "title": "Set Mute Off Command(s)",
              "type": "array",
              "items": {
                "title": "LIRC Remote Button/Command",
                "type": "string"
              }
            },
            "volumeUp": {
              "title": "Volume Up Command(s)",
              "type": "array",
              "items": {
                "title": "LIRC Remote Button/Command",
                "type": "string"
              }
            },
            "volumeDown": {
              "title": "Volume Down Command(s)",
              "type": "array",
              "items": {
                "title": "LIRC Remote Button/Command",
                "type": "string"
              }
            },
            "inputs": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "title": "Name",
                    "type": "string",
                    "required": true
                  },
                  "type": {
                    "title": "Type",
                    "type": "integer",
                    "required": true,
                    "oneOf": [
                      { "title": "Other", "enum": [0] },
                      { "title": "Home Screen", "enum": [1] },
                      { "title": "Tuner", "enum": [2] },
                      { "title": "HDMI", "enum": [3] },
                      { "title": "Composite Video", "enum": [4] },
                      { "title": "S-Video", "enum": [5] },
                      { "title": "Component Video", "enum": [6] },
                      { "title": "DVI", "enum": [7] },
                      { "title": "Airplay", "enum": [8] },
                      { "title": "USB", "enum": [9] },
                      { "title": "Application", "enum": [10] }
                    ]
                  },
                  "command": {
                    "title": "Command(s)",
                    "type": "array",
                    "items": {
                      "title": "LIRC Remote Button/Command",
                      "type": "string"
                    },
                    "required": ["items"]
                  }
                }
              }
            },
            "remoteKeys": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Type",
                    "type": "integer",
                    "required": true,
                    "oneOf": [
                      { "title": "Rewind", "enum": [0] },
                      { "title": "Fast Forward", "enum": [1] },
                      { "title": "Next Track", "enum": [2] },
                      { "title": "Previous Track", "enum": [3] },
                      { "title": "Arrow Up", "enum": [4] },
                      { "title": "Arrow Down", "enum": [5] },
                      { "title": "Arrow Left", "enum": [6] },
                      { "title": "Arrow Right", "enum": [7] },
                      { "title": "Select", "enum": [8] },
                      { "title": "Back", "enum": [9] },
                      { "title": "Exit", "enum": [10] },
                      { "title": "Play/Pause", "enum": [11] },
                      { "title": "Information", "enum": [15] }
                    ]
                  },
                  "command": {
                    "title": "Command(s)",
                    "type": "array",
                    "items": {
                      "title": "LIRC Remote Button/Command",
                      "type": "string"
                    },
                    "required": ["items"]
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
