{
"id": "art.cllctv.block.text",
"defs": {
"tag": {
"type": "object",
"required": [
"tag"
],
"properties": {
"tag": {
"type": "string",
"maxLength": 640,
"maxGraphemes": 64
}
},
"description": "Facet feature for a hashtag. The text usually includes a '#' prefix, but the facet reference should not (except in the case of 'double hash tags')."
},
"bold": {
"type": "object",
"properties": {},
"description": "Facet feature for bold text"
},
"link": {
"type": "object",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"format": "uri"
}
},
"description": "Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL."
},
"main": {
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "The plain text content"
},
"facets": {
"type": "array",
"items": {
"ref": "#facet",
"type": "ref"
},
"description": "Facets for text formatting and features"
},
"format": {
"type": "string",
"knownValues": [
"left",
"start",
"center",
"right",
"end",
"justify"
]
},
"indent": {
"type": "integer",
"minimum": 0
},
"direction": {
"type": "string",
"knownValues": [
"ltr",
"rtl"
]
}
}
},
"facet": {
"type": "object",
"required": [
"index",
"features"
],
"properties": {
"index": {
"ref": "#byteSlice",
"type": "ref"
},
"features": {
"type": "array",
"items": {
"refs": [
"#mention",
"#link",
"#tag",
"#bold",
"#italic",
"#strikethrough",
"#underline",
"#subscript",
"#superscript",
"#highlight",
"#lowercase",
"#uppercase",
"#capitalize",
"#lineBreak"
],
"type": "union"
}
}
}
},
"italic": {
"type": "object",
"properties": {},
"description": "Facet feature for italic text"
},
"mention": {
"type": "object",
"required": [
"did"
],
"properties": {
"did": {
"type": "string",
"format": "did"
}
},
"description": "Facet feature for mention of another account. The text is usually a handle, including a '@' prefix, but the facet reference is a DID."
},
"byteSlice": {
"type": "object",
"required": [
"byteStart",
"byteEnd"
],
"properties": {
"byteEnd": {
"type": "integer",
"minimum": 0
},
"byteStart": {
"type": "integer",
"minimum": 0
}
},
"description": "Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text."
},
"highlight": {
"type": "object",
"properties": {},
"description": "Facet feature for highlighted text"
},
"lineBreak": {
"type": "object",
"properties": {}
},
"lowercase": {
"type": "object",
"properties": {},
"description": "Facet feature for lowercase markup"
},
"subscript": {
"type": "object",
"properties": {},
"description": "Facet feature for subscript markup"
},
"underline": {
"type": "object",
"properties": {},
"description": "Facet feature for underline markup"
},
"uppercase": {
"type": "object",
"properties": {},
"description": "Facet feature for uppercase markup"
},
"capitalize": {
"type": "object",
"properties": {},
"description": "Facet feature for capitalize markup"
},
"superscript": {
"type": "object",
"properties": {},
"description": "Facet feature for superscript markup"
},
"strikethrough": {
"type": "object",
"properties": {},
"description": "Facet feature for strikethrough markup"
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1,
"description": "A text block containing plain text content with optional formatting via facets."
}