$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
