A post waiting to be published. Holds the finished post record and its postMeta exactly as they will be written, so publishing is a copy and nothing is recomputed. Lives on the author's own PDS rather than on Zeens' servers; the images are uploaded at scheduling time and this record keeps them referenced until publish. NOT PRIVATE: like every repo record it is publicly readable before publishAt. Deliberately absent from the AppView's lexicons and firehose collections, so it is never indexed as content.
tid
Timestamp-based ID
Properties
c2pa
array
of
unknown
Optional
The app.zeens.c2pa#credential entries, if any, written as that record's images at publish time.
maxLength: 4 itemscollection
string
nsid
Required
Where the post is written: Bluesky, or Zeens-only.
app.bsky.feed.post, app.zeens.postcollections
array
of
ref
#scheduledCollection
Optional
Collections the post joins once it exists. Each item's rkey is minted at scheduling time so adding it is idempotent.
maxLength: 20 itemscreatedAt
string
datetime
Required
An RFC 3339 formatted timestamp.
meta
unknown
Optional
The app.zeens.postMeta record body, if any. post and createdAt are replaced at publish time.
post
unknown
Required
The post record body. createdAt is replaced with the publish time.
publishAt
string
datetime
Required
When to publish. The worker reads this from the record at publish time, so editing it here is how a post is rescheduled.
rkey
string
record-key
Required
The rkey the post and its postMeta are written at. Minted at scheduling time so a cross-link URL in the caption is correct in advance, and so publishing twice fails instead of posting twice.
View raw schema
{
"description": "A post waiting to be published. Holds the finished post record and its postMeta exactly as they will be written, so publishing is a copy and nothing is recomputed. Lives on the author's own PDS rather than on Zeens' servers; the images are uploaded at scheduling time and this record keeps them referenced until publish. NOT PRIVATE: like every repo record it is publicly readable before publishAt. Deliberately absent from the AppView's lexicons and firehose collections, so it is never indexed as content.",
"key": "tid",
"record": {
"properties": {
"c2pa": {
"description": "The app.zeens.c2pa#credential entries, if any, written as that record's images at publish time.",
"items": {
"type": "unknown"
},
"maxLength": 4,
"type": "array"
},
"collection": {
"description": "Where the post is written: Bluesky, or Zeens-only.",
"format": "nsid",
"knownValues": [
"app.bsky.feed.post",
"app.zeens.post"
],
"type": "string"
},
"collections": {
"description": "Collections the post joins once it exists. Each item's rkey is minted at scheduling time so adding it is idempotent.",
"items": {
"ref": "#scheduledCollection",
"type": "ref"
},
"maxLength": 20,
"type": "array"
},
"createdAt": {
"format": "datetime",
"type": "string"
},
"meta": {
"description": "The app.zeens.postMeta record body, if any. post and createdAt are replaced at publish time.",
"type": "unknown"
},
"post": {
"description": "The post record body. createdAt is replaced with the publish time.",
"type": "unknown"
},
"publishAt": {
"description": "When to publish. The worker reads this from the record at publish time, so editing it here is how a post is rescheduled.",
"format": "datetime",
"type": "string"
},
"rkey": {
"description": "The rkey the post and its postMeta are written at. Minted at scheduling time so a cross-link URL in the caption is correct in advance, and so publishing twice fails instead of posting twice.",
"format": "record-key",
"type": "string"
}
},
"required": [
"publishAt",
"collection",
"rkey",
"post",
"createdAt"
],
"type": "object"
},
"type": "record"
}