changedOutput schema / properties / posts / items / properties / embed / description
Previous value: -"Media or link embed attached to this post. type: \"images\" | \"external\" | \"record\" | \"video\" | \"unknown\". images: array of { url, alt } — also carries app.bsky.embed.gallery embeds. external: { uri, title, description }. record: { uri, cid, text?, authorHandle?, embeds?, media?, omittedEmbeds?, recordKind? } — embeds is the quoted post's own attachments; media is the image/video/link attached alongside the quote by the post doing the quoting, on a recordWithMedia embed. Both are embeds of these same shapes. omittedEmbeds counts attachments past the nesting this server follows — fetch the quote uri as its own post to read them. recordKind is absent for an ordinary quoted post and otherwise names what stood in for one: \"notFound\" | \"blocked\" | \"detached\" (the quote exists but cannot be read) or \"generator\" | \"list\" | \"starterPack\" | \"labeler\" | \"unknown\" (the quoted record is not a post). A \"generator\" quote is a feed: pass its uri to bsky_get_feed to read it. When recordKind is set, text and authorHandle are absent because that variant does not carry them. video: { playlist?, thumbnail?, presentation? }. unknown: { raw } — raw is the upstream $type this server has no mapping for."New value: +"Media or link embed attached to this post. type: \"images\" | \"external\" | \"record\" | \"video\" | \"unknown\". images: array of { url, alt } — also carries app.bsky.embed.gallery embeds. external: { uri, title, description }. record: { uri, cid, text?, facets?, authorHandle?, embeds?, media?, omittedEmbeds?, recordKind? } — facets retain UTF-8 byte ranges and link URI, mention DID, or tag features on the original text; embeds is the quoted post's own attachments; media is the image/video/link attached alongside the quote by the post doing the quoting, on a recordWithMedia embed. Both are embeds of these same shapes. omittedEmbeds counts attachments past the nesting this server follows — fetch the quote uri as its own post to read them. recordKind is absent for an ordinary quoted post and otherwise names what stood in for one: \"notFound\" | \"blocked\" | \"detached\" (the quote exists but cannot be read) or \"generator\" | \"list\" | \"starterPack\" | \"labeler\" | \"unknown\" (the quoted record is not a post). A \"generator\" quote is a feed: pass its uri to bsky_get_feed to read it. When recordKind is set, text and authorHandle are absent because that variant does not carry them. video: { playlist?, thumbnail?, presentation? }. unknown: { raw } — raw is the upstream $type this server has no mapping for."
addedOutput schema / properties / posts / items / properties / facets
Added value: +{
+ "description": "Rich-text facets on the unchanged text, with UTF-8 byte ranges and full link, mention, or tag values.",
+ "items": {
+ "additionalProperties": {},
+ "description": "One rich-text annotation on the original post text.",
+ "properties": {
+ "features": {
+ "description": "Features applied to this range, in upstream order.",
+ "items": {
+ "anyOf": [
+ {
+ "additionalProperties": {},
+ "description": "Link destination.",
+ "properties": {
+ "$type": {
+ "const": "app.bsky.richtext.facet#link",
+ "description": "Link feature.",
+ "type": "string"
+ },
+ "uri": {
+ "description": "Complete destination URI, independent of abbreviated display text.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "$type",
+ "uri"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": {},
+ "description": "Mention identity.",
+ "properties": {
+ "$type": {
+ "const": "app.bsky.richtext.facet#mention",
+ "description": "Mention feature.",
+ "type": "string"
+ },
+ "did": {
+ "description": "Mentioned account DID.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "$type",
+ "did"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": {},
+ "description": "Tag value.",
+ "properties": {
+ "$type": {
+ "const": "app.bsky.richtext.facet#tag",
+ "description": "Tag feature.",
+ "type": "string"
+ },
+ "tag": {
+ "description": "Tag text without the leading hash.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "$type",
+ "tag"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": {},
+ "description": "An open-union feature whose complete fields are retained as literal metadata.",
+ "properties": {
+ "$type": {
+ "description": "An upstream feature type other than the known link, mention, or tag types.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "$type"
+ ],
+ "type": "object"
+ }
+ ],
+ "description": "A known link, mention, or tag feature, or an upstream extension variant."
+ },
+ "type": "array"
+ },
+ "index": {
+ "additionalProperties": {},
+ "description": "UTF-8 byte range; these are not JavaScript string indices. Additional upstream fields are retained.",
+ "properties": {
+ "byteEnd": {
+ "description": "Exclusive UTF-8 byte offset in the original text.",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "byteStart": {
+ "description": "Inclusive UTF-8 byte offset in the original text.",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "byteStart",
+ "byteEnd"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "index",
+ "features"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+}