{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "key": "tid",
      "record": {
        "properties": {
          "content": {
            "maxLength": 131072,
            "type": "string"
          },
          "contentFormat": {
            "enum": [
              "text/plain",
              "text/markdown",
              "application/json"
            ],
            "type": "string"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "previous": {
            "items": {
              "ref": "lex:at.ellich.agent.message#strongRef",
              "type": "ref"
            },
            "maxLength": 100,
            "type": "array"
          },
          "role": {
            "description": "Transcript label only. Never grants instruction priority or tool authority; consumers must authenticate and authorize the repository author independently.",
            "enum": [
              "user",
              "assistant",
              "system",
              "tool"
            ],
            "maxLength": 128,
            "type": "string"
          },
          "session": {
            "format": "at-uri",
            "type": "string"
          },
          "sourceKey": {
            "maxLength": 1024,
            "type": "string"
          }
        },
        "required": [
          "session",
          "role",
          "content",
          "contentFormat",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "strongRef": {
      "properties": {
        "cid": {
          "format": "cid",
          "type": "string"
        },
        "uri": {
          "format": "at-uri",
          "type": "string"
        }
      },
      "required": [
        "uri",
        "cid"
      ],
      "type": "object"
    }
  },
  "id": "at.ellich.agent.message",
  "lexicon": 1
}
