{
	"lexicon": 1,
	"id": "app.bsky.feed.defs",
	"defs": {
		"postView": {
			"type": "object",
			"required": ["uri", "cid", "author", "record", "indexedAt"],
			"properties": {
				"uri": { "type": "string", "format": "at-uri" },
				"cid": { "type": "string", "format": "cid" },
				"author": {
					"type": "ref",
					"ref": "app.bsky.actor.defs#profileViewBasic"
				},
				"record": { "type": "unknown" },
				"embed": {
					"type": "union",
					"refs": [
						"app.bsky.embed.images#view",
						"app.bsky.embed.video#view",
						"app.bsky.embed.external#view",
						"app.bsky.embed.record#view",
						"app.bsky.embed.recordWithMedia#view"
					]
				},
				"replyCount": { "type": "integer" },
				"repostCount": { "type": "integer" },
				"likeCount": { "type": "integer" },
				"quoteCount": { "type": "integer" },
				"indexedAt": { "type": "string", "format": "datetime" },
				"viewer": { "type": "ref", "ref": "#viewerState" },
				"labels": {
					"type": "array",
					"items": { "type": "ref", "ref": "com.atproto.label.defs#label" }
				},
				"threadgate": { "type": "ref", "ref": "#threadgateView" }
			}
		},
		"viewerState": {
			"type": "object",
			"description": "Metadata about the requesting account's relationship with the subject content. Only has meaningful content for authed requests.",
			"properties": {
				"repost": { "type": "string", "format": "at-uri" },
				"like": { "type": "string", "format": "at-uri" },
				"threadMuted": { "type": "boolean" },
				"replyDisabled": { "type": "boolean" },
				"embeddingDisabled": { "type": "boolean" },
				"pinned": { "type": "boolean" }
			}
		},
		"feedViewPost": {
			"type": "object",
			"required": ["post"],
			"properties": {
				"post": { "type": "ref", "ref": "#postView" },
				"reply": { "type": "ref", "ref": "#replyRef" },
				"reason": { "type": "union", "refs": ["#reasonRepost", "#reasonPin"] },
				"feedContext": {
					"type": "string",
					"description": "Context provided by feed generator that may be passed back alongside interactions.",
					"maxLength": 2000
				}
			}
		},
		"replyRef": {
			"type": "object",
			"required": ["root", "parent"],
			"properties": {
				"root": {
					"type": "union",
					"refs": ["#postView", "#notFoundPost", "#blockedPost"]
				},
				"parent": {
					"type": "union",
					"refs": ["#postView", "#notFoundPost", "#blockedPost"]
				},
				"grandparentAuthor": {
					"type": "ref",
					"ref": "app.bsky.actor.defs#profileViewBasic",
					"description": "When parent is a reply to another post, this is the author of that post."
				}
			}
		},
		"reasonRepost": {
			"type": "object",
			"required": ["by", "indexedAt"],
			"properties": {
				"by": { "type": "ref", "ref": "app.bsky.actor.defs#profileViewBasic" },
				"indexedAt": { "type": "string", "format": "datetime" }
			}
		},
		"reasonPin": {
			"type": "object",
			"properties": {}
		},
		"threadViewPost": {
			"type": "object",
			"required": ["post"],
			"properties": {
				"post": { "type": "ref", "ref": "#postView" },
				"parent": {
					"type": "union",
					"refs": ["#threadViewPost", "#notFoundPost", "#blockedPost"]
				},
				"replies": {
					"type": "array",
					"items": {
						"type": "union",
						"refs": ["#threadViewPost", "#notFoundPost", "#blockedPost"]
					}
				}
			}
		},
		"notFoundPost": {
			"type": "object",
			"required": ["uri", "notFound"],
			"properties": {
				"uri": { "type": "string", "format": "at-uri" },
				"notFound": { "type": "boolean", "const": true }
			}
		},
		"blockedPost": {
			"type": "object",
			"required": ["uri", "blocked", "author"],
			"properties": {
				"uri": { "type": "string", "format": "at-uri" },
				"blocked": { "type": "boolean", "const": true },
				"author": { "type": "ref", "ref": "#blockedAuthor" }
			}
		},
		"blockedAuthor": {
			"type": "object",
			"required": ["did"],
			"properties": {
				"did": { "type": "string", "format": "did" },
				"viewer": { "type": "ref", "ref": "app.bsky.actor.defs#viewerState" }
			}
		},
		"generatorView": {
			"type": "object",
			"required": ["uri", "cid", "did", "creator", "displayName", "indexedAt"],
			"properties": {
				"uri": { "type": "string", "format": "at-uri" },
				"cid": { "type": "string", "format": "cid" },
				"did": { "type": "string", "format": "did" },
				"creator": { "type": "ref", "ref": "app.bsky.actor.defs#profileView" },
				"displayName": { "type": "string" },
				"description": {
					"type": "string",
					"maxGraphemes": 300,
					"maxLength": 3000
				},
				"descriptionFacets": {
					"type": "array",
					"items": { "type": "ref", "ref": "app.bsky.richtext.facet" }
				},
				"avatar": { "type": "string", "format": "uri" },
				"likeCount": { "type": "integer", "minimum": 0 },
				"acceptsInteractions": { "type": "boolean" },
				"labels": {
					"type": "array",
					"items": { "type": "ref", "ref": "com.atproto.label.defs#label" }
				},
				"viewer": { "type": "ref", "ref": "#generatorViewerState" },
				"contentMode": {
					"type": "string",
					"knownValues": ["app.bsky.feed.defs#contentModeUnspecified", "app.bsky.feed.defs#contentModeVideo"]
				},
				"indexedAt": { "type": "string", "format": "datetime" }
			}
		},
		"generatorViewerState": {
			"type": "object",
			"properties": {
				"like": { "type": "string", "format": "at-uri" }
			}
		},
		"skeletonFeedPost": {
			"type": "object",
			"required": ["post"],
			"properties": {
				"post": { "type": "string", "format": "at-uri" },
				"reason": {
					"type": "union",
					"refs": ["#skeletonReasonRepost", "#skeletonReasonPin"]
				},
				"feedContext": {
					"type": "string",
					"description": "Context that will be passed through to client and may be passed to feed generator back alongside interactions.",
					"maxLength": 2000
				}
			}
		},
		"skeletonReasonRepost": {
			"type": "object",
			"required": ["repost"],
			"properties": {
				"repost": { "type": "string", "format": "at-uri" }
			}
		},
		"skeletonReasonPin": {
			"type": "object",
			"properties": {}
		},
		"threadgateView": {
			"type": "object",
			"properties": {
				"uri": { "type": "string", "format": "at-uri" },
				"cid": { "type": "string", "format": "cid" },
				"record": { "type": "unknown" },
				"lists": {
					"type": "array",
					"items": { "type": "ref", "ref": "app.bsky.graph.defs#listViewBasic" }
				}
			}
		},
		"interaction": {
			"type": "object",
			"properties": {
				"item": { "type": "string", "format": "at-uri" },
				"event": {
					"type": "string",
					"knownValues": [
						"app.bsky.feed.defs#requestLess",
						"app.bsky.feed.defs#requestMore",
						"app.bsky.feed.defs#clickthroughItem",
						"app.bsky.feed.defs#clickthroughAuthor",
						"app.bsky.feed.defs#clickthroughReposter",
						"app.bsky.feed.defs#clickthroughEmbed",
						"app.bsky.feed.defs#interactionSeen",
						"app.bsky.feed.defs#interactionLike",
						"app.bsky.feed.defs#interactionRepost",
						"app.bsky.feed.defs#interactionReply",
						"app.bsky.feed.defs#interactionQuote",
						"app.bsky.feed.defs#interactionShare"
					]
				},
				"feedContext": {
					"type": "string",
					"description": "Context on a feed item that was originally supplied by the feed generator on getFeedSkeleton.",
					"maxLength": 2000
				}
			}
		},
		"requestLess": {
			"type": "token",
			"description": "Request that less content like the given feed item be shown in the feed"
		},
		"requestMore": {
			"type": "token",
			"description": "Request that more content like the given feed item be shown in the feed"
		},
		"clickthroughItem": {
			"type": "token",
			"description": "User clicked through to the feed item"
		},
		"clickthroughAuthor": {
			"type": "token",
			"description": "User clicked through to the author of the feed item"
		},
		"clickthroughReposter": {
			"type": "token",
			"description": "User clicked through to the reposter of the feed item"
		},
		"clickthroughEmbed": {
			"type": "token",
			"description": "User clicked through to the embedded content of the feed item"
		},
		"contentModeUnspecified": {
			"type": "token",
			"description": "Declares the feed generator returns any types of posts."
		},
		"contentModeVideo": {
			"type": "token",
			"description": "Declares the feed generator returns posts containing app.bsky.embed.video embeds."
		},
		"interactionSeen": {
			"type": "token",
			"description": "Feed item was seen by user"
		},
		"interactionLike": {
			"type": "token",
			"description": "User liked the feed item"
		},
		"interactionRepost": {
			"type": "token",
			"description": "User reposted the feed item"
		},
		"interactionReply": {
			"type": "token",
			"description": "User replied to the feed item"
		},
		"interactionQuote": {
			"type": "token",
			"description": "User quoted the feed item"
		},
		"interactionShare": {
			"type": "token",
			"description": "User shared the feed item"
		}
	}
}
