social.coves.community.post

coves.social

Documentation

A post in a Coves community. Posts live in community repositories and persist independently of the author.

main record

A post in a Coves community. Posts live in community repositories and persist independently of the author.

Record Key tid Timestamp-based ID

Properties

author string did Required

DID of the user who created this post

bridgedStats ref #bridgedStats Optional

Bridge-asserted aggregate of origin-platform votes for federated/bridged content. Set by the bridge that materialized this record; absent for natively-authored posts.

community string did Required

DID of the community this was posted to

content string Optional

Post content - supports rich text via facets

maxLength: 100000 bytesmaxGraphemes: 10000 graphemes
createdAt string datetime Required

Timestamp of post creation

crosspostChain array of ref com.atproto.repo.strongRef Optional

Full chain of crossposts with version pinning. First element is original, last is immediate parent.

maxLength: 25 items
facets array of ref social.coves.richtext.facet Optional

Annotations for rich text (mentions, links, formatting, block structure)

maxLength: 200 items
langs array of string language Optional

Languages used in the post content (ISO 639-1)

maxLength: 3 items
tags array of string Optional

User-applied topic tags

maxLength: 8 items
title string Optional

Post title (optional for media-only posts)

maxLength: 3000 bytesmaxGraphemes: 300 graphemes
View raw schema
{
  "key": "tid",
  "type": "record",
  "record": {
    "type": "object",
    "required": [
      "community",
      "author",
      "createdAt"
    ],
    "properties": {
      "tags": {
        "type": "array",
        "items": {
          "type": "string",
          "maxLength": 640,
          "maxGraphemes": 64
        },
        "maxLength": 8,
        "description": "User-applied topic tags"
      },
      "embed": {
        "refs": [
          "social.coves.embed.images",
          "social.coves.embed.video",
          "social.coves.embed.external",
          "social.coves.embed.post"
        ],
        "type": "union",
        "description": "Embedded media, external links, or quoted posts"
      },
      "langs": {
        "type": "array",
        "items": {
          "type": "string",
          "format": "language"
        },
        "maxLength": 3,
        "description": "Languages used in the post content (ISO 639-1)"
      },
      "title": {
        "type": "string",
        "maxLength": 3000,
        "description": "Post title (optional for media-only posts)",
        "maxGraphemes": 300
      },
      "author": {
        "type": "string",
        "format": "did",
        "description": "DID of the user who created this post"
      },
      "facets": {
        "type": "array",
        "items": {
          "ref": "social.coves.richtext.facet",
          "type": "ref"
        },
        "maxLength": 200,
        "description": "Annotations for rich text (mentions, links, formatting, block structure)"
      },
      "labels": {
        "ref": "com.atproto.label.defs#selfLabels",
        "type": "ref",
        "description": "Self-applied content labels (NSFW, spoilers, etc.)"
      },
      "content": {
        "type": "string",
        "maxLength": 100000,
        "description": "Post content - supports rich text via facets",
        "maxGraphemes": 10000
      },
      "community": {
        "type": "string",
        "format": "did",
        "description": "DID of the community this was posted to"
      },
      "createdAt": {
        "type": "string",
        "format": "datetime",
        "description": "Timestamp of post creation"
      },
      "crosspostOf": {
        "ref": "com.atproto.repo.strongRef",
        "type": "ref",
        "description": "If this is a crosspost, strong reference to the immediate parent post"
      },
      "bridgedStats": {
        "ref": "#bridgedStats",
        "type": "ref",
        "description": "Bridge-asserted aggregate of origin-platform votes for federated/bridged content. Set by the bridge that materialized this record; absent for natively-authored posts."
      },
      "crosspostChain": {
        "type": "array",
        "items": {
          "ref": "com.atproto.repo.strongRef",
          "type": "ref"
        },
        "maxLength": 25,
        "description": "Full chain of crossposts with version pinning. First element is original, last is immediate parent."
      }
    }
  },
  "description": "A post in a Coves community. Posts live in community repositories and persist independently of the author."
}
bridgedStats object

Aggregate vote counts asserted by the bridge for content federated from an origin platform (e.g. Lemmy). These supplement, and are kept separate from, native atproto votes.

Properties

asOf string datetime Required

Timestamp the origin-platform counts were sampled; used to discard stale updates

downvotes integer Required

Number of downvotes on the origin platform as of asOf

minimum: 0
upvotes integer Required

Number of upvotes on the origin platform as of asOf

minimum: 0
View raw schema
{
  "type": "object",
  "required": [
    "upvotes",
    "downvotes",
    "asOf"
  ],
  "properties": {
    "asOf": {
      "type": "string",
      "format": "datetime",
      "description": "Timestamp the origin-platform counts were sampled; used to discard stale updates"
    },
    "upvotes": {
      "type": "integer",
      "minimum": 0,
      "description": "Number of upvotes on the origin platform as of asOf"
    },
    "downvotes": {
      "type": "integer",
      "minimum": 0,
      "description": "Number of downvotes on the origin platform as of asOf"
    }
  },
  "description": "Aggregate vote counts asserted by the bridge for content federated from an origin platform (e.g. Lemmy). These supplement, and are kept separate from, native atproto votes."
}

Lexicon Garden

@