{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "author": {
      "description": "The account a record belongs to.",
      "properties": {
        "did": {
          "format": "did",
          "type": "string"
        },
        "handle": {
          "format": "handle",
          "type": "string"
        }
      },
      "required": [
        "did",
        "handle"
      ],
      "type": "object"
    },
    "broadcastView": {
      "properties": {
        "author": {
          "ref": "#author",
          "type": "ref"
        },
        "indexedAt": {
          "format": "datetime",
          "type": "string"
        },
        "record": {
          "description": "The radio.4000.broadcast record.",
          "type": "unknown"
        }
      },
      "required": [
        "author",
        "record",
        "indexedAt"
      ],
      "type": "object"
    },
    "chatMessageView": {
      "properties": {
        "author": {
          "ref": "#author",
          "type": "ref"
        },
        "cid": {
          "format": "cid",
          "type": "string"
        },
        "indexedAt": {
          "format": "datetime",
          "type": "string"
        },
        "record": {
          "description": "The radio.4000.chat.message record.",
          "type": "unknown"
        },
        "uri": {
          "format": "at-uri",
          "type": "string"
        }
      },
      "required": [
        "uri",
        "cid",
        "author",
        "record",
        "indexedAt"
      ],
      "type": "object"
    },
    "link": {
      "description": "A link to elsewhere, with an optional label.",
      "properties": {
        "title": {
          "maxGraphemes": 64,
          "maxLength": 640,
          "type": "string"
        },
        "url": {
          "format": "uri",
          "maxLength": 2048,
          "type": "string"
        }
      },
      "required": [
        "url"
      ],
      "type": "object"
    },
    "radioView": {
      "properties": {
        "did": {
          "format": "did",
          "type": "string"
        },
        "handle": {
          "format": "handle",
          "type": "string"
        },
        "image": {
          "description": "URL of the radio's image blob on its PDS.",
          "format": "uri",
          "type": "string"
        },
        "indexedAt": {
          "format": "datetime",
          "type": "string"
        },
        "latestTrackAt": {
          "format": "datetime",
          "type": "string"
        },
        "record": {
          "description": "The radio.4000.profile record, when the account has one.",
          "type": "unknown"
        },
        "trackCount": {
          "minimum": 0,
          "type": "integer"
        },
        "tracksUpdatedAt": {
          "description": "When the radio's tracks last changed: an app can keep them and load them again only when this moves.",
          "format": "datetime",
          "type": "string"
        }
      },
      "required": [
        "did",
        "handle",
        "trackCount",
        "indexedAt"
      ],
      "type": "object"
    },
    "trackView": {
      "properties": {
        "author": {
          "ref": "#author",
          "type": "ref"
        },
        "cid": {
          "format": "cid",
          "type": "string"
        },
        "indexedAt": {
          "format": "datetime",
          "type": "string"
        },
        "record": {
          "description": "The radio.4000.track record.",
          "type": "unknown"
        },
        "uri": {
          "format": "at-uri",
          "type": "string"
        }
      },
      "required": [
        "uri",
        "cid",
        "author",
        "record",
        "indexedAt"
      ],
      "type": "object"
    }
  },
  "description": "Definitions shared by the records, and views of records served by the 4000.radio index. Each view carries the record as it is in its repo.",
  "id": "radio.4000.defs",
  "lexicon": 1
}
