{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "http://example.com/product.schema.json",
    "title": "Create block shorthand",
    "description": "Can generate the 3 steps required to prompt the user to add a block to their project",
    "type": "object",
    "properties": {
        "type": {
            "const": "create-block"
        },
        "category": {
            "markdownDescription": "The category where the target block lives. Example: `toolbox#app`",
            "type": "string"
        },
        "blockType": {
            "markdownDescription": "The type of block to be created. Example: `onAppStart`",
            "type": "string"
        },
        "connectTo": {
            "markdownDescription": "Will prompt the user to connect their newly created block to the connection provided here",
            "type": "string"
        },
        "alias": {
            "markdownDescription": "An **alias** to give this block once the user created it. Use this to refer to that block in the following steps using the querying syntax. Example: You create the alias `block_0`, you will be able to refer to it with `alias#block_0`",
            "type": "string"
        },
        "openFlyoutCopy": {
            "markdownDescription": "The message displayed in the guide widget prompting the user to open the right category",
            "type": "string"
        },
        "grabBlockCopy": {
            "markdownDescription": "The message displayed in the guide widget prompting the user to grab the correct block from the flyout",
            "type": "string"
        },
        "dropCopy": {
            "markdownDescription": "The message displayed in the guide widget prompting the user to drop a block onto the code space",
            "type": "string"
        },
        "connectCopy": {
            "markdownDescription": "The message displayed in the guide widget prompting the user to connect a block to another",
            "type": "string"
        },
        "override": {
            "type": "object",
            "description": "Define extra data used to override the steps generated by this shorthand",
            "properties": {
                "open": {
                    "$ref": "../classic-step.json"
                },
                "grab": {
                    "$ref": "../classic-step.json"
                },
                "connect": {
                    "$ref": "../classic-step.json"
                },
                "drop": {
                    "$ref": "../classic-step.json"
                }
            }
        }
    },
    "required": ["category", "blockType"],
    "additionalProperties": false
  }