# social.smallbury.feed.reaction

> Published by [lexicon.pds.smallbury.social](https://lexicon.garden/identity/did:plc:wnagcp6h73nxmvmwid2xxukx)

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:wnagcp6h73nxmvmwid2xxukx/social.smallbury.feed.reaction)
- [Documentation](https://lexicon.garden/lexicon/did:plc:wnagcp6h73nxmvmwid2xxukx/social.smallbury.feed.reaction/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:wnagcp6h73nxmvmwid2xxukx/social.smallbury.feed.reaction/examples)

## Definitions

### `social.smallbury.feed.reaction`

**Type**: `record`

Emoji reaction by an actor on a post or comment. Use one record per emoji (stacking supported). Public targets store cleartext emoji. Reactions to encrypted targets store ciphertext plus keyEpochId.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `emoji` | `string` | No | Cleartext emoji reaction for public targets. Omit when ciphertext is set. |
| `subject` | `ref` → `com.atproto.repo.strongRef` | Yes | AT-URI/CID of the target post or comment. |
| `createdAt` | `string` (datetime) | Yes | Client-declared timestamp when this reaction record was created. |
| `ciphertext` | `bytes` | No | Encrypted reaction payload for private targets. Omit for public targets. |
| `keyEpochId` | `string` | No | Trust key epoch used for encrypted reactions. Required when ciphertext is set. |

## Raw Schema

```json
{
  "id": "social.smallbury.feed.reaction",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "subject",
          "createdAt"
        ],
        "properties": {
          "emoji": {
            "type": "string",
            "maxLength": 32,
            "description": "Cleartext emoji reaction for public targets. Omit when ciphertext is set.",
            "maxGraphemes": 1
          },
          "subject": {
            "ref": "com.atproto.repo.strongRef",
            "type": "ref",
            "description": "AT-URI/CID of the target post or comment."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "Client-declared timestamp when this reaction record was created."
          },
          "ciphertext": {
            "type": "bytes",
            "maxLength": 4096,
            "description": "Encrypted reaction payload for private targets. Omit for public targets."
          },
          "keyEpochId": {
            "type": "string",
            "maxLength": 64,
            "minLength": 1,
            "description": "Trust key epoch used for encrypted reactions. Required when ciphertext is set."
          }
        }
      },
      "description": "Emoji reaction by an actor on a post or comment. Use one record per emoji (stacking supported). Public targets store cleartext emoji. Reactions to encrypted targets store ciphertext plus keyEpochId."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
