$schema: http://json-schema.org/draft-07/schema type: array items: anyOf: - type: object properties: id: type: string pattern: "^[0-9]+$" sender: type: string pattern: "^[0-9]+$" channel: type: string pattern: "^[0-9]+$" text: type: string timestamp: type: string pattern: "^[0-9]+$" editTimestamp: type: string pattern: "^[0-9]+$" repliedToId: type: string pattern: "^[0-9]+$" attachments: type: array items: type: object properties: id: type: string pattern: "^[0-9]+$" name: type: string type: type: string size: type: number minimum: 0 url: type: string required: - id - name - size - url embeds: type: array items: type: string pattern: "^\{.*\}$" reactions: type: array items: type: object properties: id: type: string pattern: "^[0-9]+$" name: type: string isAnimated: type: boolean count: type: number minimum: 1 anyOf: - required: - id - count - required: - name - count required: - id - sender - channel - text - timestamp