fyi.opensocial.board.thread

lexicons.opensocial.fyi

{
  "$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
}

Validate Record

Validate a record against fyi.opensocial.board.thread

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:2gqnilpksz2e7faj3bwvo6qc
CID
bafyreihi5rs4qyjy7sjgy32u7ek3lm77rq3bqywukkeetoxpmv3tu5ahi4
Indexed At
2026-10-08 18:10 UTC
AT-URI
at://did:plc:2gqnilpksz2e7faj3bwvo6qc/com.atproto.lexicon.schema/fyi.opensocial.board.thread

Referenced Schemas (1)

  • fyi.opensocial.embed.images

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • A discussion thread (topic). Lives in the author's repo, pointing at a board in a forum's repo.

  • fyi.opensocial.board.vote recordnot from the namespace authority

    One member's answer to a poll: their own record, in their own repo in the board's space, like an RSVP. Keyed by the thread's key, so voting again overwrites rather than adds. Everyone who can read the space can read the…

  • fyi.opensocial.board.post recordnot from the namespace authority

    A reply in a thread: the member's own record, in their own repo in the board's space.

  • A record containing an imageboard thread. Commonly referred to as the OP.

  • A vote in a thread's poll. Lives in the voter's repo. One record per selected option; deleting retracts the vote.

Lexicon Garden

@