{
  "lexicon": 1,
  "id": "chat.bsky.moderation.getMessageContext",
  "defs": {
    "main": {
      "type": "query",
      "parameters": {
        "type": "params",
        "required": ["messageId"],
        "properties": {
          "convoId": {
            "type": "string",
            "description": "Conversation that the message is from. NOTE: this field will eventually be required."
          },
          "messageId": { "type": "string" },
          "before": {
            "type": "integer",
            "default": 5,
            "description": "Number of user messages before the target to include. System messages between the earliest returned user message and the target are also included, capped per gap by `maxInterleavedSystemMessages`. If there are no user messages before the target, up to `maxInterleavedSystemMessages` system messages immediately preceding the target are returned instead."
          },
          "after": {
            "type": "integer",
            "default": 5,
            "description": "Number of user messages after the target to include. System messages between the target and the latest returned user message are also included, capped per gap by `maxInterleavedSystemMessages`. If there are no user messages after the target, up to `maxInterleavedSystemMessages` system messages immediately following the target are returned instead."
          },
          "maxInterleavedSystemMessages": {
            "type": "integer",
            "default": 10,
            "minimum": 0,
            "maximum": 1000,
            "description": "Maximum number of system messages to include per gap between consecutive returned messages (and per side when there are no user messages on that side). Within a gap, the system messages closest to the earlier message are kept."
          }
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "type": "object",
          "required": ["messages"],
          "properties": {
            "messages": {
              "type": "array",
              "items": {
                "type": "union",
                "refs": [
                  "chat.bsky.convo.defs#messageView",
                  "chat.bsky.convo.defs#systemMessageView"
                ]
              }
            }
          }
        }
      }
    }
  }
}
