# fyi.opensocial.board.thread

> Published by [lexicons.opensocial.fyi](https://lexicon.garden/identity/did:plc:2gqnilpksz2e7faj3bwvo6qc)

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:2gqnilpksz2e7faj3bwvo6qc/fyi.opensocial.board.thread)
- [Documentation](https://lexicon.garden/lexicon/did:plc:2gqnilpksz2e7faj3bwvo6qc/fyi.opensocial.board.thread/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:2gqnilpksz2e7faj3bwvo6qc/fyi.opensocial.board.thread/examples)

## Definitions

### `fyi.opensocial.board.thread`

**Type**: `record`

A thread, written by a member into a board's space from their own repo. A thread with a subject is the discussion attached to that thing (an event, say) and belongs on it rather than in the board's own list.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `body` | `string` | No |  |
| `createdAt` | `string` (datetime) | Yes |  |
| `embed` | `union` | No | Pictures with it. |
| `poll` | `ref` → `fyi.opensocial.board.thread#poll` | No | Makes this thread a poll. The replies still work; the options are the thing being decided. |
| `subject` | `string` (at-uri) | No | What this thread is attached to, if anything. |
| `title` | `string` | Yes |  |

### `fyi.opensocial.board.thread#option`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `key` | `string` | Yes | Stable identifier a vote points at. |
| `label` | `string` | Yes |  |

### `fyi.opensocial.board.thread#poll`

**Type**: `object`

A question with fixed answers. Options carry a stable key so a vote survives the labels being edited, and closesAt is advisory — the space cannot stop a late write, the app just stops offering one.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `closesAt` | `string` (datetime) | No |  |
| `options` | `array` | Yes |  |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A thread, written by a member into a board's space from their own repo. A thread with a subject is the discussion attached to that thing (an event, say) and belongs on it rather than in the board's own list.",
      "key": "tid",
      "record": {
        "properties": {
          "body": {
            "maxGraphemes": 3000,
            "maxLength": 30000,
            "type": "string"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "embed": {
            "description": "Pictures with it.",
            "refs": [
              "fyi.opensocial.embed.images"
            ],
            "type": "union"
          },
          "poll": {
            "description": "Makes this thread a poll. The replies still work; the options are the thing being decided.",
            "ref": "fyi.opensocial.board.thread#poll",
            "type": "ref"
          },
          "subject": {
            "description": "What this thread is attached to, if anything.",
            "format": "at-uri",
            "type": "string"
          },
          "title": {
            "maxGraphemes": 300,
            "maxLength": 3000,
            "type": "string"
          }
        },
        "required": [
          "title",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "option": {
      "properties": {
        "key": {
          "description": "Stable identifier a vote points at.",
          "maxLength": 64,
          "type": "string"
        },
        "label": {
          "maxGraphemes": 64,
          "maxLength": 640,
          "type": "string"
        }
      },
      "required": [
        "key",
        "label"
      ],
      "type": "object"
    },
    "poll": {
      "description": "A question with fixed answers. Options carry a stable key so a vote survives the labels being edited, and closesAt is advisory — the space cannot stop a late write, the app just stops offering one.",
      "properties": {
        "closesAt": {
          "format": "datetime",
          "type": "string"
        },
        "options": {
          "items": {
            "ref": "fyi.opensocial.board.thread#option",
            "type": "ref"
          },
          "maxLength": 12,
          "minLength": 2,
          "type": "array"
        }
      },
      "required": [
        "options"
      ],
      "type": "object"
    }
  },
  "id": "fyi.opensocial.board.thread",
  "lexicon": 1
}
```
