town.delve.feed.defs

delve.town

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

Validate Record

Validate a record against town.delve.feed.defs

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:qzqct2rrq4u2gmy5g3mjxske
CID
bafyreifzoaqhrywq5jdqxam767qpcmggqdxjq6kdlyqwesyvkxj3n26kam
Indexed At
2026-09-11 20:04 UTC
AT-URI
at://did:plc:qzqct2rrq4u2gmy5g3mjxske/com.atproto.lexicon.schema/town.delve.feed.defs

Referenced Schemas (12)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

Lexicon Garden

@