# social.coves.community.post

> Published by [coves.social](https://lexicon.garden/identity/did:web:coves.social)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:web:coves.social/social.coves.community.post)
- [Documentation](https://lexicon.garden/lexicon/did:web:coves.social/social.coves.community.post/docs)
- [Examples](https://lexicon.garden/lexicon/did:web:coves.social/social.coves.community.post/examples)

## Definitions

### `social.coves.community.post`

**Type**: `record`

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

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `tags` | `array` | No | User-applied topic tags |
| `embed` | `union` | No | Embedded media, external links, or quoted posts |
| `langs` | `array` | No | Languages used in the post content (ISO 639-1) |
| `title` | `string` | No | Post title (optional for media-only posts) |
| `author` | `string` (did) | Yes | DID of the user who created this post |
| `facets` | `array` | No | Annotations for rich text (mentions, links, formatting, block structure) |
| `labels` | `ref` → `com.atproto.label.defs#selfLabels` | No | Self-applied content labels (NSFW, spoilers, etc.) |
| `content` | `string` | No | Post content - supports rich text via facets |
| `community` | `string` (did) | Yes | DID of the community this was posted to |
| `createdAt` | `string` (datetime) | Yes | Timestamp of post creation |
| `crosspostOf` | `ref` → `com.atproto.repo.strongRef` | No | If this is a crosspost, strong reference to the immediate parent post |
| `bridgedStats` | `ref` → `#bridgedStats` | No | 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` | `array` | No | Full chain of crossposts with version pinning. First element is original, last is immediate parent. |

### `social.coves.community.post#bridgedStats`

**Type**: `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.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `asOf` | `string` (datetime) | Yes | Timestamp the origin-platform counts were sampled; used to discard stale updates |
| `upvotes` | `integer` | Yes | Number of upvotes on the origin platform as of asOf |
| `downvotes` | `integer` | Yes | Number of downvotes on the origin platform as of asOf |

## Raw Schema

```json
{
  "id": "social.coves.community.post",
  "defs": {
    "main": {
      "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": {
      "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."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
