ink.resenha.ebook

resenha.ink

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "One per file. Deleting the record lets the account's server delete the file.",
      "key": "tid",
      "record": {
        "properties": {
          "authors": {
            "items": {
              "maxGraphemes": 64,
              "maxLength": 640,
              "type": "string"
            },
            "maxLength": 20,
            "type": "array"
          },
          "book": {
            "description": "The account's record for the same book, when the reader connected the file to their library: a buzz.bookhive.book, or a social.popfeed.feed.listItem for a book they keep in Popfeed.",
            "format": "at-uri",
            "type": "string"
          },
          "cover": {
            "accept": [
              "image/png",
              "image/jpeg",
              "image/webp"
            ],
            "description": "A cover image for showing the book in a list, taken from the file.",
            "maxSize": 1000000,
            "type": "blob"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "file": {
            "accept": [
              "application/epub+zip",
              "application/pdf",
              "application/vnd.comicbook+zip",
              "application/zip"
            ],
            "description": "The book itself.",
            "type": "blob"
          },
          "format": {
            "description": "How to open the file. A comic archive is a zip of page images, read in file name order.",
            "knownValues": [
              "epub",
              "pdf",
              "cbz"
            ],
            "type": "string"
          },
          "title": {
            "description": "From the file's own metadata when it has some, otherwise from its file name.",
            "maxGraphemes": 300,
            "maxLength": 3000,
            "type": "string"
          }
        },
        "required": [
          "file",
          "format",
          "title",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "description": "A book file the account keeps for reading in Resenha: an EPUB, a PDF or a comic archive. The file is a blob in the account's repository, which keeps it only while a record refers to it.",
  "id": "ink.resenha.ebook",
  "lexicon": 1
}

Validate Record

Validate a record against ink.resenha.ebook

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:v7itjf4h3sb5zuegiiskctqb
CID
bafyreigqkdbre2yhgseinmmrsbnp3lhjblf34i2qsrafbsago5opefl3gi
Indexed At
2026-10-29 00:02 UTC
AT-URI
at://did:plc:v7itjf4h3sb5zuegiiskctqb/com.atproto.lexicon.schema/ink.resenha.ebook

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • Which catalog book a book in the reader's library is, and which of the reader's records in each book app are that book. Resenha writes these when it matches a reader's Popfeed books to BookHive's catalog, so Popfeed's a…

  • A minimal book record for reading attestation. For rich metadata (ratings, reviews, covers), see buzz.bookhive.book.

  • A book in the user's library

Lexicon Garden

@