{
"id": "pub.chive.review.getThread",
"defs": {
"main": {
"type": "query",
"errors": [
{
"name": "NotFound",
"description": "Review not found"
}
],
"output": {
"schema": {
"type": "object",
"required": [
"parent",
"replies",
"totalReplies"
],
"properties": {
"parent": {
"ref": "#reviewView",
"type": "ref",
"description": "Root review of the thread"
},
"replies": {
"type": "array",
"items": {
"ref": "#reviewView",
"type": "ref"
},
"description": "Direct replies to the root review"
},
"totalReplies": {
"type": "integer",
"minimum": 0,
"description": "Total number of replies in the thread"
}
}
},
"encoding": "application/json"
},
"parameters": {
"type": "params",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"format": "at-uri",
"description": "AT-URI of the root review"
}
}
},
"description": "Get a review thread including the root review and all replies"
},
"authorRef": {
"type": "object",
"required": [
"did"
],
"properties": {
"did": {
"type": "string",
"format": "did"
},
"avatar": {
"type": "string",
"format": "uri"
},
"handle": {
"type": "string"
},
"displayName": {
"type": "string"
}
}
},
"reviewView": {
"type": "object",
"required": [
"uri",
"cid",
"author",
"eprintUri",
"content",
"motivation",
"replyCount",
"createdAt",
"indexedAt"
],
"properties": {
"cid": {
"type": "string",
"description": "Content identifier"
},
"uri": {
"type": "string",
"format": "at-uri",
"description": "Review AT-URI"
},
"body": {
"type": "array",
"items": {
"refs": [
"pub.chive.richtext.defs#textItem",
"pub.chive.richtext.defs#nodeRefItem",
"pub.chive.richtext.defs#wikidataRefItem",
"pub.chive.richtext.defs#fieldRefItem",
"pub.chive.richtext.defs#facetRefItem",
"pub.chive.richtext.defs#eprintRefItem",
"pub.chive.richtext.defs#annotationRefItem",
"pub.chive.richtext.defs#authorRefItem",
"pub.chive.richtext.defs#mentionItem",
"pub.chive.richtext.defs#linkItem",
"pub.chive.richtext.defs#tagItem",
"pub.chive.richtext.defs#latexItem",
"pub.chive.richtext.defs#codeBlockItem",
"pub.chive.richtext.defs#headingItem",
"pub.chive.richtext.defs#listItem",
"pub.chive.richtext.defs#blockquoteItem"
],
"type": "union"
},
"maxLength": 500,
"description": "Rich text body items"
},
"author": {
"ref": "#authorRef",
"type": "ref"
},
"target": {
"ref": "#textSpanTarget",
"type": "ref",
"description": "Target text span for inline annotations"
},
"content": {
"type": "string",
"description": "Plain text content of the review"
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "When the review was created"
},
"eprintUri": {
"type": "string",
"format": "at-uri",
"description": "AT-URI of the eprint being reviewed"
},
"indexedAt": {
"type": "string",
"format": "datetime",
"description": "When the review was indexed"
},
"motivation": {
"type": "string",
"description": "W3C Web Annotation motivation",
"knownValues": [
"commenting",
"highlighting",
"questioning",
"replying",
"assessing",
"bookmarking",
"classifying",
"describing",
"editing",
"linking",
"moderating",
"tagging"
]
},
"replyCount": {
"type": "integer",
"minimum": 0,
"description": "Number of direct replies"
},
"bodyPlainText": {
"type": "string",
"description": "Plain text body for search/preview"
},
"parentReviewUri": {
"type": "string",
"format": "at-uri",
"description": "Parent review URI for threaded replies"
}
},
"description": "View of a review/comment"
},
"textSpanTarget": {
"type": "object",
"required": [
"source"
],
"properties": {
"page": {
"type": "integer",
"minimum": 1,
"description": "Page number (deprecated, use refinedBy.pageNumber)"
},
"source": {
"type": "string",
"format": "at-uri",
"description": "Eprint AT-URI"
},
"selector": {
"ref": "#textQuoteSelector",
"type": "ref",
"description": "Text quote selector"
},
"refinedBy": {
"ref": "#textPositionSelector",
"type": "ref",
"description": "Position refinement with page info"
}
},
"description": "Target text span for inline annotations (W3C Web Annotation compatible)"
},
"textQuoteSelector": {
"type": "object",
"required": [
"type",
"exact"
],
"properties": {
"type": {
"type": "string",
"const": "TextQuoteSelector"
},
"exact": {
"type": "string",
"maxLength": 1000
},
"prefix": {
"type": "string",
"maxLength": 100
},
"suffix": {
"type": "string",
"maxLength": 100
}
},
"description": "W3C Text Quote Selector"
},
"textPositionSelector": {
"type": "object",
"required": [
"type",
"start",
"end"
],
"properties": {
"end": {
"type": "integer",
"minimum": 0
},
"type": {
"type": "string",
"const": "TextPositionSelector"
},
"start": {
"type": "integer",
"minimum": 0
},
"pageNumber": {
"type": "integer",
"minimum": 1,
"description": "Page number in PDF"
}
},
"description": "W3C Text Position Selector with optional page info"
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1,
"revision": 1
}