{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api.radio-browser.info/schemas/station.json",
  "title": "Station",
  "description": "A radio station entry in the Radio Browser directory.",
  "type": "object",
  "required": ["stationuuid", "name", "url"],
  "properties": {
    "changeuuid": {"type": "string", "format": "uuid"},
    "stationuuid": {"type": "string", "format": "uuid"},
    "serveruuid": {"type": ["string", "null"], "format": "uuid"},
    "name": {"type": "string"},
    "url": {"type": "string", "format": "uri"},
    "url_resolved": {"type": "string", "format": "uri"},
    "homepage": {"type": "string", "format": "uri"},
    "favicon": {"type": "string", "format": "uri"},
    "tags": {"type": "string", "description": "Comma-separated list of tag keywords."},
    "country": {"type": "string"},
    "countrycode": {"type": "string", "pattern": "^[A-Z]{2}$"},
    "iso_3166_2": {"type": "string"},
    "state": {"type": "string"},
    "language": {"type": "string"},
    "languagecodes": {"type": "string"},
    "votes": {"type": "integer", "minimum": 0},
    "lastchangetime": {"type": "string"},
    "lastchangetime_iso8601": {"type": "string", "format": "date-time"},
    "codec": {"type": "string"},
    "bitrate": {"type": "integer", "minimum": 0},
    "hls": {"type": "integer", "enum": [0, 1]},
    "lastcheckok": {"type": "integer", "enum": [0, 1]},
    "lastchecktime": {"type": "string"},
    "lastchecktime_iso8601": {"type": "string", "format": "date-time"},
    "lastcheckoktime": {"type": "string"},
    "lastcheckoktime_iso8601": {"type": "string", "format": "date-time"},
    "lastlocalchecktime": {"type": "string"},
    "lastlocalchecktime_iso8601": {"type": "string", "format": "date-time"},
    "clicktimestamp": {"type": "string"},
    "clicktimestamp_iso8601": {"type": ["string", "null"], "format": "date-time"},
    "clickcount": {"type": "integer", "minimum": 0},
    "clicktrend": {"type": "integer"},
    "ssl_error": {"type": "integer", "enum": [0, 1]},
    "geo_lat": {"type": ["number", "null"]},
    "geo_long": {"type": ["number", "null"]},
    "geo_distance": {"type": ["number", "null"]},
    "has_extended_info": {"type": "boolean"}
  }
}
