{
	"lexicon": 1,
	"id": "app.bsky.feed.post",
	"defs": {
		"main": {
			"type": "record",
			"description": "Record containing a Bluesky post.",
			"key": "tid",
			"record": {
				"type": "object",
				"required": ["text", "createdAt"],
				"properties": {
					"text": {
						"type": "string",
						"maxLength": 3000,
						"maxGraphemes": 300,
						"description": "The primary post content. May be an empty string, if there are embeds."
					},
					"entities": {
						"type": "array",
						"description": "DEPRECATED: replaced by app.bsky.richtext.facet.",
						"items": { "type": "ref", "ref": "#entity" }
					},
					"facets": {
						"type": "array",
						"description": "Annotations of text (mentions, URLs, hashtags, etc)",
						"items": { "type": "ref", "ref": "app.bsky.richtext.facet" }
					},
					"reply": { "type": "ref", "ref": "#replyRef" },
					"embed": {
						"type": "union",
						"refs": [
							"app.bsky.embed.images",
							"app.bsky.embed.video",
							"app.bsky.embed.external",
							"app.bsky.embed.record",
							"app.bsky.embed.recordWithMedia"
						]
					},
					"langs": {
						"type": "array",
						"description": "Indicates human language of post primary text content.",
						"maxLength": 3,
						"items": { "type": "string", "format": "language" }
					},
					"labels": {
						"type": "union",
						"description": "Self-label values for this post. Effectively content warnings.",
						"refs": ["com.atproto.label.defs#selfLabels"]
					},
					"tags": {
						"type": "array",
						"description": "Additional hashtags, in addition to any included in post text and facets.",
						"maxLength": 8,
						"items": { "type": "string", "maxLength": 640, "maxGraphemes": 64 }
					},
					"createdAt": {
						"type": "string",
						"format": "datetime",
						"description": "Client-declared timestamp when this post was originally created."
					}
				}
			}
		},
		"replyRef": {
			"type": "object",
			"required": ["root", "parent"],
			"properties": {
				"root": { "type": "ref", "ref": "com.atproto.repo.strongRef" },
				"parent": { "type": "ref", "ref": "com.atproto.repo.strongRef" }
			}
		},
		"entity": {
			"type": "object",
			"description": "Deprecated: use facets instead.",
			"required": ["index", "type", "value"],
			"properties": {
				"index": { "type": "ref", "ref": "#textSlice" },
				"type": {
					"type": "string",
					"description": "Expected values are 'mention' and 'link'."
				},
				"value": { "type": "string" }
			}
		},
		"textSlice": {
			"type": "object",
			"description": "Deprecated. Use app.bsky.richtext instead -- A text segment. Start is inclusive, end is exclusive. Indices are for utf16-encoded strings.",
			"required": ["start", "end"],
			"properties": {
				"start": { "type": "integer", "minimum": 0 },
				"end": { "type": "integer", "minimum": 0 }
			}
		}
	}
}
