{
"id": "world.ptah.cadence",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"name",
"creatorDID",
"worldReference",
"createdAt",
"targetReferences"
],
"properties": {
"name": {
"type": "string",
"maxLength": 640,
"description": "The name of this cadence",
"maxGraphemes": 64
},
"endsAt": {
"type": "string",
"format": "datetime",
"description": "When this cadence ends (absent = ongoing)"
},
"status": {
"type": "string",
"description": "Current state of this cadence",
"knownValues": [
"draft",
"active",
"paused",
"completed",
"cancelled"
]
},
"startsAt": {
"type": "string",
"format": "datetime",
"description": "When this cadence begins"
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Timestamp when this cadence record was created"
},
"creatorDID": {
"type": "string",
"format": "did",
"description": "The permanent identity of the cadence record's creator"
},
"cadenceRule": {
"type": "string",
"maxLength": 2560,
"description": "RRULE string (RFC 5545) or human-readable schedule description defining the temporal pattern",
"maxGraphemes": 256
},
"cadenceType": {
"type": "string",
"description": "The temporal orchestration mode. scheduled = fixed dates/times. sequential = ordered progression, next unlocks after previous. gated = conditional access based on criteria. ritualized = irregular, unpredictable drops designed to break habituation.",
"knownValues": [
"scheduled",
"sequential",
"gated",
"ritualized"
]
},
"description": {
"type": "string",
"maxLength": 10240,
"description": "What this cadence is about",
"maxGraphemes": 1024
},
"audienceTier": {
"type": "string",
"description": "Who gets access under this cadence. public = everyone. supporters = paid/supporting audience. early = early access window before public. private = specific audience only.",
"knownValues": [
"public",
"supporters",
"early",
"private"
]
},
"channelHints": {
"type": "array",
"items": {
"type": "string"
},
"description": "Preferred delivery surfaces for this cadence. Presence in array = preferred. Extensible — new surfaces can be added without schema changes.",
"knownValues": [
"calendar",
"wallet",
"notification",
"feed"
]
},
"worldReference": {
"type": "string",
"format": "at-uri",
"description": "Reference to the world this cadence belongs to"
},
"canonicalStatus": {
"type": "string",
"description": "The canonical standing of this cadence",
"knownValues": [
"world.ptah.defs#canonicalStatusOfficial",
"world.ptah.defs#canonicalStatusCommunity",
"world.ptah.defs#canonicalStatusApocryphal"
]
},
"unlockCondition": {
"type": "string",
"maxLength": 2560,
"description": "Human-readable description of what triggers the next release or access change",
"maxGraphemes": 256
},
"targetReferences": {
"type": "array",
"items": {
"type": "string",
"format": "at-uri"
},
"description": "References to the works this cadence orchestrates"
}
}
},
"description": "Temporal orchestration for content delivery. Controls when and how works surface — release schedules, gated access, sequential unlocks, ritualized drops. The world's clock."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}