{
  "name": "Crypto Ticker",
  "author": "Navidrome",
  "version": "1.0.0",
  "description": "Real-time cryptocurrency price ticker using Coinbase WebSocket API",
  "website": "https://github.com/navidrome/navidrome/tree/master/plugins/examples/crypto-ticker",
  "config": {
    "schema": {
      "type": "object",
      "properties": {
        "symbols": {
          "type": "array",
          "title": "Trading Pairs",
          "description": "Cryptocurrency trading pairs to track (default: BTC-USD)",
          "items": {
            "type": "string",
            "title": "Trading Pair",
            "pattern": "^[A-Z]{3,5}-[A-Z]{3,5}$",
            "description": "Trading pair in the format BASE-QUOTE (e.g., BTC-USD, ETH-USD)"
          },
          "default": ["BTC-USD"]
        },
        "reconnectDelay": {
          "type": "integer",
          "title": "Reconnect Delay",
          "description": "Delay in seconds before attempting to reconnect after connection loss",
          "default": 5,
          "minimum": 1,
          "maximum": 60
        },
        "logPrices": {
          "type": "boolean",
          "title": "Log Prices",
          "description": "Whether to log price updates to the server log",
          "default": false
        }
      }
    },
    "uiSchema": {
      "type": "VerticalLayout",
      "elements": [
        {
          "type": "Control",
          "scope": "#/properties/symbols"
        },
        {
          "type": "HorizontalLayout",
          "elements": [
            {
              "type": "Control",
              "scope": "#/properties/reconnectDelay"
            },
            {
              "type": "Control",
              "scope": "#/properties/logPrices"
            }
          ]
        }
      ]
    }
  },
  "permissions": {
    "scheduler": {
      "reason": "To schedule reconnection attempts on connection loss"
    },
    "websocket": {
      "reason": "To connect to Coinbase WebSocket API for real-time prices",
      "requiredHosts": ["ws-feed.exchange.coinbase.com"]
    }
  }
}
