{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "cursor": {
      "description": "The last message read in one channel.",
      "properties": {
        "channel": {
          "description": "The channel's space key.",
          "format": "record-key",
          "type": "string"
        },
        "cursor": {
          "description": "Record key of the last message read. Message keys are TIDs, so they order by time.",
          "format": "tid",
          "type": "string"
        }
      },
      "required": [
        "channel",
        "cursor"
      ],
      "type": "object"
    },
    "main": {
      "description": "Read state for one community's channels. The record key is the community DID, which bounds each record to a community's channel count and makes leaving a community a single delete.",
      "key": "any",
      "record": {
        "properties": {
          "community": {
            "description": "The community these cursors belong to. Matches the record key.",
            "format": "did",
            "type": "string"
          },
          "cursors": {
            "description": "One cursor per read channel.",
            "items": {
              "ref": "#cursor",
              "type": "ref"
            },
            "type": "array"
          }
        },
        "required": [
          "community",
          "cursors"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "social.colibri.beta.channel.read",
  "lexicon": 1
}
