{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "area": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string",
                    "description": "Name of the exported area used to show or hide content.",
                    "default": "content",
                    "format": "topic"
                }
            }
        },
        "show": {
            "type": "object",
            "description": "Show the content area upon action request.",
            "properties": {
                "onActions": {
                    "type": "array",
                    "description": "Actions on which the content should become visible.",
                    "items": {
                        "type": "string",
                        "format": "topic",
                        "axRole": "inlet"
                    }
                }
            }
        },
        "hide": {
            "type": "object",
            "description": "Hide the content are upon action request.",
            "properties": {
                "onActions": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "format": "topic",
                        "axRole": "inlet"
                    },
                    "description": "Actions on which the content should become invisible."
                }
            }
        },
        "visibility": {
            "type": "object",
            "description": "Features regarding the visibility of the controlled widget area.",
            "properties": {
                "initially": {
                    "type": "boolean",
                    "description": "Determines if the content area is visible initially (true) or not.",
                    "default": false
                },
                "flag": {
                    "type": "string",
                    "format": "topic",
                    "axRole": "outlet",
                    "description": "Flag published on change of the content's visibility."
                },
                "toggleOn": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "format": "flag-topic",
                        "axRole": "inlet",
                        "axPattern": "flag"
                    },
                    "description": "Flags toggling the content's visibility. The content is shown if any of the flags is true, hidden otherwise."
                }
            }
        },
        "animation": {
            "type": "object",
            "description": "Offer to animate changes to the visibility state.",
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "description": "If true visibility changes are animated.",
                    "default": true
                }
            }
        }
    }
}