buzz.bookhive.defs

bookhive.buzz

{
  "id": "buzz.bookhive.defs",
  "defs": {
    "owned": {
      "type": "token",
      "description": "User owns the book"
    },
    "review": {
      "type": "object",
      "required": [
        "review",
        "createdAt",
        "did",
        "handle"
      ],
      "properties": {
        "did": {
          "type": "string",
          "description": "The DID of the user who made the review"
        },
        "stars": {
          "type": "integer",
          "description": "The number of stars given to the book"
        },
        "handle": {
          "type": "string",
          "description": "The handle of the user who made the review"
        },
        "review": {
          "type": "string",
          "description": "The review content"
        },
        "createdAt": {
          "type": "string",
          "format": "datetime",
          "description": "The date the review was created"
        }
      }
    },
    "comment": {
      "type": "object",
      "required": [
        "comment",
        "createdAt",
        "book",
        "parent",
        "did",
        "handle"
      ],
      "properties": {
        "did": {
          "type": "string",
          "description": "The DID of the user who made the comment"
        },
        "book": {
          "ref": "com.atproto.repo.strongRef",
          "type": "ref"
        },
        "handle": {
          "type": "string",
          "description": "The handle of the user who made the comment"
        },
        "parent": {
          "ref": "com.atproto.repo.strongRef",
          "type": "ref"
        },
        "comment": {
          "type": "string",
          "maxLength": 100000,
          "description": "The content of the comment.",
          "maxGraphemes": 10000
        },
        "createdAt": {
          "type": "string",
          "format": "datetime",
          "description": "Client-declared timestamp when this comment was originally created."
        }
      }
    },
    "profile": {
      "type": "object",
      "required": [
        "displayName",
        "handle",
        "booksRead",
        "reviews"
      ],
      "properties": {
        "avatar": {
          "type": "string"
        },
        "handle": {
          "type": "string"
        },
        "reviews": {
          "type": "integer",
          "minimum": 0
        },
        "booksRead": {
          "type": "integer",
          "minimum": 0
        },
        "description": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "isFollowing": {
          "type": "boolean",
          "description": "Whether the authed user is following this profile"
        }
      }
    },
    "reading": {
      "type": "token",
      "description": "User is currently reading the book"
    },
    "activity": {
      "type": "object",
      "required": [
        "type",
        "createdAt",
        "hiveId",
        "title",
        "userDid",
        "userHandle"
      ],
      "properties": {
        "type": {
          "type": "string",
          "knownValues": [
            "review",
            "rated",
            "started",
            "finished"
          ]
        },
        "title": {
          "type": "string",
          "description": "The title of the book"
        },
        "hiveId": {
          "type": "string",
          "description": "The hive id of the book"
        },
        "userDid": {
          "type": "string",
          "description": "The DID of the user who added the book"
        },
        "createdAt": {
          "type": "string",
          "format": "datetime"
        },
        "userHandle": {
          "type": "string",
          "description": "The handle of the user who added the book"
        }
      }
    },
    "finished": {
      "type": "token",
      "description": "User has finished reading the book"
    },
    "userBook": {
      "type": "object",
      "required": [
        "userDid",
        "title",
        "authors",
        "hiveId",
        "createdAt",
        "thumbnail"
      ],
      "properties": {
        "cover": {
          "type": "string",
          "description": "Cover image of the book"
        },
        "stars": {
          "type": "integer",
          "maximum": 10,
          "minimum": 1,
          "description": "Number of stars given to the book (1-10) which will be mapped to 1-5 stars"
        },
        "title": {
          "type": "string",
          "maxLength": 512,
          "minLength": 1,
          "description": "The title of the book"
        },
        "hiveId": {
          "type": "string",
          "description": "The book's hive id, used to correlate user's books with the hive"
        },
        "rating": {
          "type": "integer",
          "maximum": 1000,
          "minimum": 0,
          "description": "Average rating (0-1000)"
        },
        "review": {
          "type": "string",
          "description": "The book's review",
          "maxGraphemes": 15000
        },
        "status": {
          "type": "string",
          "knownValues": [
            "buzz.bookhive.defs#finished",
            "buzz.bookhive.defs#reading",
            "buzz.bookhive.defs#wantToRead",
            "buzz.bookhive.defs#abandoned",
            "buzz.bookhive.defs#owned"
          ]
        },
        "authors": {
          "type": "string",
          "maxLength": 2048,
          "minLength": 1,
          "description": "The authors of the book (tab separated)"
        },
        "userDid": {
          "type": "string",
          "description": "The DID of the user who added the book"
        },
        "createdAt": {
          "type": "string",
          "format": "datetime"
        },
        "startedAt": {
          "type": "string",
          "format": "datetime",
          "description": "The date the user started reading the book"
        },
        "thumbnail": {
          "type": "string",
          "description": "Cover image of the book"
        },
        "finishedAt": {
          "type": "string",
          "format": "datetime",
          "description": "The date the user finished reading the book"
        },
        "userHandle": {
          "type": "string",
          "description": "The handle of the user who added the book"
        },
        "description": {
          "type": "string",
          "maxLength": 5000,
          "description": "Book description/summary"
        },
        "bookProgress": {
          "ref": "buzz.bookhive.defs#bookProgress",
          "type": "ref",
          "description": "Progress tracking information for the book"
        }
      }
    },
    "abandoned": {
      "type": "token",
      "description": "User has abandoned the book"
    },
    "wantToRead": {
      "type": "token",
      "description": "User wants to read the book"
    },
    "bookProgress": {
      "type": "object",
      "required": [
        "updatedAt"
      ],
      "properties": {
        "percent": {
          "type": "integer",
          "maximum": 100,
          "minimum": 0,
          "description": "How far through the book the reader is (0-100)"
        },
        "updatedAt": {
          "type": "string",
          "format": "datetime",
          "description": "When the progress was last updated"
        },
        "totalPages": {
          "type": "integer",
          "minimum": 1,
          "description": "Total number of pages in the book"
        },
        "currentPage": {
          "type": "integer",
          "minimum": 1,
          "description": "Current page the user is on"
        },
        "totalChapters": {
          "type": "integer",
          "minimum": 1,
          "description": "Total number of chapters in the book"
        },
        "currentChapter": {
          "type": "integer",
          "minimum": 1,
          "description": "Current chapter the user is on"
        }
      },
      "description": "Reading progress tracking data"
    },
    "bookIdentifiers": {
      "type": "object",
      "properties": {
        "hiveId": {
          "type": "string",
          "description": "BookHive's internal ID"
        },
        "isbn10": {
          "type": "string",
          "description": "10-digit ISBN"
        },
        "isbn13": {
          "type": "string",
          "description": "13-digit ISBN"
        },
        "goodreadsId": {
          "type": "string",
          "description": "Goodreads book ID"
        }
      },
      "description": "External identifiers for a book"
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}

Validate Record

Validate a record against buzz.bookhive.defs

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:enu2j5xjlqsjaylv3du4myh4
CID
bafyreickxvcmsfvv2jzjzwbzkorpkepeshlteq4e525sg7m2hw7merhxji
Indexed At
2026-02-14 11:57 UTC
AT-URI
at://did:plc:enu2j5xjlqsjaylv3du4myh4/com.atproto.lexicon.schema/buzz.bookhive.defs

Version History (2 versions)

Lexicon Garden

@