{
  "$ref": "#/definitions/EventMessage",
  "definitions": {
    "EventMessage": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "const": "event"
        },
        "event": {
          "type": "object",
          "properties": {
            "t": {
              "type": "number"
            },
            "type": {
              "type": "string",
              "enum": [
                "dom.added",
                "dom.removed",
                "dom.attr",
                "dom.text",
                "net.request",
                "net.pending",
                "net.stream",
                "perf",
                "route.change",
                "console.log",
                "console.warn",
                "console.error",
                "console.info",
                "console.debug",
                "error.uncaught",
                "visible.shown",
                "anim.start",
                "anim.end",
                "scroll.position",
                "reveal.shown",
                "signal",
                "state.change",
                "storage.change",
                "page.health",
                "context.opened",
                "dialog.opened",
                "render.commit",
                "focus.change",
                "flow.recorded",
                "transport.overflow",
                "truncated",
                "blind-spot",
                "sdk.failed",
                "net.detail",
                "human.control",
                "human.mark",
                "download"
              ]
            },
            "sessionId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "ref": {
              "type": "string",
              "maxLength": 128
            },
            "seq": {
              "type": "integer",
              "minimum": 0
            },
            "actionId": {
              "$ref": "#/definitions/EventMessage/properties/event/properties/ref"
            },
            "attribution": {
              "type": "string",
              "enum": [
                "window"
              ]
            },
            "documentId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 8
            },
            "editEpoch": {
              "type": "integer",
              "minimum": 0
            },
            "data": {
              "type": "object",
              "additionalProperties": {},
              "default": {}
            }
          },
          "required": [
            "t",
            "type",
            "sessionId"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "kind",
        "event"
      ],
      "additionalProperties": false
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
