app.protoimsg.chat.message

lexicon.store View official

Documentation

A chat message. Lives in the sender's repo, points to a channel.

main record

A chat message. Lives in the sender's repo, points to a channel.

Record Key tid Timestamp-based ID

Properties

channel string at-uri Required

AT-URI of the channel record this message belongs to.

createdAt string datetime Required

Timestamp of message creation.

facets array of ref #richTextFacet Optional

Rich text annotations (mentions, links, tags, formatting). Extends the Bluesky facet convention with additional formatting features.

reply ref #replyRef Optional

Structured reply reference for threading.

text string Required

Message text content.

maxLength: 3000 bytesmaxGraphemes: 1000 graphemes
View raw schema
{
  "key": "tid",
  "type": "record",
  "record": {
    "type": "object",
    "required": [
      "channel",
      "text",
      "createdAt"
    ],
    "properties": {
      "text": {
        "type": "string",
        "maxLength": 3000,
        "description": "Message text content.",
        "maxGraphemes": 1000
      },
      "embed": {
        "refs": [
          "#imageEmbed",
          "#videoEmbed",
          "#externalEmbed"
        ],
        "type": "union",
        "description": "Embedded media or link card."
      },
      "reply": {
        "ref": "#replyRef",
        "type": "ref",
        "description": "Structured reply reference for threading."
      },
      "facets": {
        "type": "array",
        "items": {
          "ref": "#richTextFacet",
          "type": "ref"
        },
        "description": "Rich text annotations (mentions, links, tags, formatting). Extends the Bluesky facet convention with additional formatting features."
      },
      "channel": {
        "type": "string",
        "format": "at-uri",
        "description": "AT-URI of the channel record this message belongs to."
      },
      "createdAt": {
        "type": "string",
        "format": "datetime",
        "description": "Timestamp of message creation."
      }
    }
  },
  "description": "A chat message. Lives in the sender's repo, points to a channel."
}
aspectRatio object

Width and height for layout before media loads.

Properties

height integer Required

No description available.

minimum: 1
width integer Required

No description available.

minimum: 1
View raw schema
{
  "type": "object",
  "required": [
    "width",
    "height"
  ],
  "properties": {
    "width": {
      "type": "integer",
      "minimum": 1
    },
    "height": {
      "type": "integer",
      "minimum": 1
    }
  },
  "description": "Width and height for layout before media loads."
}
blockquote object

Facet feature for a block quotation.

This object has no properties defined.

View raw schema
{
  "type": "object",
  "properties": {},
  "description": "Facet feature for a block quotation."
}
bold object

Facet feature for bold text.

This object has no properties defined.

View raw schema
{
  "type": "object",
  "properties": {},
  "description": "Facet feature for bold text."
}
byteSlice object

Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text.

Properties

byteEnd integer Required

No description available.

minimum: 0
byteStart integer Required

No description available.

minimum: 0
View raw schema
{
  "type": "object",
  "required": [
    "byteStart",
    "byteEnd"
  ],
  "properties": {
    "byteEnd": {
      "type": "integer",
      "minimum": 0
    },
    "byteStart": {
      "type": "integer",
      "minimum": 0
    }
  },
  "description": "Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text."
}
codeBlock object

Facet feature for a code block. The text contains the code content.

Properties

lang string Optional

Programming language for syntax highlighting.

maxLength: 50 bytes
View raw schema
{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "maxLength": 50,
      "description": "Programming language for syntax highlighting."
    }
  },
  "description": "Facet feature for a code block. The text contains the code content."
}
codeInline object

Facet feature for inline code.

This object has no properties defined.

View raw schema
{
  "type": "object",
  "properties": {},
  "description": "Facet feature for inline code."
}
externalEmbed object

External link card.

Properties

description string Optional

Description or summary.

maxLength: 1000 bytes
thumb blob Optional

Thumbnail image for the link card.

maxSize: 1.0 MB
title string Required

Title of the external content.

maxLength: 300 bytes
uri string uri Required

URL of the external content.

View raw schema
{
  "type": "object",
  "required": [
    "uri",
    "title"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "format": "uri",
      "description": "URL of the external content."
    },
    "thumb": {
      "type": "blob",
      "accept": [
        "image/png",
        "image/jpeg"
      ],
      "maxSize": 1000000,
      "description": "Thumbnail image for the link card."
    },
    "title": {
      "type": "string",
      "maxLength": 300,
      "description": "Title of the external content."
    },
    "description": {
      "type": "string",
      "maxLength": 1000,
      "description": "Description or summary."
    }
  },
  "description": "External link card."
}
imageEmbed object

Embedded images.

Properties

images array of ref#imageItem Required

No description available.

maxLength: 4 items
View raw schema
{
  "type": "object",
  "required": [
    "images"
  ],
  "properties": {
    "images": {
      "type": "array",
      "items": {
        "ref": "#imageItem",
        "type": "ref"
      },
      "maxLength": 4
    }
  },
  "description": "Embedded images."
}
imageItem object

