[
    {
        "name": "classes",
        "type": "string",
        "required": false,
        "description": "Classes to add to the image element."
    },
    {
        "name": "attributes",
        "type": "object",
        "required": false,
        "description": "HTML attributes (for example data attributes) to add to the image."
    },
    {
        "name": "src",
        "type": "string",
        "required": true,
        "description": "Image source used when sources array not provided, or none of the sources match"
    },
    {
        "name": "alt",
        "type": "string",
        "required": false,
        "description": "Alt text for the image"
    },
    {
        "name": "lazy",
        "type": "boolean",
        "required": false,
        "description": "If true, lazy-load the image"
    },
    {
        "name": "width",
        "type": "integer",
        "required": false,
        "description": "If provided, set the intrinsic width of the image"
    },
    {
        "name": "height",
        "type": "integer",
        "required": false,
        "description": "If provided, set the intrinsic height of the image"
    },
    {
        "name": "widths",
        "type": "object",
        "required": false,
        "description": "Assumed widths (in css units, such as px or vw) of the image onscreen. Used when selecting an image to display on the given viewport.",
        "params": [
            {
                "name": "mobile",
                "type": "string",
                "required": false,
                "description": "Assumed width (in css units) of the image when selecting a source image on mobile viewports"
            },
            {
                "name": "mobileLarge",
                "type": "string",
                "required": false,
                "description": "Assumed width (in css units) of the image when selecting a source image on large mobile viewports"
            },
            {
                "name": "tablet",
                "type": "string",
                "required": false,
                "description": "Assumed width (in css units) of the image when selecting a source image on tablet viewports"
            },
            {
                "name": "desktop",
                "type": "string",
                "required": false,
                "description": "Assumed width (in css units) of the image when selecting a source image on desktop viewports"
            },
            {
                "name": "wide",
                "type": "string",
                "required": false,
                "description": "Assumed width (in css units) of the image when selecting a source image on wide viewports"
            }
        ]
    },
    {
        "name": "sources",
        "type": "array",
        "required": false,
        "description": "Sources for images",
        "items": [
            {
                "name": "type",
                "type": "array",
                "required": true,
                "description": "Mime type of the source"
            },
            {
                "name": "type",
                "type": "array",
                "required": true,
                "description": "Mime type of the source type"
            },
            {
                "name": "sources",
                "type": "array",
                "required": true,
                "description": "Sources listed in the source",
                "items": [
                    {
                        "name": "src",
                        "type": "string",
                        "required": true,
                        "description": "Source of the image"
                    },
                    {
                        "name": "width",
                        "type": "string",
                        "required": false,
                        "description": "Width descriptor of the image. Default value is infinity."
                    }
                ]
            }
        ]
    }
]