{
"id": "org.passingreads.book.note",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"properties": {
"did": {
"type": "string",
"format": "did",
"description": "The DID of the person who wrote this note. Included here, so it's verifiable with the bookSig."
},
"book": {
"ref": "com.atproto.repo.strongRef#main",
"type": "ref",
"description": "The book the note is 'in' (a org.passingreads.book.registration)"
},
"note": {
"type": "string",
"maxLength": 10000,
"minLength": 1,
"description": "The text content of the note left in the book",
"maxGraphemes": 1000
},
"images": {
"type": "array",
"items": {
"ref": "#image",
"type": "ref"
},
"maxLength": 3,
"description": "Images attached to the note"
},
"bookPub": {
"type": "bytes",
"description": "The MultiFormat public key of the book."
},
"bookSig": {
"type": "bytes",
"description": "The MultiFormat signature of this record, without this attribute, as created by the private key associated with the book."
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"aboutPublication": {
"type": "boolean",
"description": "If true, this note is about the publication in general rather than this specific physical copy. Such notes may be shown on any book with the same publicationId."
},
"spoilerPageNumber": {
"type": "string",
"maxLength": 6,
"minLength": 1,
"description": "If set, this note contains spoilers for readers who haven't reached this page (may also contain the special value 'end')"
}
}
}
},
"image": {
"type": "object",
"required": [
"image",
"alt"
],
"properties": {
"alt": {
"type": "string",
"maxLength": 10000,
"description": "Alt text description of the image",
"maxGraphemes": 1000
},
"image": {
"type": "blob",
"accept": [
"image/png",
"image/jpeg"
],
"maxSize": 1000000
},
"aspectRatio": {
"ref": "org.passingreads.defs#aspectRatio",
"type": "ref"
}
}
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}