at.turtleme.chat.message

turtleme.at

Documentation

A single message sent to a turtle meat chat room. Messages live in the author's own repository; a room is assembled by reading the backlinks that point at it.

main record

A single message sent to a turtle meat chat room. Messages live in the author's own repository; a room is assembled by reading the backlinks that point at it.

Record Key tid Timestamp-based ID

Properties

createdAt string datetime Required

Timestamp declared by the sending client. It is not verified, so readers that care about ordering should prefer the record key.

facets array of ref app.bsky.richtext.facet Optional

Rich text over byte ranges of 'text', in Bluesky's facet shape. turtle meat writes and reads only mentions (app.bsky.richtext.facet#mention), each pointing at the DID the handle in the text meant when the line was sent. There is no threading: a mention points at an account, not at a message. Byte offsets count the whole of 'text', colour and effect codes included.

maxLength: 20 items
room string uri Required

The room the message was sent to. 'https://turtleme.at/chat/global' is the global room. Because this is a link, a backlink index can list a room's messages without a dedicated AppView. A message written into a clan, an at.turtleme.chat.clan permissioned space, carries that space's at:// URI here instead; it lives in the author's permissioned repository for the space rather than their public one.

text string Required

The message body. It may carry Old School RuneScape style chat codes in the form 'colour:effect:message', for example 'red:wave:hello there'. A client that does not recognise the codes should display the string verbatim rather than stripping it.

maxLength: 1000 bytesmaxGraphemes: 200 graphemes
View raw schema
{
  "description": "A single message sent to a turtle meat chat room. Messages live in the author's own repository; a room is assembled by reading the backlinks that point at it.",
  "key": "tid",
  "record": {
    "properties": {
      "createdAt": {
        "description": "Timestamp declared by the sending client. It is not verified, so readers that care about ordering should prefer the record key.",
        "format": "datetime",
        "type": "string"
      },
      "facets": {
        "description": "Rich text over byte ranges of 'text', in Bluesky's facet shape. turtle meat writes and reads only mentions (app.bsky.richtext.facet#mention), each pointing at the DID the handle in the text meant when the line was sent. There is no threading: a mention points at an account, not at a message. Byte offsets count the whole of 'text', colour and effect codes included.",
        "items": {
          "ref": "app.bsky.richtext.facet",
          "type": "ref"
        },
        "maxLength": 20,
        "type": "array"
      },
      "room": {
        "description": "The room the message was sent to. 'https://turtleme.at/chat/global' is the global room. Because this is a link, a backlink index can list a room's messages without a dedicated AppView. A message written into a clan, an at.turtleme.chat.clan permissioned space, carries that space's at:// URI here instead; it lives in the author's permissioned repository for the space rather than their public one.",
        "format": "uri",
        "type": "string"
      },
      "text": {
        "description": "The message body. It may carry Old School RuneScape style chat codes in the form 'colour:effect:message', for example 'red:wave:hello there'. A client that does not recognise the codes should display the string verbatim rather than stripping it.",
        "maxGraphemes": 200,
        "maxLength": 1000,
        "type": "string"
      }
    },
    "required": [
      "text",
      "room",
      "createdAt"
    ],
    "type": "object"
  },
  "type": "record"
}

Lexicon Garden

@