{
  "$schema": "http://json-schema.org/schema",
  "$id": "SchematicsNgRxState",
  "title": "NgRx State Management Options Schema",
  "type": "object",
  "properties": {
    "name": {
      "description": "The name of the state.",
      "type": "string",
      "$default": {
        "$source": "argv",
        "index": 0
      },
      "x-prompt": "What should be the name of the state?"
    },
    "path": {
      "type": "string",
      "format": "path",
      "description": "The path to create the component.",
      "visible": false,
      "$default": {
        "$source": "workingDirectory"
      }
    },
    "project": {
      "type": "string",
      "description": "The name of the project.",
      "aliases": ["p"]
    },
    "flat": {
      "type": "boolean",
      "default": true,
      "description": "Flag to indicate if a dir is created."
    },
    "skipTests": {
      "type": "boolean",
      "default": false,
      "description": "When true, does not create test files."
    },
    "module": {
      "type": "string",
      "default": "",
      "description": "Allows specification of the declaring module.",
      "alias": "m",
      "subtype": "filepath",
      "x-prompt": "To which module (path) should the state be registered in?"
    },
    "statePath": {
      "type": "string",
      "default": "reducers"
    },
    "root": {
      "type": "boolean",
      "default": false,
      "description": "Flag to setup the root state or feature state."
    },
    "stateInterface": {
      "type": "string",
      "default": "State",
      "description": "Specifies the interface for the state.",
      "alias": "si"
    },
    "minimal": {
      "type": "boolean",
      "default": false,
      "description": "Setup root state management without registering initial reducers."
    }
  },
  "required": []
}
