{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "objects": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string"
                    },
                    "originX": {
                        "type": "string"
                    },
                    "originY": {
                        "type": "string"
                    },
                    "left": {
                        "type": "number"
                    },
                    "top": {
                        "type": "number"
                    },
                    "width": {
                        "type": "integer"
                    },
                    "height": {
                        "type": "integer"
                    },
                    "fill": {
                        "type": "string"
                    },
                    "stroke": {
                        "type": "null"
                    },
                    "strokeWidth": {
                        "type": "integer"
                    },
                    "strokeDashArray": {
                        "type": "null"
                    },
                    "strokeLineCap": {
                        "type": "string"
                    },
                    "strokeLineJoin": {
                        "type": "string"
                    },
                    "strokeMiterLimit": {
                        "type": "integer"
                    },
                    "scaleX": {
                        "type": "integer"
                    },
                    "scaleY": {
                        "type": "integer"
                    },
                    "angle": {
                        "type": "integer"
                    },
                    "flipX": {
                        "type": "boolean"
                    },
                    "flipY": {
                        "type": "boolean"
                    },
                    "opacity": {
                        "type": "integer"
                    },
                    "shadow": {
                        "type": "null"
                    },
                    "visible": {
                        "type": "boolean"
                    },
                    "clipTo": {
                        "type": "null"
                    },
                    "backgroundColor": {
                        "type": "string"
                    },
                    "fillRule": {
                        "type": "string"
                    },
                    "globalCompositeOperation": {
                        "type": "string"
                    },
                    "transformMatrix": {
                        "type": "null"
                    },
                    "skewX": {
                        "type": "integer"
                    },
                    "skewY": {
                        "type": "integer"
                    },
                    "crossOrigin": {
                        "type": "string"
                    },
                    "alignX": {
                        "type": "string"
                    },
                    "alignY": {
                        "type": "string"
                    },
                    "meetOrSlice": {
                        "type": "string"
                    },
                    "src": {
                        "type": "string"
                    },
                    "filters": {
                        "type": "array",
                        "items": {}
                    },
                    "resizeFilters": {
                        "type": "array",
                        "items": {}
                    }
                },
                "required": [
                    "type",
                    "originX",
                    "originY",
                    "left",
                    "top",
                    "width",
                    "height",
                    "fill",
                    "stroke",
                    "strokeWidth",
                    "strokeDashArray",
                    "strokeLineCap",
                    "strokeLineJoin",
                    "strokeMiterLimit",
                    "scaleX",
                    "scaleY",
                    "angle",
                    "flipX",
                    "flipY",
                    "opacity",
                    "shadow",
                    "visible",
                    "clipTo",
                    "backgroundColor",
                    "fillRule",
                    "globalCompositeOperation",
                    "transformMatrix",
                    "skewX",
                    "skewY",
                    "crossOrigin",
                    "alignX",
                    "alignY",
                    "meetOrSlice",
                    "src",
                    "filters",
                    "resizeFilters"
                ]
            }
        }
    },
    "required": [
        "objects"
    ]
}