A single embedded image.

Properties

alt string Required

Alt text for accessibility.

maxLength: 2000 bytes
aspectRatio ref #aspectRatio Optional

No description available.

image blob Required

Image blob reference.

maxSize: 1.0 MB
View raw schema
{
  "type": "object",
  "required": [
    "image",
    "alt"
  ],
  "properties": {
    "alt": {
      "type": "string",
      "maxLength": 2000,
      "description": "Alt text for accessibility."
    },
    "image": {
      "type": "blob",
      "accept": [
        "image/png",
        "image/jpeg",
        "image/gif",
        "image/webp"
      ],
      "maxSize": 1000000,
      "description": "Image blob reference."
    },
    "aspectRatio": {
      "ref": "#aspectRatio",
      "type": "ref"
    }
  },
  "description": "A single embedded image."
}
italic object

Facet feature for italic text.

This object has no properties defined.

View raw schema
{
  "type": "object",
  "properties": {},
  "description": "Facet feature for italic text."
}
link object

Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL.

Properties

uri string uri Required

A valid URI.

View raw schema
{
  "type": "object",
  "required": [
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "format": "uri"
    }
  },
  "description": "Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL."
}
mention object

Facet feature for mention of another account. The text is usually a handle, including a '@' prefix, but the facet reference is a DID.

Properties

did string did Required

A decentralized identifier (DID).

View raw schema
{
  "type": "object",
  "required": [
    "did"
  ],
  "properties": {
    "did": {
      "type": "string",
      "format": "did"
    }
  },
  "description": "Facet feature for mention of another account. The text is usually a handle, including a '@' prefix, but the facet reference is a DID."
}
replyRef object

Thread reply reference with root and parent for efficient deep thread traversal.

Properties

parent string at-uri Required

AT-URI of the direct parent message being replied to.

root string at-uri Required

AT-URI of the root message in the thread.

View raw schema
{
  "type": "object",
  "required": [
    "root",
    "parent"
  ],
  "properties": {
    "root": {
      "type": "string",
      "format": "at-uri",
      "description": "AT-URI of the root message in the thread."
    },
    "parent": {
      "type": "string",
      "format": "at-uri",
      "description": "AT-URI of the direct parent message being replied to."
    }
  },
  "description": "Thread reply reference with root and parent for efficient deep thread traversal."
}
richTextFacet object

Annotation of a sub-string within rich text.

Properties

index ref #byteSlice Required

No description available.

View raw schema
{
  "type": "object",
  "required": [
    "index",
    "features"
  ],
  "properties": {
    "index": {
      "ref": "#byteSlice",
      "type": "ref"
    },
    "features": {
      "type": "array",
      "items": {
        "refs": [
          "#mention",
          "#link",
          "#tag",
          "#bold",
          "#italic",
          "#strikethrough",
          "#codeInline",
          "#codeBlock",
          "#blockquote"
        ],
        "type": "union"
      }
    }
  },
  "description": "Annotation of a sub-string within rich text."
}
strikethrough object

Facet feature for strikethrough text.

This object has no properties defined.

View raw schema
{
  "type": "object",
  "properties": {},
  "description": "Facet feature for strikethrough text."
}
tag object

Facet feature for a hashtag. The text usually includes a '#' prefix, but the facet reference should not.

Properties

tag string Required

No description available.

maxLength: 640 bytesmaxGraphemes: 64 graphemes
View raw schema
{
  "type": "object",
  "required": [
    "tag"
  ],
  "properties": {
    "tag": {
      "type": "string",
      "maxLength": 640,
      "maxGraphemes": 64
    }
  },
  "description": "Facet feature for a hashtag. The text usually includes a '#' prefix, but the facet reference should not."
}
videoEmbed object

Embedded video.

Properties

alt string Optional

Alt text for accessibility.

maxLength: 2000 bytes
aspectRatio ref #aspectRatio Optional

No description available.

thumbnail blob Optional

Video thumbnail image.

maxSize: 1.0 MB
video blob Required

Video blob reference.

maxSize: 50.0 MB
View raw schema
{
  "type": "object",
  "required": [
    "video"
  ],
  "properties": {
    "alt": {
      "type": "string",
      "maxLength": 2000,
      "description": "Alt text for accessibility."
    },
    "video": {
      "type": "blob",
      "accept": [
        "video/mp4",
        "video/webm"
      ],
      "maxSize": 50000000,
      "description": "Video blob reference."
    },
    "thumbnail": {
      "type": "blob",
      "accept": [
        "image/png",
        "image/jpeg"
      ],
      "maxSize": 1000000,
      "description": "Video thumbnail image."
    },
    "aspectRatio": {
      "ref": "#aspectRatio",
      "type": "ref"
    }
  },
  "description": "Embedded video."
}

Lexicon Garden

@