{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/foundry-mcp-com/json-schema/foundry-mcp-com-send-chat-message-request-schema.json",
  "title": "SendChatMessageRequest",
  "description": "Send a new chat message to the world. Only `content` is required. `actor_id` binds the message to a specific actor (sets the speaker alias to the actor's name); `whisper_to` makes the message private to the listed user IDs. `content` may include HTML, but the read side strips it — round-trip fidelity is not preserved.",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/foundry-mcp-com-openapi.json#/components/schemas/SendChatMessageRequest",
  "properties": {
    "actor_id": {
      "description": "Foundry actor id whose name becomes the speaker. Yields 404 if the actor doesn't exist.",
      "minLength": 1,
      "type": "string"
    },
    "content": {
      "description": "Message body. HTML supported on send, returned as plain text from list/get.",
      "minLength": 1,
      "type": "string"
    },
    "flavor": {
      "description": "Italic header text shown above the message body (e.g. `Stealth Check`).",
      "minLength": 1,
      "type": "string"
    },
    "speaker": {
      "description": "Override the speaker alias (free text). Use `actor_id` for actor-bound speaker.",
      "minLength": 1,
      "type": "string"
    },
    "type": {
      "description": "Message style. Default lets Foundry pick `other`. `ic` for in-character, `ooc` for out-of-character, `emote` for italicised actions.",
      "enum": [
        "ic",
        "ooc",
        "emote"
      ],
      "type": "string"
    },
    "whisper_to": {
      "description": "User IDs to whisper this message to. Empty / omitted = public broadcast.",
      "items": {
        "type": "string"
      },
      "type": "array"
    }
  },
  "required": [
    "content"
  ],
  "type": "object"
}