{
"id": "page.corvus.contentBlocks",
"defs": {
"code": {
"type": "object",
"required": [
"blockId"
],
"properties": {
"text": {
"ref": "page.corvus.core#sequence",
"type": "ref",
"description": "The code content as a text sequence"
},
"blockId": {
"type": "string",
"format": "at-uri",
"description": "The AT-URI of this block record"
},
"language": {
"ref": "page.corvus.core#register",
"type": "ref",
"description": "Language identifier for syntax highlighting (string register, known values: javascript, typescript, python, rust, java, c, c++, c#, go)"
},
"syntaxHighlightingTheme": {
"ref": "page.corvus.core#register",
"type": "ref",
"description": "Optional theme hint (string register)"
}
},
"description": "A code block"
},
"image": {
"type": "object",
"required": [
"blockId",
"image"
],
"properties": {
"alt": {
"ref": "page.corvus.core#register",
"type": "ref",
"description": "Accessibility text describing the image (string register)"
},
"image": {
"type": "blob",
"mimeType": "image/*",
"description": "The image blob"
},
"blockId": {
"type": "string",
"format": "at-uri",
"description": "The AT-URI of this block record"
},
"aspectRatio": {
"ref": "page.corvus.core#register",
"type": "ref",
"description": "The aspect ratio of the image (register of #aspectRatio)"
}
},
"description": "An image block"
},
"option": {
"type": "object",
"required": [
"blockId",
"label"
],
"properties": {
"color": {
"ref": "page.corvus.core#register",
"type": "ref",
"description": "Optional color hint (string register)"
},
"label": {
"ref": "page.corvus.core#sequence",
"type": "ref",
"description": "Display name of the option as a text sequence"
},
"blockId": {
"type": "string",
"format": "at-uri",
"description": "The AT-URI of this block record"
}
},
"description": "An option for a select block"
},
"select": {
"type": "object",
"required": [
"blockId"
],
"properties": {
"blockId": {
"type": "string",
"format": "at-uri",
"description": "The AT-URI of this block record"
},
"options": {
"ref": "page.corvus.core#set",
"type": "ref",
"description": "The set of option block ids (set of #option)"
},
"selected": {
"ref": "page.corvus.core#set",
"type": "ref",
"description": "The set of selected option block ids"
},
"allowMultiple": {
"ref": "page.corvus.core#register",
"type": "ref",
"description": "True if multiple options can be selected (boolean register, defaults to false)"
}
},
"description": "A select block — a set of options with one or more selected"
},
"tagged": {
"type": "object",
"required": [
"blockId"
],
"properties": {
"values": {
"ref": "page.corvus.core#set",
"type": "ref",
"description": "The set of tag strings"
},
"allowed": {
"ref": "page.corvus.core#set",
"type": "ref",
"description": "Optional allowlist of permitted tag strings"
},
"blockId": {
"type": "string",
"format": "at-uri",
"description": "The AT-URI of this block record"
}
},
"description": "A tagged block — a set of string tags with an optional allowlist"
},
"comment": {
"type": "object",
"required": [
"blockId",
"author"
],
"properties": {
"body": {
"ref": "page.corvus.core#register",
"type": "ref",
"description": "Comment body as a child block id"
},
"author": {
"type": "string",
"format": "did",
"description": "The DID of the comment author"
},
"blockId": {
"type": "string",
"format": "at-uri",
"description": "The AT-URI of this block record"
},
"resolved": {
"ref": "page.corvus.core#register",
"type": "ref",
"description": "True if the comment is resolved (boolean register, defaults to false)"
},
"reactions": {
"ref": "page.corvus.core#set",
"type": "ref",
"description": "Emoji reactions on the comment (set of #reaction)"
},
"responseTo": {
"refs": [
"#commentBlockReference",
"#commentSequenceReference",
"#commentRegisterReference",
"#commentOrSetReference"
],
"type": "union",
"closed": true,
"description": "The content this comment is a response to"
}
},
"description": "A comment block"
},
"checkbox": {
"type": "object",
"required": [
"blockId"
],
"properties": {
"blockId": {
"type": "string",
"format": "at-uri",
"description": "The AT-URI of this block record"
},
"checked": {
"ref": "page.corvus.core#register",
"type": "ref",
"description": "True if the checkbox is checked (boolean register, defaults to false)"
}
},
"description": "A checkbox block — label content plus a checked flag"
},
"reaction": {
"type": "object",
"required": [
"emoji",
"author"
],
"properties": {
"emoji": {
"type": "string",
"description": "The emoji or short string of the reaction"
},
"author": {
"type": "string",
"format": "did",
"description": "The DID of the reaction author"
}
},
"description": "An emoji reaction with its author"
},
"plainText": {
"type": "object",
"required": [
"blockId"
],
"properties": {
"text": {
"ref": "page.corvus.core#sequence",
"type": "ref",
"description": "The text content as a text sequence"
},
"blockId": {
"type": "string",
"format": "at-uri",
"description": "The AT-URI of this block record"
}
},
"description": "A plain text block"
},
"aspectRatio": {
"type": "object",
"required": [
"width",
"height"
],
"properties": {
"width": {
"type": "integer",
"minimum": 1,
"description": "Width component of the ratio"
},
"height": {
"type": "integer",
"minimum": 1,
"description": "Height component of the ratio"
}
},
"description": "A width:height aspect ratio"
},
"commentBlockReference": {
"type": "object",
"required": [
"blockId"
],
"properties": {
"blockId": {
"type": "string",
"format": "at-uri",
"description": "The AT-URI of this block record"
}
},
"description": "A reference to a comment block"
},
"commentOrSetReference": {
"type": "object",
"required": [
"blockId",
"orSet",
"valueOp"
],
"properties": {
"orSet": {
"type": "string",
"description": "The OR-set of the comment reference"
},
"blockId": {
"type": "string",
"format": "at-uri",
"description": "The AT-URI of this block record"
},
"valueOp": {
"type": "string",
"description": "The operation id of the referenced value"
}
},
"description": "A reference to a comment OR-set"
},
"commentRegisterReference": {
"type": "object",
"required": [
"blockId",
"register",
"valueOp"
],
"properties": {
"blockId": {
"type": "string",
"format": "at-uri",
"description": "The AT-URI of this block record"
},
"valueOp": {
"type": "string",
"description": "The operation id of the referenced value"
},
"register": {
"type": "string",
"description": "The register of the comment reference"
}
},
"description": "A reference to a comment register"
},
"commentSequenceReference": {
"type": "object",
"required": [
"blockId",
"sequence",
"atomStart",
"atomEnd"
],
"properties": {
"atomEnd": {
"type": "string",
"description": "The end atom id of the comment reference (inclusive) - formatted as `operationId.atomIdx`"
},
"blockId": {
"type": "string",
"format": "at-uri",
"description": "The AT-URI of this block record"
},
"sequence": {
"type": "string",
"description": "The sequence of the comment reference"
},
"atomStart": {
"type": "string",
"description": "The start atom id of the comment reference (inclusive) - formatted as `operationId.atomIdx`"
}
},
"description": "A reference to a comment sequence"
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1,
"description": "Content block variants — atomic content types that compose into documents and database cells. Each sub-def is a block content shape selected by `page.corvus.block.blockType`."
}