A comment on a chapter or strip, or on one of its pages, slices or panels, or a reply to another comment.
tid
Timestamp-based ID
Properties
createdAt
string
datetime
Required
The date and time the comment was created.
facets
array
of
ref
app.bsky.richtext.facet
Optional
Annotations of text (mentions, URLs, hashtags, etc).
lang
string
language
Optional
BCP-47 language tag for the text.
page
string
at-uri
Optional
AT-URI of the work.sequential.page or work.sequential.slice being commented on. Must belong to the subject chapter. Omit to comment on the whole chapter, and always omit when the subject is a strip. Replies keep the page of the comment they reply to. Use the DID form (at://did:...), not a handle.
panel
integer
Optional
Zero-based index of the panel being commented on, in the panels of the page, or of the strip when the subject is a strip. Omit to comment on the whole page or strip. Slices have no panels. Indexes can shift when the creator re-cuts panels; AppViews ignore indexes past the last panel. Replies keep the panel of the comment they reply to.
minimum: 0parent
string
at-uri
Optional
AT-URI of the work.sequential.feed.comment being replied to. Omit for a top-level comment. Use the DID form (at://did:...), not a handle.
subject
string
at-uri
Required
AT-URI of the work.sequential.chapter or work.sequential.strip being commented on. AppViews ignore comments on any other record. Comments on a page, slice or panel still set subject to the chapter or strip, so AppViews can count a work's comments without walking pages. Replies keep the subject of the comment they reply to. Use the DID form (at://did:...), not a handle.
text
string
Required
The comment text.
maxLength: 10000 bytesmaxGraphemes: 1000 graphemesView raw schema
{
"description": "A comment on a chapter or strip, or on one of its pages, slices or panels, or a reply to another comment.",
"key": "tid",
"record": {
"properties": {
"createdAt": {
"description": "The date and time the comment was created.",
"format": "datetime",
"type": "string"
},
"facets": {
"description": "Annotations of text (mentions, URLs, hashtags, etc).",
"items": {
"ref": "app.bsky.richtext.facet",
"type": "ref"
},
"type": "array"
},
"lang": {
"description": "BCP-47 language tag for the text.",
"format": "language",
"type": "string"
},
"page": {
"description": "AT-URI of the work.sequential.page or work.sequential.slice being commented on. Must belong to the subject chapter. Omit to comment on the whole chapter, and always omit when the subject is a strip. Replies keep the page of the comment they reply to. Use the DID form (at://did:...), not a handle.",
"format": "at-uri",
"type": "string"
},
"panel": {
"description": "Zero-based index of the panel being commented on, in the panels of the page, or of the strip when the subject is a strip. Omit to comment on the whole page or strip. Slices have no panels. Indexes can shift when the creator re-cuts panels; AppViews ignore indexes past the last panel. Replies keep the panel of the comment they reply to.",
"minimum": 0,
"type": "integer"
},
"parent": {
"description": "AT-URI of the work.sequential.feed.comment being replied to. Omit for a top-level comment. Use the DID form (at://did:...), not a handle.",
"format": "at-uri",
"type": "string"
},
"subject": {
"description": "AT-URI of the work.sequential.chapter or work.sequential.strip being commented on. AppViews ignore comments on any other record. Comments on a page, slice or panel still set subject to the chapter or strip, so AppViews can count a work's comments without walking pages. Replies keep the subject of the comment they reply to. Use the DID form (at://did:...), not a handle.",
"format": "at-uri",
"type": "string"
},
"text": {
"description": "The comment text.",
"maxGraphemes": 1000,
"maxLength": 10000,
"type": "string"
}
},
"required": [
"subject",
"text",
"createdAt"
],
"type": "object"
},
"type": "record"
}