# com.suibari.nagi.reaction

> Published by [suibari.com](https://lexicon.garden/identity/did:plc:uixgxpiqf4i63p6rgpu7ytmx)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:uixgxpiqf4i63p6rgpu7ytmx/com.suibari.nagi.reaction)
- [Documentation](https://lexicon.garden/lexicon/did:plc:uixgxpiqf4i63p6rgpu7ytmx/com.suibari.nagi.reaction/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:uixgxpiqf4i63p6rgpu7ytmx/com.suibari.nagi.reaction/examples)

## Definitions

### `com.suibari.nagi.reaction`

**Type**: `record`

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `emoji` | `string` | Yes | A single Unicode emoji, or the colon-wrapped alias of the referenced Bluemoji (fallback text). |
| `subject` | `ref` → `com.atproto.repo.strongRef` | Yes |  |
| `bluemoji` | `ref` → `#bluemojiRef` | No |  |
| `createdAt` | `string` (datetime) | Yes |  |

### `com.suibari.nagi.reaction#bluemojiRef`

**Type**: `object`

Reference to a blue.moji.collection.item record. Formats are intentionally not carried here: the AppView resolves them from its own index of the source item, which is the trust anchor.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `alt` | `string` | No |  |
| `cid` | `string` (cid) | Yes |  |
| `uri` | `string` (at-uri) | Yes |  |
| `name` | `string` | Yes | Colon-wrapped alias of the Bluemoji, e.g. :blobcat:. Must equal the record's emoji field. |

## Raw Schema

```json
{
  "id": "com.suibari.nagi.reaction",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "subject",
          "emoji",
          "createdAt"
        ],
        "properties": {
          "emoji": {
            "type": "string",
            "maxLength": 64,
            "description": "A single Unicode emoji, or the colon-wrapped alias of the referenced Bluemoji (fallback text).",
            "maxGraphemes": 34
          },
          "subject": {
            "ref": "com.atproto.repo.strongRef",
            "type": "ref"
          },
          "bluemoji": {
            "ref": "#bluemojiRef",
            "type": "ref"
          },
          "createdAt": {
            "type": "string",
            "format": "datetime"
          }
        }
      }
    },
    "bluemojiRef": {
      "type": "object",
      "required": [
        "uri",
        "cid",
        "name"
      ],
      "properties": {
        "alt": {
          "type": "string",
          "maxLength": 1000,
          "maxGraphemes": 100
        },
        "cid": {
          "type": "string",
          "format": "cid"
        },
        "uri": {
          "type": "string",
          "format": "at-uri"
        },
        "name": {
          "type": "string",
          "maxLength": 64,
          "description": "Colon-wrapped alias of the Bluemoji, e.g. :blobcat:. Must equal the record's emoji field."
        }
      },
      "description": "Reference to a blue.moji.collection.item record. Formats are intentionally not carried here: the AppView resolves them from its own index of the source item, which is the trust anchor."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
