{
    "description": "Schema describing the Glue42 Desktop layout.",
    "type": "object",
    "properties": {
        "version": {
            "description": "Version of the schema.",
            "type": "number"
        },
        "type": {
            "$ref": "#/definitions/LayoutType",
            "description": "Type of the layout."
        },
        "name": {
            "description": "Name of the layout.",
            "type": "string"
        },
        "token": {
            "description": "Used internally to audit operations.",
            "type": "string"
        },
        "components": {
            "type": "array",
            "items": {
                "anyOf": [
                    {
                        "$ref": "#/definitions/ApplicationLayoutInfo<\"window\",WindowLayoutState>"
                    },
                    {
                        "$ref": "#/definitions/ApplicationLayoutInfo<\"activity\",ActivityLayoutState>"
                    },
                    {
                        "$ref": "#/definitions/ApplicationLayoutInfo<\"canvas\",CanvasLayoutState>"
                    },
                    {
                        "$ref": "#/definitions/ApplicationLayoutInfo<\"swimlane\",SwimlaneLayoutState>"
                    },
                    {
                        "$ref": "#/definitions/ApplicationLayoutInfo<\"exe\",ExeLayoutState>"
                    },
                    {
                        "$ref": "#/definitions/ApplicationLayoutInfo<\"node\",NodeLayoutState>"
                    },
                    {
                        "$ref": "#/definitions/ApplicationLayoutInfo<\"clickonce\",ExeLayoutState>"
                    },
                    {
                        "$ref": "#/definitions/ApplicationLayoutInfo<\"citrix\",ExeLayoutState>"
                    },
                    {
                        "$ref": "#/definitions/ApplicationLayoutInfo<\"Workspace\",WorkspaceLayoutState>"
                    },
                    {
                        "$ref": "#/definitions/ApplicationLayoutInfo<\"workspaceFrame\",WorkspaceFrameLayoutState>"
                    },
                    {
                        "$ref": "#/definitions/ApplicationLayoutInfo<\"childWindow\",ChildWindowLayoutState>"
                    }
                ]
            }
        },
        "context": {
            "description": "Context saved with the layout.",
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "metadata": {
            "description": "Metadata saved with the layout.",
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "displays": {
            "type": "array",
            "items": {
                "$ref": "#/definitions/Display"
            }
        }
    },
    "additionalProperties": false,
    "required": [
        "components",
        "name",
        "token",
        "type"
    ],
    "definitions": {
        "LayoutType": {
            "enum": [
                "Activity",
                "ApplicationDefault",
                "Global",
                "Swimlane",
                "Workspace"
            ],
            "type": "string"
        },
        "ApplicationLayoutInfo<\"window\",WindowLayoutState>": {
            "type": "object",
            "properties": {
                "application": {
                    "description": "Name of the application.",
                    "type": "string"
                },
                "type": {
                    "description": "Type of the application.",
                    "type": "string",
                    "enum": [
                        "window"
                    ]
                },
                "componentType": {
                    "description": "Type of the component. Can be `application` or `activity`.",
                    "enum": [
                        "activity",
                        "application"
                    ],
                    "type": "string"
                },
                "state": {
                    "$ref": "#/definitions/WindowLayoutState"
                }
            },
            "additionalProperties": false,
            "required": [
                "type"
            ]
        },
        "WindowLayoutState": {
            "type": "object",
            "properties": {
                "bounds": {
                    "$ref": "#/definitions/Bounds"
                },
                "screenBounds": {
                    "type": "object",
                    "properties": {
                        "left": {
                            "type": "number"
                        },
                        "top": {
                            "type": "number"
                        },
                        "width": {
                            "type": "number"
                        },
                        "height": {
                            "type": "number"
                        }
                    },
                    "additionalProperties": false
                },
                "displayId": {
                    "type": "number"
                },
                "mode": {
                    "description": "Mode of the window.",
                    "enum": [
                        "flat",
                        "frameless",
                        "html",
                        "tab"
                    ],
                    "type": "string"
                },
                "isCollapsed": {
                    "description": "If `true`, the window was saved in a collapsed state.",
                    "type": "boolean"
                },
                "isPinned": {
                    "description": "If `true`, the window was saved in a pinned web group tab state.",
                    "type": "boolean"
                },
                "context": {
                    "description": "Application specific context.",
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true
                },
                "activityContext": {
                    "description": "If participating in an activity, the window can specify the activity context to be saved. This will be respected only if the window is the owner of the activity.",
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true
                },
                "tabGroupId": {
                    "description": "ID of the tab group.",
                    "type": "string"
                },
                "tabIndex": {
                    "description": "Index within the tab group.",
                    "type": "number"
                },
                "channelId": {
                    "description": "ID of the channel.",
                    "type": "string"
                },
                "allowChannels": {
                    "description": "Allow channels",
                    "type": "boolean"
                },
                "windowState": {
                    "description": "If set, the window will start in the specified state (maximized, minimized, normal).",
                    "type": "string"
                },
                "restoreState": {
                    "type": "string"
                },
                "userTitle": {
                    "description": "User specified title of the window",
                    "type": "string"
                },
                "customTitle": {
                    "description": "custom window title set by the API",
                    "type": "string"
                },
                "instanceId": {
                    "description": "It will be used in hibernation/resume logic, to match the live instance with the saved one",
                    "type": "string"
                },
                "createArgs": {},
                "parentInstanceId": {
                    "description": "If set, the window will be created as popup",
                    "type": "string"
                },
                "restoreSettings": {
                    "$ref": "#/definitions/RestoreSettings"
                },
                "isSticky": {
                    "description": "If `true`, the window was saved with enabled stickiness.",
                    "type": "boolean"
                },
                "placement": {
                    "description": "Placement settings"
                },
                "dockingPlacement": {
                    "description": "Docking"
                },
                "url": {
                    "description": "url saved in layout"
                },
                "title": {
                    "description": "application title saved in layout",
                    "type": "string"
                },
                "command": {
                    "type": "string"
                },
                "parameters": {
                    "type": "string"
                },
                "env": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "channelRestrictions": {
                    "$ref": "#/definitions/ChannelRestrictions"
                },
                "allowWorkspaceDrop": {
                    "type": "boolean"
                },
                "zoomFactor": {
                    "type": "number"
                }
            },
            "additionalProperties": false
        },
        "Bounds": {
            "type": "object",
            "properties": {
                "left": {
                    "description": "Coordinate on the horizontal axis.",
                    "type": "number"
                },
                "top": {
                    "description": "Coordinate on the vertical axis.",
                    "type": "number"
                },
                "width": {
                    "description": "Width of the app window.",
                    "type": "number"
                },
                "height": {
                    "description": "Height of the app window.",
                    "type": "number"
                },
                "right": {
                    "description": "Right border on the horizontal axis.",
                    "type": "number"
                },
                "bottom": {
                    "description": "Bottom border on the vertical axis.",
                    "type": "number"
                }
            },
            "additionalProperties": false
        },
        "RestoreSettings": {
            "type": "object",
            "properties": {
                "groupId": {
                    "description": "ID of the group.",
                    "type": "string"
                },
                "groupUserTitle": {
                    "description": "User specified title of the group.",
                    "type": "string"
                },
                "groupZOrder": {
                    "description": "Z-order of the group.",
                    "type": "number"
                },
                "groupDisplayId": {
                    "description": "Group target display.",
                    "type": "number"
                },
                "skipOffset": {
                    "description": "Skip offsetting the group",
                    "type": "boolean"
                }
            },
            "additionalProperties": false
        },
        "ChannelRestrictions": {
            "type": "object",
            "properties": {
                "channels": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/ChannelRestriction"
                    }
                }
            },
            "additionalProperties": false,
            "required": [
                "channels"
            ]
        },
        "ChannelRestriction": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "read": {
                    "type": "boolean"
                },
                "write": {
                    "type": "boolean"
                }
            },
            "additionalProperties": false,
            "required": [
                "name",
                "read",
                "write"
            ]
        },
        "ApplicationLayoutInfo<\"activity\",ActivityLayoutState>": {
            "type": "object",
            "properties": {
                "application": {
                    "description": "Name of the application.",
                    "type": "string"
                },
                "type": {
                    "description": "Type of the application.",
                    "type": "string",
                    "enum": [
                        "activity"
                    ]
                },
                "componentType": {
                    "description": "Type of the component. Can be `application` or `activity`.",
                    "enum": [
                        "activity",
                        "application"
                    ],
                    "type": "string"
                },
                "state": {
                    "$ref": "#/definitions/ActivityLayoutState"
                }
            },
            "additionalProperties": false,
            "required": [
                "type"
            ]
        },
        "ActivityLayoutState": {
            "type": "object",
            "properties": {
                "type": {
                    "description": "Type of the activity.",
                    "type": "string"
                },
                "windows": {
                    "description": "All the windows participating in the activity.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/ActivityWindowLayoutState"
                    }
                },
                "context": {
                    "description": "Activity context.",
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true
                },
                "instanceId": {
                    "description": "It will be used in hibernation/resume logic, to match the live instance with the saved one",
                    "type": "string"
                }
            },
            "additionalProperties": false
        },
        "ActivityWindowLayoutState": {
            "type": "object",
            "properties": {
                "type": {
                    "description": "Activity type of the window.",
                    "type": "string"
                },
                "name": {
                    "description": "Activity name of the window.",
                    "type": "string"
                },
                "isOwner": {
                    "description": "Is `true`, if this is the owner of the activity.",
                    "type": "boolean"
                },
                "isIndependent": {
                    "description": "Is `true`, if the window is independent",
                    "type": "boolean"
                },
                "bounds": {
                    "$ref": "#/definitions/Bounds"
                },
                "screenBounds": {
                    "type": "object",
                    "properties": {
                        "left": {
                            "type": "number"
                        },
                        "top": {
                            "type": "number"
                        },
                        "width": {
                            "type": "number"
                        },
                        "height": {
                            "type": "number"
                        }
                    },
                    "additionalProperties": false
                },
                "displayId": {
                    "type": "number"
                },
                "mode": {
                    "description": "Mode of the window.",
                    "enum": [
                        "flat",
                        "frameless",
                        "html",
                        "tab"
                    ],
                    "type": "string"
                },
                "isCollapsed": {
                    "description": "If `true`, the window was saved in a collapsed state.",
                    "type": "boolean"
                },
                "isPinned": {
                    "description": "If `true`, the window was saved in a pinned web group tab state.",
                    "type": "boolean"
                },
                "context": {
                    "description": "Application specific context.",
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true
                },
                "activityContext": {
                    "description": "If participating in an activity, the window can specify the activity context to be saved. This will be respected only if the window is the owner of the activity.",
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true
                },
                "tabGroupId": {
                    "description": "ID of the tab group.",
                    "type": "string"
                },
                "tabIndex": {
                    "description": "Index within the tab group.",
                    "type": "number"
                },
                "channelId": {
                    "description": "ID of the channel.",
                    "type": "string"
                },
                "allowChannels": {
                    "description": "Allow channels",
                    "type": "boolean"
                },
                "windowState": {
                    "description": "If set, the window will start in the specified state (maximized, minimized, normal).",
                    "type": "string"
                },
                "restoreState": {
                    "type": "string"
                },
                "userTitle": {
                    "description": "User specified title of the window",
                    "type": "string"
                },
                "customTitle": {
                    "description": "custom window title set by the API",
                    "type": "string"
                },
                "instanceId": {
                    "description": "It will be used in hibernation/resume logic, to match the live instance with the saved one",
                    "type": "string"
                },
                "createArgs": {},
                "parentInstanceId": {
                    "description": "If set, the window will be created as popup",
                    "type": "string"
                },
                "restoreSettings": {
                    "$ref": "#/definitions/RestoreSettings"
                },
                "isSticky": {
                    "description": "If `true`, the window was saved with enabled stickiness.",
                    "type": "boolean"
                },
                "placement": {
                    "description": "Placement settings"
                },
                "dockingPlacement": {
                    "description": "Docking"
                },
                "url": {
                    "description": "url saved in layout"
                },
                "title": {
                    "description": "application title saved in layout",
                    "type": "string"
                },
                "command": {
                    "type": "string"
                },
                "parameters": {
                    "type": "string"
                },
                "env": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "channelRestrictions": {
                    "$ref": "#/definitions/ChannelRestrictions"
                },
                "allowWorkspaceDrop": {
                    "type": "boolean"
                },
                "zoomFactor": {
                    "type": "number"
                }
            },
            "additionalProperties": false
        },
        "ApplicationLayoutInfo<\"canvas\",CanvasLayoutState>": {
            "type": "object",
            "properties": {
                "application": {
                    "description": "Name of the application.",
                    "type": "string"
                },
                "type": {
                    "description": "Type of the application.",
                    "type": "string",
                    "enum": [
                        "canvas"
                    ]
                },
                "componentType": {
                    "description": "Type of the component. Can be `application` or `activity`.",
                    "enum": [
                        "activity",
                        "application"
                    ],
                    "type": "string"
                },
                "state": {
                    "$ref": "#/definitions/CanvasLayoutState"
                }
            },
            "additionalProperties": false,
            "required": [
                "type"
            ]
        },
        "CanvasLayoutState": {
            "type": "object",
            "properties": {
                "bounds": {
                    "$ref": "#/definitions/Bounds"
                },
                "selectedWorkspace": {
                    "description": "Index of the selected workspace.",
                    "type": "number"
                },
                "caption": {
                    "type": "string"
                },
                "windowState": {
                    "type": "string"
                },
                "restoreState": {
                    "type": "string"
                },
                "zOrder": {
                    "type": "number"
                },
                "displayId": {
                    "type": "number"
                },
                "canvas": {
                    "$ref": "#/definitions/SwimlaneCanvas"
                },
                "workspaces": {
                    "description": "Collection of the workspaces.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/SwimlaneCanvas"
                    }
                },
                "context": {
                    "description": "Application specific context.",
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true
                },
                "frameBounds": {
                    "$ref": "#/definitions/Bounds"
                },
                "instanceId": {
                    "description": "It will be used in hibernation/resume logic, to match the live instance with the saved one",
                    "type": "string"
                }
            },
            "additionalProperties": false
        },
        "SwimlaneCanvas": {
            "type": "object",
            "properties": {
                "lanes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/SwimlaneLane"
                    }
                },
                "horizontal": {
                    "type": "boolean"
                },
                "caption": {
                    "type": "string"
                },
                "laneRatios": {
                    "type": "array",
                    "items": {
                        "type": "number"
                    }
                },
                "selected": {
                    "type": "boolean"
                },
                "frameId": {
                    "type": "string"
                },
                "canvasId": {
                    "type": "string"
                }
            },
            "additionalProperties": false,
            "required": [
                "horizontal",
                "laneRatios",
                "lanes"
            ]
        },
        "SwimlaneLane": {
            "type": "object",
            "properties": {
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/SwimlaneItem"
                    }
                },
                "itemRatios": {
                    "type": "array",
                    "items": {
                        "type": "number"
                    }
                },
                "allowDrop": {
                    "type": "boolean"
                },
                "allowResize": {
                    "type": "boolean"
                },
                "fixedSize": {
                    "type": "number"
                },
                "minSize": {
                    "type": "number"
                },
                "maxSize": {
                    "type": "number"
                },
                "pinned": {
                    "type": "boolean"
                }
            },
            "additionalProperties": false,
            "required": [
                "itemRatios",
                "items"
            ]
        },
        "SwimlaneItem": {
            "type": "object",
            "properties": {
                "lane": {
                    "type": "number"
                },
                "positionInLane": {
                    "type": "number"
                },
                "tabIndex": {
                    "type": "number"
                },
                "selected": {
                    "type": "boolean"
                },
                "type": {
                    "$ref": "#/definitions/SwimlaneItemType"
                },
                "name": {
                    "type": "string"
                },
                "tabTitle": {
                    "type": "string"
                },
                "tabGroup": {
                    "type": "string"
                },
                "showButtons": {
                    "type": "boolean"
                },
                "showCaption": {
                    "type": "boolean"
                },
                "showBorder": {
                    "type": "boolean"
                },
                "showFrame": {
                    "type": "boolean"
                },
                "allowDrop": {
                    "type": "boolean"
                },
                "allowExtract": {
                    "type": "boolean"
                },
                "allowAdd": {
                    "type": "boolean"
                },
                "isWorkspaceTab": {
                    "type": "boolean"
                },
                "canvas": {
                    "$ref": "#/definitions/SwimlaneCanvas"
                },
                "context": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true
                },
                "maximized": {
                    "type": "boolean"
                },
                "fixedWidth": {
                    "type": "number"
                },
                "fixedHeight": {
                    "type": "number"
                },
                "maxHeight": {
                    "type": "number"
                },
                "maxWidth": {
                    "type": "number"
                },
                "minHeight": {
                    "type": "number"
                },
                "minWidth": {
                    "type": "number"
                },
                "pinned": {
                    "type": "boolean"
                },
                "activityType": {
                    "type": "string"
                },
                "activityId": {
                    "type": "string"
                },
                "activityWindowType": {
                    "type": "string"
                },
                "isOwner": {
                    "type": "boolean"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/SwimlaneItem"
                    }
                },
                "showTabCloseButton": {
                    "type": "boolean"
                },
                "disableTileMode": {
                    "type": "boolean"
                },
                "channelId": {
                    "type": "string"
                },
                "createArgs": {},
                "instanceId": {
                    "type": "string"
                },
                "hostInstanceId": {
                    "type": "string"
                },
                "isSticky": {
                    "type": "boolean"
                }
            },
            "additionalProperties": false,
            "required": [
                "lane",
                "type"
            ]
        },
        "SwimlaneItemType": {
            "enum": [
                "canvas",
                "tab",
                "window"
            ],
            "type": "string"
        },
        "ApplicationLayoutInfo<\"swimlane\",SwimlaneLayoutState>": {
            "type": "object",
            "properties": {
                "application": {
                    "description": "Name of the application.",
                    "type": "string"
                },
                "type": {
                    "description": "Type of the application.",
                    "type": "string",
                    "enum": [
                        "swimlane"
                    ]
                },
                "componentType": {
                    "description": "Type of the component. Can be `application` or `activity`.",
                    "enum": [
                        "activity",
                        "application"
                    ],
                    "type": "string"
                },
                "state": {
                    "$ref": "#/definitions/SwimlaneLayoutState"
                }
            },
            "additionalProperties": false,
            "required": [
                "type"
            ]
        },
        "SwimlaneLayoutState": {
            "type": "object",
            "properties": {
                "canvas": {
                    "$ref": "#/definitions/SwimlaneCanvas"
                },
                "context": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true
                },
                "lastSaveTime": {
                    "type": "string"
                },
                "instanceId": {
                    "type": "string"
                }
            },
            "additionalProperties": false,
            "required": [
                "canvas",
                "lastSaveTime"
            ]
        },
        "ApplicationLayoutInfo<\"exe\",ExeLayoutState>": {
            "type": "object",
            "properties": {
                "application": {
                    "description": "Name of the application.",
                    "type": "string"
                },
                "type": {
                    "description": "Type of the application.",
                    "type": "string",
                    "enum": [
                        "exe"
                    ]
                },
                "componentType": {
                    "description": "Type of the component. Can be `application` or `activity`.",
                    "enum": [
                        "activity",
                        "application"
                    ],
                    "type": "string"
                },
                "state": {
                    "$ref": "#/definitions/ExeLayoutState"
                }
            },
            "additionalProperties": false,
            "required": [
                "type"
            ]
        },
        "ExeLayoutState": {
            "type": "object",
            "properties": {
                "bounds": {
                    "$ref": "#/definitions/Bounds"
                },
                "screenBounds": {
                    "type": "object",
                    "properties": {
                        "left": {
                            "type": "number"
                        },
                        "top": {
                            "type": "number"
                        },
                        "width": {
                            "type": "number"
                        },
                        "height": {
                            "type": "number"
                        }
                    },
                    "additionalProperties": false
                },
                "displayId": {
                    "type": "number"
                },
                "mode": {
                    "description": "Mode of the window.",
                    "enum": [
                        "flat",
                        "frameless",
                        "html",
                        "tab"
                    ],
                    "type": "string"
                },
                "isCollapsed": {
                    "description": "If `true`, the window was saved in a collapsed state.",
                    "type": "boolean"
                },
                "isPinned": {
                    "description": "If `true`, the window was saved in a pinned web group tab state.",
                    "type": "boolean"
                },
                "context": {
                    "description": "Application specific context.",
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true
                },
                "activityContext": {
                    "description": "If participating in an activity, the window can specify the activity context to be saved. This will be respected only if the window is the owner of the activity.",
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true
                },
                "tabGroupId": {
                    "description": "ID of the tab group.",
                    "type": "string"
                },
                "tabIndex": {
                    "description": "Index within the tab group.",
                    "type": "number"
                },
                "channelId": {
                    "description": "ID of the channel.",
                    "type": "string"
                },
                "allowChannels": {
                    "description": "Allow channels",
                    "type": "boolean"
                },
                "windowState": {
                    "description": "If set, the window will start in the specified state (maximized, minimized, normal).",
                    "type": "string"
                },
                "restoreState": {
                    "type": "string"
                },
                "userTitle": {
                    "description": "User specified title of the window",
                    "type": "string"
                },
                "customTitle": {
                    "description": "custom window title set by the API",
                    "type": "string"
                },
                "instanceId": {
                    "description": "It will be used in hibernation/resume logic, to match the live instance with the saved one",
                    "type": "string"
                },
                "createArgs": {},
                "parentInstanceId": {
                    "description": "If set, the window will be created as popup",
                    "type": "string"
                },
                "restoreSettings": {
                    "$ref": "#/definitions/RestoreSettings"
                },
                "isSticky": {
                    "description": "If `true`, the window was saved with enabled stickiness.",
                    "type": "boolean"
                },
                "placement": {
                    "description": "Placement settings"
                },
                "dockingPlacement": {
                    "description": "Docking"
                },
                "url": {
                    "description": "url saved in layout"
                },
                "title": {
                    "description": "application title saved in layout",
                    "type": "string"
                },
                "command": {
                    "type": "string"
                },
                "parameters": {
                    "type": "string"
                },
                "env": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "channelRestrictions": {
                    "$ref": "#/definitions/ChannelRestrictions"
                },
                "allowWorkspaceDrop": {
                    "type": "boolean"
                },
                "zoomFactor": {
                    "type": "number"
                }
            },
            "additionalProperties": false
        },
        "ApplicationLayoutInfo<\"node\",NodeLayoutState>": {
            "type": "object",
            "properties": {
                "application": {
                    "description": "Name of the application.",
                    "type": "string"
                },
                "type": {
                    "description": "Type of the application.",
                    "type": "string",
                    "enum": [
                        "node"
                    ]
                },
                "componentType": {
                    "description": "Type of the component. Can be `application` or `activity`.",
                    "enum": [
                        "activity",
                        "application"
                    ],
                    "type": "string"
                },
                "state": {
                    "$ref": "#/definitions/NodeLayoutState"
                }
            },
            "additionalProperties": false,
            "required": [
                "type"
            ]
        },
        "NodeLayoutState": {
            "type": "object",
            "properties": {
                "context": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true
                },
                "instanceId": {
                    "type": "string"
                }
            },
            "additionalProperties": false
        },
        "ApplicationLayoutInfo<\"clickonce\",ExeLayoutState>": {
            "type": "object",
            "properties": {
                "application": {
                    "description": "Name of the application.",
                    "type": "string"
                },
                "type": {
                    "description": "Type of the application.",
                    "type": "string",
                    "enum": [
                        "clickonce"
                    ]
                },
                "componentType": {
                    "description": "Type of the component. Can be `application` or `activity`.",
                    "enum": [
                        "activity",
                        "application"
                    ],
                    "type": "string"
                },
                "state": {
                    "$ref": "#/definitions/ExeLayoutState"
                }
            },
            "additionalProperties": false,
            "required": [
                "type"
            ]
        },
        "ApplicationLayoutInfo<\"citrix\",ExeLayoutState>": {
            "type": "object",
            "properties": {
                "application": {
                    "description": "Name of the application.",
                    "type": "string"
                },
                "type": {
                    "description": "Type of the application.",
                    "type": "string",
                    "enum": [
                        "citrix"
                    ]
                },
                "componentType": {
                    "description": "Type of the component. Can be `application` or `activity`.",
                    "enum": [
                        "activity",
                        "application"
                    ],
                    "type": "string"
                },
                "state": {
                    "$ref": "#/definitions/ExeLayoutState"
                }
            },
            "additionalProperties": false,
            "required": [
                "type"
            ]
        },
        "ApplicationLayoutInfo<\"Workspace\",WorkspaceLayoutState>": {
            "type": "object",
            "properties": {
                "application": {
                    "description": "Name of the application.",
                    "type": "string"
                },
                "type": {
                    "description": "Type of the application.",
                    "type": "string",
                    "enum": [
                        "Workspace"
                    ]
                },
                "componentType": {
                    "description": "Type of the component. Can be `application` or `activity`.",
                    "enum": [
                        "activity",
                        "application"
                    ],
                    "type": "string"
                },
                "state": {
                    "$ref": "#/definitions/WorkspaceLayoutState"
                }
            },
            "additionalProperties": false,
            "required": [
                "type"
            ]
        },
        "WorkspaceLayoutState": {
            "type": "object",
            "properties": {
                "instanceId": {
                    "type": "string"
                },
                "type": {
                    "enum": [
                        "workspace"
                    ],
                    "type": "string"
                },
                "children": {
                    "type": "array",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/definitions/GroupLayoutItem"
                            },
                            {
                                "$ref": "#/definitions/WindowLayoutItem"
                            },
                            {
                                "$ref": "#/definitions/RowLayoutItem"
                            },
                            {
                                "$ref": "#/definitions/ColumnLayoutItem"
                            }
                        ]
                    }
                },
                "config": {},
                "context": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true
                }
            },
            "additionalProperties": false,
            "required": [
                "children"
            ]
        },
        "GroupLayoutItem": {
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "group"
                    ]
                },
                "children": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/WindowLayoutItem"
                    }
                },
                "config": {}
            },
            "additionalProperties": false,
            "required": [
                "children",
                "type"
            ]
        },
        "WindowLayoutItem": {
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "window"
                    ]
                },
                "config": {
                    "type": "object",
                    "additionalProperties": {},
                    "properties": {
                        "appName": {
                            "type": "string"
                        },
                        "isMaximized": {
                            "type": "boolean"
                        },
                        "isLoaded": {
                            "type": "boolean"
                        },
                        "isFocused": {
                            "type": "boolean"
                        }
                    },
                    "required": [
                        "appName"
                    ]
                }
            },
            "additionalProperties": false,
            "required": [
                "config",
                "type"
            ]
        },
        "RowLayoutItem": {
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "row"
                    ]
                },
                "children": {
                    "type": "array",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/definitions/GroupLayoutItem"
                            },
                            {
                                "$ref": "#/definitions/WindowLayoutItem"
                            },
                            {
                                "$ref": "#/definitions/RowLayoutItem"
                            },
                            {
                                "$ref": "#/definitions/ColumnLayoutItem"
                            }
                        ]
                    }
                },
                "config": {}
            },
            "additionalProperties": false,
            "required": [
                "children",
                "type"
            ]
        },
        "ColumnLayoutItem": {
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "column"
                    ]
                },
                "children": {
                    "type": "array",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/definitions/GroupLayoutItem"
                            },
                            {
                                "$ref": "#/definitions/WindowLayoutItem"
                            },
                            {
                                "$ref": "#/definitions/RowLayoutItem"
                            },
                            {
                                "$ref": "#/definitions/ColumnLayoutItem"
                            }
                        ]
                    }
                },
                "config": {}
            },
            "additionalProperties": false,
            "required": [
                "children",
                "type"
            ]
        },
        "ApplicationLayoutInfo<\"workspaceFrame\",WorkspaceFrameLayoutState>": {
            "type": "object",
            "properties": {
                "application": {
                    "description": "Name of the application.",
                    "type": "string"
                },
                "type": {
                    "description": "Type of the application.",
                    "type": "string",
                    "enum": [
                        "workspaceFrame"
                    ]
                },
                "componentType": {
                    "description": "Type of the component. Can be `application` or `activity`.",
                    "enum": [
                        "activity",
                        "application"
                    ],
                    "type": "string"
                },
                "state": {
                    "$ref": "#/definitions/WorkspaceFrameLayoutState"
                }
            },
            "additionalProperties": false,
            "required": [
                "type"
            ]
        },
        "WorkspaceFrameLayoutState": {
            "type": "object",
            "properties": {
                "bounds": {
                    "$ref": "#/definitions/Bounds"
                },
                "screenBounds": {
                    "type": "object",
                    "properties": {
                        "left": {
                            "type": "number"
                        },
                        "top": {
                            "type": "number"
                        },
                        "width": {
                            "type": "number"
                        },
                        "height": {
                            "type": "number"
                        }
                    },
                    "additionalProperties": false
                },
                "selectedWorkspace": {
                    "description": "Index of the selected workspace.",
                    "type": "number"
                },
                "windowState": {
                    "type": "string"
                },
                "restoreState": {
                    "type": "string"
                },
                "zOrder": {
                    "type": "number"
                },
                "displayId": {
                    "type": "number"
                },
                "workspaces": {
                    "description": "Collection of the workspaces.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/WorkspaceLayoutState"
                    }
                },
                "context": {
                    "description": "Application specific context.",
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true
                },
                "instanceId": {
                    "description": "It will be used in hibernation/resume logic, to match the live instance with the saved one",
                    "type": "string"
                }
            },
            "additionalProperties": false
        },
        "ApplicationLayoutInfo<\"childWindow\",ChildWindowLayoutState>": {
            "type": "object",
            "properties": {
                "application": {
                    "description": "Name of the application.",
                    "type": "string"
                },
                "type": {
                    "description": "Type of the application.",
                    "type": "string",
                    "enum": [
                        "childWindow"
                    ]
                },
                "componentType": {
                    "description": "Type of the component. Can be `application` or `activity`.",
                    "enum": [
                        "activity",
                        "application"
                    ],
                    "type": "string"
                },
                "state": {
                    "$ref": "#/definitions/ChildWindowLayoutState"
                }
            },
            "additionalProperties": false,
            "required": [
                "type"
            ]
        },
        "ChildWindowLayoutState": {
            "type": "object",
            "properties": {
                "hostInstanceId": {
                    "type": "string"
                },
                "hostApplication": {
                    "type": "string"
                },
                "bounds": {
                    "$ref": "#/definitions/Bounds"
                },
                "screenBounds": {
                    "type": "object",
                    "properties": {
                        "left": {
                            "type": "number"
                        },
                        "top": {
                            "type": "number"
                        },
                        "width": {
                            "type": "number"
                        },
                        "height": {
                            "type": "number"
                        }
                    },
                    "additionalProperties": false
                },
                "displayId": {
                    "type": "number"
                },
                "mode": {
                    "description": "Mode of the window.",
                    "enum": [
                        "flat",
                        "frameless",
                        "html",
                        "tab"
                    ],
                    "type": "string"
                },
                "isCollapsed": {
                    "description": "If `true`, the window was saved in a collapsed state.",
                    "type": "boolean"
                },
                "isPinned": {
                    "description": "If `true`, the window was saved in a pinned web group tab state.",
                    "type": "boolean"
                },
                "context": {
                    "description": "Application specific context.",
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true
                },
                "activityContext": {
                    "description": "If participating in an activity, the window can specify the activity context to be saved. This will be respected only if the window is the owner of the activity.",
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true
                },
                "tabGroupId": {
                    "description": "ID of the tab group.",
                    "type": "string"
                },
                "tabIndex": {
                    "description": "Index within the tab group.",
                    "type": "number"
                },
                "channelId": {
                    "description": "ID of the channel.",
                    "type": "string"
                },
                "allowChannels": {
                    "description": "Allow channels",
                    "type": "boolean"
                },
                "windowState": {
                    "description": "If set, the window will start in the specified state (maximized, minimized, normal).",
                    "type": "string"
                },
                "restoreState": {
                    "type": "string"
                },
                "userTitle": {
                    "description": "User specified title of the window",
                    "type": "string"
                },
                "customTitle": {
                    "description": "custom window title set by the API",
                    "type": "string"
                },
                "instanceId": {
                    "description": "It will be used in hibernation/resume logic, to match the live instance with the saved one",
                    "type": "string"
                },
                "createArgs": {},
                "parentInstanceId": {
                    "description": "If set, the window will be created as popup",
                    "type": "string"
                },
                "restoreSettings": {
                    "$ref": "#/definitions/RestoreSettings"
                },
                "isSticky": {
                    "description": "If `true`, the window was saved with enabled stickiness.",
                    "type": "boolean"
                },
                "placement": {
                    "description": "Placement settings"
                },
                "dockingPlacement": {
                    "description": "Docking"
                },
                "url": {
                    "description": "url saved in layout"
                },
                "title": {
                    "description": "application title saved in layout",
                    "type": "string"
                },
                "command": {
                    "type": "string"
                },
                "parameters": {
                    "type": "string"
                },
                "env": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "channelRestrictions": {
                    "$ref": "#/definitions/ChannelRestrictions"
                },
                "allowWorkspaceDrop": {
                    "type": "boolean"
                },
                "zoomFactor": {
                    "type": "number"
                }
            },
            "additionalProperties": false
        },
        "Display": {
            "type": "object",
            "properties": {
                "screenBounds": {
                    "description": "Screen (physical) bounds.",
                    "type": "object",
                    "properties": {
                        "left": {
                            "type": "number"
                        },
                        "top": {
                            "type": "number"
                        },
                        "width": {
                            "type": "number"
                        },
                        "height": {
                            "type": "number"
                        }
                    },
                    "additionalProperties": false
                },
                "screenWorkArea": {
                    "type": "object",
                    "properties": {
                        "left": {
                            "type": "number"
                        },
                        "top": {
                            "type": "number"
                        },
                        "width": {
                            "type": "number"
                        },
                        "height": {
                            "type": "number"
                        }
                    },
                    "additionalProperties": false
                },
                "screenScale": {
                    "description": "Physical scale factor.",
                    "type": "number"
                },
                "height": {
                    "description": "Height of the display.",
                    "type": "number"
                },
                "isPrimary": {
                    "description": "Whatever the display is primary.",
                    "type": "boolean"
                },
                "left": {
                    "description": "Height of the display.",
                    "type": "number"
                },
                "name": {
                    "description": "Unique identifier associated with the display.",
                    "type": "number"
                },
                "scale": {
                    "description": "Logical scale factor.",
                    "type": "number"
                },
                "top": {
                    "type": "number"
                },
                "width": {
                    "description": "Width of the display.",
                    "type": "number"
                },
                "workingAreaHeight": {
                    "type": "number"
                },
                "workingAreaLeft": {
                    "type": "number"
                },
                "workingAreaTop": {
                    "type": "number"
                },
                "workingAreaWidth": {
                    "type": "number"
                },
                "id": {
                    "description": "Unique identifier associated with the display.",
                    "type": "number"
                },
                "displayName": {
                    "description": "Display user friendly name.",
                    "type": "string"
                },
                "rotation": {
                    "description": "Can be 0, 90, 180, 270, represents screen rotation in clock-wise degrees.",
                    "type": "number"
                },
                "touchSupport": {
                    "description": "Can be available, unavailable, unknown.",
                    "type": "string"
                }
            },
            "additionalProperties": false
        }
    },
    "$schema": "http://json-schema.org/draft-07/schema#"
}