{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "The open shelf: every renderable book the appview has indexed, newest first (record keys are TIDs, so newest means most recently created). The index is fed network-wide from the firehose; any repo's book appears once its spine resolves to content the reader can render.",
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "books": {
              "items": {
                "ref": "page.cavu.defs#bookView",
                "type": "ref"
              },
              "type": "array"
            },
            "cursor": {
              "description": "Pass back to fetch the next page; absent on the last page.",
              "type": "string"
            }
          },
          "required": [
            "books"
          ],
          "type": "object"
        }
      },
      "parameters": {
        "properties": {
          "author": {
            "description": "Restrict the shelf to books published from this repo.",
            "format": "did",
            "type": "string"
          },
          "cursor": {
            "description": "Opaque pagination cursor from a previous response.",
            "type": "string"
          },
          "limit": {
            "default": 50,
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "params"
      },
      "type": "query"
    }
  },
  "id": "page.cavu.getShelf",
  "lexicon": 1
}
