{
  "$schema": "http://json-schema.org/schema",
  "$id": "KosComponent",
  "title": "",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Component name",
      "$default": {
        "$source": "argv",
        "index": 0
      },
      "x-prompt": "What name would you like to use?"
    },
    "type": {
      "type": "string",
      "description": "Provide the component type",
      "x-prompt": {
        "message": "Which type of component would you like to generate?",
        "type": "list",
        "items": [
          {
            "value": "components",
            "label": "Component"
          },
          {
            "value": "features",
            "label": "Feature"
          }
        ]
      }
    },
    "appProject": {
      "type": "string",
      "description": "The project where the ui components will be located.",
      "x-prompt": "Which project will this model put UI components?",
      "x-dropdown": "projects",
      "default": ""
    },
    "appDirectory": {
      "type": "string",
      "description": "The directory where the ui components will be located.",
      "default": ""
    },
    "useEmotionCss": {
      "type": "boolean",
      "description": "Use emotion css",
      "default": true
    },
    "pluginType": {
      "type": "string",
      "description": "The plugin type",
      "x-prompt": {
        "message": "Choose the plugin type.",
        "type": "list",
        "items": [
          {
            "value": "controlPour",
            "label": "Control Pour"
          },
          {
            "value": "custom",
            "label": "Custom (with user-specified contribution key)"
          }
        ]
      }
    },
    "contributionKey": {
      "type": "string",
      "description": "The contribution key for custom plugin type (e.g., the key in .kos.json where the plugin info will be added)",
      "x-prompt": {
        "message": "What contribution key should be used in .kos.json? (e.g., 'menus', 'panels', etc.)",
        "type": "input"
      }
    }
  },
  "required": ["name", "appProject"]
}
