{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "layout": {
            "type": "object",
            "description": "How to present the messages.",
            "properties": {
                "variant": {
                    "type": "integer",
                    "description": "A layout-variant code (preliminary; 1: no alert/border, 2: single alert, 3: one alert per error-class, 4: one alert per message).",
                    "default": 3
                }
            }
        },
        "dismiss": {
            "type": "object",
            "description": "Tells if and how messages may be dismissed by the user.",
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "description": "If true, a button for dismissing is provided to the user.",
                    "default": true
                }
            }
        },
        "status": {
            "type": "object",
            "description": "Flags by which the most severe level among all messages is indicated.",
            "properties": {
                "ERROR": {
                    "type": "string",
                    "format": "topic",
                    "axRole": "outlet"
                },
                "WARNING": {
                    "type": "string",
                    "format": "topic",
                    "axRole": "outlet"
                },
                "INFO": {
                    "type": "string",
                    "format": "topic",
                    "axRole": "outlet"
                },
                "SUCCESS": {
                    "type": "string",
                    "format": "topic",
                    "axRole": "outlet"
                },
                "BLANK": {
                    "type": "string",
                    "format": "topic",
                    "axRole": "outlet"
                },
                "reset": {
                    "type": "object",
                    "description": "Delete all messages and set the state to BLANK",
                    "properties": {
                        "onActions": {
                            "type": "array",
                            "description": "List with actions",
                            "items": {
                                "type": "string",
                                "format": "topic",
                                "axRole": "inlet"
                            }
                        }
                    }
                }
            }
        },
        "errors": {
            "type": "object",
            "description": "If enabled, errors received via didEncounterError will be displayed too",
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "default": true
                }
            }
        },
        "resource": {
            "type": "object",
            "description": "List of resources for which publish- and validation-messages are processed.",
            "properties": {
                "list": {
                    "type": [
                        "array",
                        "null"
                    ],
                    "description": "Resource topic list. Empty list serves as catch-all, null disables the resource-feature.",
                    "default": null,
                    "items": {
                        "type": "string",
                        "format": "topic",
                        "axRole": "inlet"
                    }
                },
                "exclude": {
                    "type": "array",
                    "description": "A list of resources to exclude from the display in case resource.list is set to catch-all.",
                    "items": {
                        "type": "string",
                        "format": "topic",
                        "axRole": "inlet"
                    }
                },
                "replace": {
                    "type": "boolean",
                    "description": "Whether to replace messages with success message.",
                    "default": false
                }
            }
        },
        "autoScroll": {
            "type": "object",
            "description": "Scroll the messages into the visible area of the window when receiving messages.",
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "default": false,
                    "description": "If true the widget scrolls the messages into the visible area when receiving them."
                }
            }
        },
        "i18n": {
            "description": "Which locale to use for displaying this widget.",
            "type": "object",
            "properties": {
                "locale": {
                    "type": "string",
                    "format": "topic",
                    "axRole": "inlet",
                    "description": "The topic under which to expect the locale for this widget.",
                    "default": "default"
                }
            }
        }
    }
}