{
    "definitions": {
            "MenuItem":  {
                "type": "object",
                "additionalProperties": false,
                "required": [
                    "label"
                ],
                "defaultSnippets": [
                    {
                        "label": "New Menu Item",
                        "description": "Creates a new menu item",
                        "body": {                             
                                    "taskId":"$1",
                                    "label":"$2",
                                    "icon":"$3",
                                    "items":[]
                                }                                             
                    }
                ],
                "properties": {
                    "label":{
                        "type": "string"
                    },
                    "taskId": {
                        "type": "string"
                    },
                    "icon": {
                        "type": "string"
                    },
                    "items": {
                        "type": "array",
                        "items": { "$ref": "#/definitions/MenuItem" }           
                    }            
                }
            }
    },
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "http://dynamicsmobile.com/schema/json/approotmenu.json",
    "type": "object",
    "additionalProperties": false,
    "title": "Dynamics Mobile Backend app root-menu definition",
    "defaultSnippets": [
        {
            "label": "New Root Menu",
            "description": "Creates empty root-menu",
            "body": { 
                "quickItems":[],
                "items":[]
             }
        }
    ],
    "required": [
        "quickItems",
        "items"
    ],
    "properties": {
        "quickItems": {
            "type": "array",
            "items": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                    "label",
                    "taskId"
                ],
                "defaultSnippets": [
                    {
                        "label": "New Quick Item",
                        "description": "Creates a new quick menu item",
                        "body": {                             
                                    "taskId":"$1",
                                    "label":"$2"
                                }                                             
                    }
                ],
                "properties": {
                    "taskId":{
                        "type":"string"
                    },
                    "label": {
                        "type": "string"
                    }                  
                }
            }
        },
        "items": {
            "type": "array",
            "items": { "$ref": "#/definitions/MenuItem" }           
        }
    }
}