# social.colibri.beta.emoji.defs

> Published by [colibri.social](https://lexicon.garden/identity/did:plc:mprdjqjluoswa7awzggaggj3)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:mprdjqjluoswa7awzggaggj3/social.colibri.beta.emoji.defs)
- [Documentation](https://lexicon.garden/lexicon/did:plc:mprdjqjluoswa7awzggaggj3/social.colibri.beta.emoji.defs/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:mprdjqjluoswa7awzggaggj3/social.colibri.beta.emoji.defs/examples)

## Definitions

### `social.colibri.beta.emoji.defs#catalogView`

**Type**: `object`

Every custom emoji and pack in one repo.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `emojis` | `array` | Yes | Every emoji in the repo. |
| `owner` | `string` (did) | Yes | The repo the catalog belongs to. |
| `packs` | `array` | Yes | Every pack in the repo. |

### `social.colibri.beta.emoji.defs#emojiImage`

**Type**: `object`

One stored rendition of an emoji.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `animated` | `boolean` | Yes | Whether the format is animated. |
| `cid` | `string` (cid) | Yes | The blob's CID in the owner's repo. |
| `format` | `string` | Yes | The image format. |
| `mimeType` | `string` | No | The blob's MIME type. |
| `pixels` | `integer` | No | The rendition's longest edge in pixels, when the provider fixes one. |
| `size` | `integer` | No | The blob's size in bytes. |

### `social.colibri.beta.emoji.defs#emojiOwner`

**Type**: `object`

The user or community that holds an emoji or pack.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `avatar` | `string` (uri) | No | The user's avatar or the community's icon. |
| `did` | `string` (did) | Yes | The owner. |
| `displayName` | `string` | No | The user's display name or the community's name. |
| `handle` | `string` (handle) | No | The owner's handle. |
| `kind` | `string` | Yes | Whether the owner is a user or a community. |

### `social.colibri.beta.emoji.defs#emojiView`

**Type**: `object`

A custom emoji, normalised from its provider's record.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `adultOnly` | `boolean` | No | Whether the owner marked the emoji as adult content. |
| `alt` | `string` | No | Alt text for the image. |
| `cid` | `string` (cid) | No | The record's CID. |
| `createdAt` | `string` (datetime) | Yes | When the record was created. |
| `fallback` | `string` | No | The text shown where the image cannot render. |
| `images` | `array` | Yes | Every rendition the record carries. |
| `name` | `string` | Yes | The name without colons. |
| `owner` | `string` (did) | Yes | The repo that holds the record and its blobs. |
| `provider` | `string` | Yes | The emoji provider whose lexicon the record uses. |
| `uri` | `string` (at-uri) | Yes | The emoji's record URI. |

### `social.colibri.beta.emoji.defs#followView`

**Type**: `object`

A pack or single emoji the user follows, resolved against the owner's current catalog.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `createdAt` | `string` (datetime) | Yes | When the user started following. |
| `emojis` | `array` | Yes | The pack's current emoji in pack order, or the single followed emoji. Empty unless state is available. |
| `kind` | `string` | Yes | Whether the subject is a pack or a single emoji. |
| `owner` | `ref` → `#emojiOwner` | Yes | Who holds the subject. |
| `pack` | `ref` → `#packView` | No | The pack, when kind is pack and state is available. |
| `state` | `string` | Yes | available when the subject resolves. missing when the owner deleted it. unreachable when the owner's repo cannot be read, for example a deactivated or taken down account. |
| `subject` | `string` (at-uri) | Yes | The followed pack or emoji. |
| `uri` | `string` (at-uri) | Yes | The follow record. |

### `social.colibri.beta.emoji.defs#libraryView`

**Type**: `object`

A user's emoji library.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `follows` | `array` | Yes | Everything the user follows, oldest follow first. |
| `own` | `ref` → `#catalogView` | Yes | The emoji and packs in the user's own repo. |

### `social.colibri.beta.emoji.defs#packView`

**Type**: `object`

A named group of custom emoji, normalised from its provider's records.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `createdAt` | `string` (datetime) | Yes | When the record was created. |
| `description` | `string` | No | The pack's description. |
| `emojis` | `array` | Yes | The URIs of the emoji in the pack, in the order they were added. Only emoji present in the catalog are listed. |
| `name` | `string` | Yes | The pack's name. |
| `owner` | `string` (did) | Yes | The repo that holds the pack. |
| `provider` | `string` | Yes | The emoji provider whose lexicon the record uses. |
| `uri` | `string` (at-uri) | Yes | The pack's record URI. |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "catalogView": {
      "description": "Every custom emoji and pack in one repo.",
      "properties": {
        "emojis": {
          "description": "Every emoji in the repo.",
          "items": {
            "ref": "#emojiView",
            "type": "ref"
          },
          "type": "array"
        },
        "owner": {
          "description": "The repo the catalog belongs to.",
          "format": "did",
          "type": "string"
        },
        "packs": {
          "description": "Every pack in the repo.",
          "items": {
            "ref": "#packView",
            "type": "ref"
          },
          "type": "array"
        }
      },
      "required": [
        "owner",
        "emojis",
        "packs"
      ],
      "type": "object"
    },
    "emojiImage": {
      "description": "One stored rendition of an emoji.",
      "properties": {
        "animated": {
          "description": "Whether the format is animated.",
          "type": "boolean"
        },
        "cid": {
          "description": "The blob's CID in the owner's repo.",
          "format": "cid",
          "type": "string"
        },
        "format": {
          "description": "The image format.",
          "knownValues": [
            "png",
            "webp",
            "gif",
            "apng",
            "lottie",
            "other"
          ],
          "type": "string"
        },
        "mimeType": {
          "description": "The blob's MIME type.",
          "type": "string"
        },
        "pixels": {
          "description": "The rendition's longest edge in pixels, when the provider fixes one.",
          "minimum": 1,
          "type": "integer"
        },
        "size": {
          "description": "The blob's size in bytes.",
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "cid",
        "format",
        "animated"
      ],
      "type": "object"
    },
    "emojiOwner": {
      "description": "The user or community that holds an emoji or pack.",
      "properties": {
        "avatar": {
          "description": "The user's avatar or the community's icon.",
          "format": "uri",
          "type": "string"
        },
        "did": {
          "description": "The owner.",
          "format": "did",
          "type": "string"
        },
        "displayName": {
          "description": "The user's display name or the community's name.",
          "type": "string"
        },
        "handle": {
          "description": "The owner's handle.",
          "format": "handle",
          "type": "string"
        },
        "kind": {
          "description": "Whether the owner is a user or a community.",
          "knownValues": [
            "user",
            "community"
          ],
          "type": "string"
        }
      },
      "required": [
        "did",
        "kind"
      ],
      "type": "object"
    },
    "emojiView": {
      "description": "A custom emoji, normalised from its provider's record.",
      "properties": {
        "adultOnly": {
          "description": "Whether the owner marked the emoji as adult content.",
          "type": "boolean"
        },
        "alt": {
          "description": "Alt text for the image.",
          "type": "string"
        },
        "cid": {
          "description": "The record's CID.",
          "format": "cid",
          "type": "string"
        },
        "createdAt": {
          "description": "When the record was created.",
          "format": "datetime",
          "type": "string"
        },
        "fallback": {
          "description": "The text shown where the image cannot render.",
          "type": "string"
        },
        "images": {
          "description": "Every rendition the record carries.",
          "items": {
            "ref": "#emojiImage",
            "type": "ref"
          },
          "type": "array"
        },
        "name": {
          "description": "The name without colons.",
          "type": "string"
        },
        "owner": {
          "description": "The repo that holds the record and its blobs.",
          "format": "did",
          "type": "string"
        },
        "provider": {
          "description": "The emoji provider whose lexicon the record uses.",
          "knownValues": [
            "blue.moji"
          ],
          "type": "string"
        },
        "uri": {
          "description": "The emoji's record URI.",
          "format": "at-uri",
          "type": "string"
        }
      },
      "required": [
        "uri",
        "provider",
        "owner",
        "name",
        "images",
        "createdAt"
      ],
      "type": "object"
    },
    "followView": {
      "description": "A pack or single emoji the user follows, resolved against the owner's current catalog.",
      "properties": {
        "createdAt": {
          "description": "When the user started following.",
          "format": "datetime",
          "type": "string"
        },
        "emojis": {
          "description": "The pack's current emoji in pack order, or the single followed emoji. Empty unless state is available.",
          "items": {
            "ref": "#emojiView",
            "type": "ref"
          },
          "type": "array"
        },
        "kind": {
          "description": "Whether the subject is a pack or a single emoji.",
          "knownValues": [
            "pack",
            "emoji"
          ],
          "type": "string"
        },
        "owner": {
          "description": "Who holds the subject.",
          "ref": "#emojiOwner",
          "type": "ref"
        },
        "pack": {
          "description": "The pack, when kind is pack and state is available.",
          "ref": "#packView",
          "type": "ref"
        },
        "state": {
          "description": "available when the subject resolves. missing when the owner deleted it. unreachable when the owner's repo cannot be read, for example a deactivated or taken down account.",
          "knownValues": [
            "available",
            "missing",
            "unreachable"
          ],
          "type": "string"
        },
        "subject": {
          "description": "The followed pack or emoji.",
          "format": "at-uri",
          "type": "string"
        },
        "uri": {
          "description": "The follow record.",
          "format": "at-uri",
          "type": "string"
        }
      },
      "required": [
        "uri",
        "subject",
        "kind",
        "state",
        "owner",
        "emojis",
        "createdAt"
      ],
      "type": "object"
    },
    "libraryView": {
      "description": "A user's emoji library.",
      "properties": {
        "follows": {
          "description": "Everything the user follows, oldest follow first.",
          "items": {
            "ref": "#followView",
            "type": "ref"
          },
          "type": "array"
        },
        "own": {
          "description": "The emoji and packs in the user's own repo.",
          "ref": "#catalogView",
          "type": "ref"
        }
      },
      "required": [
        "own",
        "follows"
      ],
      "type": "object"
    },
    "packView": {
      "description": "A named group of custom emoji, normalised from its provider's records.",
      "properties": {
        "createdAt": {
          "description": "When the record was created.",
          "format": "datetime",
          "type": "string"
        },
        "description": {
          "description": "The pack's description.",
          "type": "string"
        },
        "emojis": {
          "description": "The URIs of the emoji in the pack, in the order they were added. Only emoji present in the catalog are listed.",
          "items": {
            "format": "at-uri",
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "The pack's name.",
          "type": "string"
        },
        "owner": {
          "description": "The repo that holds the pack.",
          "format": "did",
          "type": "string"
        },
        "provider": {
          "description": "The emoji provider whose lexicon the record uses.",
          "knownValues": [
            "blue.moji"
          ],
          "type": "string"
        },
        "uri": {
          "description": "The pack's record URI.",
          "format": "at-uri",
          "type": "string"
        }
      },
      "required": [
        "uri",
        "provider",
        "owner",
        "name",
        "emojis",
        "createdAt"
      ],
      "type": "object"
    }
  },
  "id": "social.colibri.beta.emoji.defs",
  "lexicon": 1
}
```
