{
"id": "social.arabica.alpha.bean",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"name",
"createdAt"
],
"properties": {
"link": {
"type": "string",
"format": "uri",
"maxLength": 500,
"description": "Optional product, vendor, or information URL for the beans"
},
"name": {
"type": "string",
"maxLength": 200,
"description": "Name of the coffee bean (e.g., 'Ethiopian Yirgacheffe', 'Morning Blend')"
},
"notes": {
"type": "string",
"maxLength": 2000,
"description": "Personal notes about the beans"
},
"closed": {
"type": "boolean",
"description": "Whether the bag is closed/finished (default: false)"
},
"origin": {
"type": "string",
"maxLength": 200,
"description": "Geographic origin of the beans (e.g., 'Ethiopia', 'Colombia')"
},
"rating": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "User rating of the bean (1-10 scale, optional)"
},
"process": {
"type": "string",
"maxLength": 100,
"description": "Processing method (e.g., 'Washed', 'Natural', 'Honey')"
},
"variety": {
"type": "string",
"maxLength": 200,
"description": "Coffee variety (e.g., 'SL28', 'Typica', 'Gesha', 'Caturra')"
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Timestamp when the bean record was created"
},
"roastDate": {
"type": "string",
"maxLength": 10,
"description": "Optional date when the beans were roasted (YYYY-MM-DD)"
},
"sourceRef": {
"type": "string",
"format": "at-uri",
"description": "AT-URI of the record this entity was sourced from"
},
"roastLevel": {
"type": "string",
"maxLength": 100,
"description": "Roast level (e.g., 'Light', 'Medium', 'Dark')"
},
"roasterRef": {
"type": "string",
"format": "at-uri",
"description": "AT-URI reference to the roaster record (e.g., at://did:plc:abc/social.arabica.alpha.roaster/3jxy...)"
},
"description": {
"type": "string",
"maxLength": 1000,
"description": "Public roaster description or tasting notes for the beans"
}
}
},
"description": "A coffee bean variety tracked by the user"
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}