{
"id": "com.cultureblocs.venue.lineup",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"event",
"createdAt"
],
"properties": {
"note": {
"type": "string",
"maxGraphemes": 2000
},
"tags": {
"type": "array",
"items": {
"type": "string",
"maxGraphemes": 64
},
"maxLength": 8
},
"event": {
"ref": "com.cultureblocs.defs#strongRef",
"type": "ref",
"description": "The event this describes — normally a community.lexicon.calendar.event record. Pin the CID so the attachment is tamper-evident."
},
"venue": {
"ref": "com.cultureblocs.defs#strongRef",
"type": "ref",
"description": "The venue profile record, when the event happens at a venue that publishes one."
},
"works": {
"type": "array",
"items": {
"ref": "com.cultureblocs.defs#workRef",
"type": "ref"
},
"maxLength": 20,
"description": "Works performed or shown, where the programme is specific about them."
},
"billing": {
"type": "array",
"items": {
"ref": "com.cultureblocs.defs#creditRef",
"type": "ref"
},
"maxLength": 20,
"description": "Who is on: performers, artists, speakers, DJs. `did` links to a creative profile where one exists."
},
"createdAt": {
"type": "string",
"format": "datetime"
}
}
},
"description": "Cultural detail attached to an event that the shared calendar record does not carry: who is on, and what is performed or shown. A layer, not a replacement — it references an event by strongRef and never duplicates it. The same discipline as the creative namespace: layers reference the core claim rather than growing it. If these fields prove generally useful they belong upstream in the community calendar lexicon, not here."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}