A record of how an actor came to own a specific book edition (purchased, gift, review copy, etc.). Multiple acquisitions per edition are allowed; like library.marker, library.review, and library.state, this record uses key: "tid", and its rkey is an opaque identity that never changes.
tid
Timestamp-based ID
Properties
acquisitionType
ref
social.dracome.library.defs#acquisitionType
Required
How the actor came to own this edition.
catalogSnapshot
ref
social.dracome.work.defs#catalogSnapshot
Required
Point-in-time work/edition metadata capture, refreshed from current catalog data at write time.
catalogTarget
ref
social.dracome.work.defs#catalogTarget
Required
The work, and edition, this acquisition is about.
createdAt
string
datetime
Required
Canonical UTC instant serialized as ISO 8601 with a trailing Z suffix.
currencyCode
string
Optional
ISO 4217 currency code (e.g. "USD", "EUR", "GBP").
maxLength: 3 bytesinvoiceAvailable
boolean
Optional
Yes/No/unset - field absence means "unset". Must be true when invoiceNumber is set.
invoiceNumber
string
Optional
Invoice or receipt number, for tax/accounting reference. Implies invoiceAvailable: true.
maxLength: 512 bytesmaxGraphemes: 128 graphemesnotes
string
Optional
User-visible free-text notes.
maxLength: 8000 bytesmaxGraphemes: 2000 graphemespriceMinorUnits
integer
Optional
Price in the currency's minor units (e.g. cents for EUR/USD), not a float. Zero is valid and meaningful (distinguishes a recorded free copy from no price recorded, which is this field absent).
minimum: 0receivedDate
string
datetime
Optional
Canonical UTC instant for the calendar day the book was received, serialized as ISO 8601 with a trailing Z suffix. Writers store midnight UTC of that day; the time-of-day component is insignificant. Same convention as library.defs#progressLogEntry.date.
receivedFrom
string
Optional
Free-text source/supplier, e.g. "Piper Verlag", "Amazon", "Sarah".
maxLength: 1024 bytesmaxGraphemes: 256 graphemessupplier
string
Optional
Supplier/vendor name, distinct from receivedFrom for detailed accounting use cases.
maxLength: 1024 bytesmaxGraphemes: 256 graphemesupdatedAt
string
datetime
Optional
Canonical UTC instant serialized as ISO 8601 with a trailing Z suffix.
View raw schema
{
"description": "A record of how an actor came to own a specific book edition (purchased, gift, review copy, etc.). Multiple acquisitions per edition are allowed; like library.marker, library.review, and library.state, this record uses key: \"tid\", and its rkey is an opaque identity that never changes.",
"key": "tid",
"record": {
"properties": {
"acquisitionType": {
"description": "How the actor came to own this edition.",
"ref": "social.dracome.library.defs#acquisitionType",
"type": "ref"
},
"catalogSnapshot": {
"description": "Point-in-time work/edition metadata capture, refreshed from current catalog data at write time.",
"ref": "social.dracome.work.defs#catalogSnapshot",
"type": "ref"
},
"catalogTarget": {
"description": "The work, and edition, this acquisition is about.",
"ref": "social.dracome.work.defs#catalogTarget",
"type": "ref"
},
"createdAt": {
"description": "Canonical UTC instant serialized as ISO 8601 with a trailing Z suffix.",
"format": "datetime",
"type": "string"
},
"currencyCode": {
"description": "ISO 4217 currency code (e.g. \"USD\", \"EUR\", \"GBP\").",
"maxLength": 3,
"type": "string"
},
"invoiceAvailable": {
"description": "Yes/No/unset - field absence means \"unset\". Must be true when invoiceNumber is set.",
"type": "boolean"
},
"invoiceNumber": {
"description": "Invoice or receipt number, for tax/accounting reference. Implies invoiceAvailable: true.",
"maxGraphemes": 128,
"maxLength": 512,
"type": "string"
},
"notes": {
"description": "User-visible free-text notes.",
"maxGraphemes": 2000,
"maxLength": 8000,
"type": "string"
},
"priceMinorUnits": {
"description": "Price in the currency's minor units (e.g. cents for EUR/USD), not a float. Zero is valid and meaningful (distinguishes a recorded free copy from no price recorded, which is this field absent).",
"minimum": 0,
"type": "integer"
},
"receivedDate": {
"description": "Canonical UTC instant for the calendar day the book was received, serialized as ISO 8601 with a trailing Z suffix. Writers store midnight UTC of that day; the time-of-day component is insignificant. Same convention as library.defs#progressLogEntry.date.",
"format": "datetime",
"type": "string"
},
"receivedFrom": {
"description": "Free-text source/supplier, e.g. \"Piper Verlag\", \"Amazon\", \"Sarah\".",
"maxGraphemes": 256,
"maxLength": 1024,
"type": "string"
},
"supplier": {
"description": "Supplier/vendor name, distinct from receivedFrom for detailed accounting use cases.",
"maxGraphemes": 256,
"maxLength": 1024,
"type": "string"
},
"updatedAt": {
"description": "Canonical UTC instant serialized as ISO 8601 with a trailing Z suffix.",
"format": "datetime",
"type": "string"
}
},
"required": [
"catalogTarget",
"catalogSnapshot",
"acquisitionType",
"createdAt"
],
"type": "object"
},
"type": "record"
}