json_schema: {
      "additionalProperties": false,
      "description": "Context Schema for a Roku video event (reflects the Video node: https://developer.roku.com/en-gb/docs/references/scenegraph/media-playback-nodes/video.md)",
      "properties": {
          "contentId": {
              "description": "ID of video provided in content metadata.",
              "maxLength": 255,
              "type": [
                  "string",
                  "null"
              ]
          },
          "contentTitle": {
              "description": "Title of video provided in content metadata.",
              "maxLength": 65535,
              "type": [
                  "string",
                  "null"
              ]
          },
          "contentType": {
              "description": "Category of video (e.g., movie, season, series) provided in content metadata.",
              "maxLength": 255,
              "type": [
                  "string",
                  "null"
              ]
          },
          "contentUrl": {
              "_format": "uri",
              "description": "URL of video provided in content metadata.",
              "maxLength": 65535,
              "type": [
                  "string",
                  "null"
              ]
          },
          "errorStr": {
              "description": "A diagnostic message indicating a video play error. Refer to the Roku Video documentation for the format of the string.",
              "maxLength": 65535,
              "type": [
                  "string",
                  "null"
              ]
          },
          "height": {
              "description": "Height of the video play window in pixels. 0 if the play window is set to the height of the entire display screen.",
              "maximum": 65535,
              "minimum": 0,
              "type": "integer"
          },
          "isResumed": {
              "description": "Indicates whether the playback was resumed after trickplay.",
              "type": [
                  "boolean",
                  "null"
              ]
          },
          "isUnderrun": {
              "description": "Indicates whether the stream was downloaded due to an underrun.",
              "type": [
                  "boolean",
                  "null"
              ]
          },
          "measuredBitrate": {
              "description": "Measured bitrate (bps) of the network when the stream was selected.",
              "maximum": 2147483647,
              "minimum": 0,
              "type": [
                  "integer",
                  "null"
              ]
          },
          "streamBitrate": {
              "description": "Current bitrate of the stream.",
              "maximum": 2147483647,
              "minimum": 0,
              "type": [
                  "integer",
                  "null"
              ]
          },
          "streamFormat": {
              "description": "Container format of video (e.g., mp4, wma, mkv) provided in content metadata.",
              "maxLength": 255,
              "type": [
                  "string",
                  "null"
              ]
          },
          "streamUrl": {
              "_format": "uri",
              "description": "URL of the current stream.",
              "maxLength": 65535,
              "type": [
                  "string",
                  "null"
              ]
          },
          "timeToStartStreaming": {
              "description": "Time in seconds from playback being started until the video actually began playing.",
              "maximum": 9007199254740991,
              "minimum": 0,
              "type": [
                  "number",
                  "null"
              ]
          },
          "videoFormat": {
              "description": "Video codec of the currently playing video stream (e.g., hevc, mpeg2, mpeg4_15).",
              "maxLength": 255,
              "type": [
                  "string",
                  "null"
              ]
          },
          "videoId": {
              "description": "ID generated when video tracking of the video node was initialized.",
              "maxLength": 255,
              "type": "string"
          },
          "width": {
              "description": "Width of the video play window in pixels. 0 if the play window is set to the width of the entire display screen.",
              "maximum": 65535,
              "minimum": 0,
              "type": "integer"
          }
      },
      "required": [
          "videoId",
          "width",
          "height"
      ],
      "self": {
          "format": "jsonschema",
          "name": "video",
          "vendor": "com.roku",
          "version": "1-0-0"
      },
      "type": "object"
  }