# im.flushing.preferences

> Published by [flushes.app](https://lexicon.garden/identity/did:plc:omyqslmybfah7a5shue7hnqz)

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:omyqslmybfah7a5shue7hnqz/im.flushing.preferences)
- [Documentation](https://lexicon.garden/lexicon/did:plc:omyqslmybfah7a5shue7hnqz/im.flushing.preferences/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:omyqslmybfah7a5shue7hnqz/im.flushing.preferences/examples)

## Definitions

### `im.flushing.preferences`

**Type**: `record`

A user's Flushes preferences, so that a choice made on one device is the same choice on the next. One record per repo.

**Key**: `literal:self`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `sound` | `boolean` | No | Whether the app is allowed to make noise. |
| `theme` | `string` | No | Which palette the site is drawn in. |
| `updatedAt` | `string` (datetime) | Yes | When these preferences were last changed. Two devices resolve a disagreement by taking the later one. |
| `swipeLeftEmoji` | `string` | No | The reaction a leftward swipe on a feed row leaves. |
| `swipeRightEmoji` | `string` | No | The reaction a rightward swipe on a feed row leaves. |
| `hiddenFlushEmojis` | `array` | No | Emoji to leave out of the flush composer's picker. Absent means none are hidden. Stored as what to hide rather than what to show, so emoji added to the palette later appear without every existing record having to be rewritten. |
| `randomizeFlushEmoji` | `boolean` | No | Start the flush composer's picker on a different emoji each time it opens, rather than always the same one. |
| `hiddenReactionEmojis` | `array` | No | Emoji to leave out of the reaction picker. Absent means none are hidden. |
| `randomizeReactionEmoji` | `boolean` | No | Start the reaction dial on a different emoji each time it opens. |

## Raw Schema

```json
{
  "id": "im.flushing.preferences",
  "defs": {
    "main": {
      "key": "literal:self",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "updatedAt"
        ],
        "properties": {
          "sound": {
            "type": "boolean",
            "description": "Whether the app is allowed to make noise."
          },
          "theme": {
            "type": "string",
            "maxLength": 16,
            "description": "Which palette the site is drawn in.",
            "knownValues": [
              "light",
              "dark"
            ]
          },
          "updatedAt": {
            "type": "string",
            "format": "datetime",
            "description": "When these preferences were last changed. Two devices resolve a disagreement by taking the later one."
          },
          "swipeLeftEmoji": {
            "type": "string",
            "maxLength": 32,
            "description": "The reaction a leftward swipe on a feed row leaves.",
            "maxGraphemes": 1
          },
          "swipeRightEmoji": {
            "type": "string",
            "maxLength": 32,
            "description": "The reaction a rightward swipe on a feed row leaves.",
            "maxGraphemes": 1
          },
          "hiddenFlushEmojis": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 32,
              "maxGraphemes": 1
            },
            "maxLength": 256,
            "description": "Emoji to leave out of the flush composer's picker. Absent means none are hidden. Stored as what to hide rather than what to show, so emoji added to the palette later appear without every existing record having to be rewritten."
          },
          "randomizeFlushEmoji": {
            "type": "boolean",
            "description": "Start the flush composer's picker on a different emoji each time it opens, rather than always the same one."
          },
          "hiddenReactionEmojis": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 32,
              "maxGraphemes": 1
            },
            "maxLength": 256,
            "description": "Emoji to leave out of the reaction picker. Absent means none are hidden."
          },
          "randomizeReactionEmoji": {
            "type": "boolean",
            "description": "Start the reaction dial on a different emoji each time it opens."
          }
        }
      },
      "description": "A user's Flushes preferences, so that a choice made on one device is the same choice on the next. One record per repo."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
