{
"id": "support.supper.comment",
"defs": {
"link": {
"type": "object",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"format": "uri",
"description": "HTTP(S) link annotated by this facet."
}
},
"description": "Link associated with the annotated text."
},
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"subject",
"plaintext",
"createdAt"
],
"properties": {
"reply": {
"ref": "#replyRef",
"type": "ref",
"description": "Thread references when this comment replies to another support.supper.comment. Indexers must verify that both referenced comments use this record's exact subject URI."
},
"facets": {
"type": "array",
"items": {
"ref": "#facet",
"type": "ref"
},
"maxLength": 100,
"description": "Optional rich-text annotations over UTF-8 byte ranges in plaintext."
},
"subject": {
"type": "string",
"format": "at-uri",
"description": "AT URI of the site.standard.document, support.supper.feed.post, fm.plyr.track, or support.supper.poll.poll being discussed. Indexers must verify that the URI identifies one of those collections before including the comment in a subject thread."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "When the comment was created."
},
"plaintext": {
"type": "string",
"maxLength": 20000,
"description": "Plaintext comment body. Facets may annotate links and mentions without changing this canonical text.",
"maxGraphemes": 2000
}
}
},
"description": "A public Supper comment attached directly to a site.standard.document, support.supper.feed.post, fm.plyr.track, or support.supper.poll.poll. The record is authored in the commenter's repository; its subject identifies the Supper discussion independently of any optional microblog cross-post."
},
"facet": {
"type": "object",
"required": [
"index",
"features"
],
"properties": {
"index": {
"ref": "#byteSlice",
"type": "ref"
},
"features": {
"type": "array",
"items": {
"refs": [
"#link",
"#mention"
],
"type": "union",
"closed": false
},
"maxLength": 5,
"minLength": 1
}
},
"description": "Annotation of a UTF-8 byte range in the plaintext comment."
},
"mention": {
"type": "object",
"required": [
"did"
],
"properties": {
"did": {
"type": "string",
"format": "did"
}
},
"description": "Account mention associated with the annotated text."
},
"replyRef": {
"type": "object",
"required": [
"root",
"parent"
],
"properties": {
"root": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Strong reference to the top-level support.supper.comment that starts this subject thread. Its subject must exactly match the replying record's subject."
},
"parent": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Strong reference to the support.supper.comment being replied to. Its subject must exactly match the replying record's subject."
}
}
},
"byteSlice": {
"type": "object",
"required": [
"byteStart",
"byteEnd"
],
"properties": {
"byteEnd": {
"type": "integer",
"minimum": 0
},
"byteStart": {
"type": "integer",
"minimum": 0
}
},
"description": "Zero-indexed UTF-8 byte range. The start is inclusive and the end is exclusive."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}