{
  "$schema": "https://json-schema.org/schema",
  "$id": "NxNgrxFeatureStoreGenerator",
  "title": "NgRx Feature Store Generator",
  "description": "Add an NgRx Feature Store to an application or library.",
  "cli": "nx",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Name of the NgRx feature state, such as `products` or `users`. Recommended to use the plural form of the name.",
      "$default": {
        "$source": "argv",
        "index": 0
      },
      "x-prompt": "What name would you like to use for the NgRx feature state? An example would be `users`.",
      "x-priority": "important"
    },
    "parent": {
      "type": "string",
      "description": "The path to the file where the state will be registered. For NgModule usage, this will be your Feature Module. For Standalone API usage, this will be your Routes definition file for your feature state. The host directory will create/use the new state directory.",
      "x-prompt": "What is the path to the module or Routes definition where this NgRx state should be registered?",
      "x-priority": "important"
    },
    "route": {
      "type": "string",
      "description": "The route that the Standalone NgRx Providers should be added to.",
      "default": "''"
    },
    "minimal": {
      "type": "boolean",
      "default": false,
      "description": "Only register the feature state.",
      "x-priority": "important"
    },
    "directory": {
      "type": "string",
      "default": "+state",
      "description": "The name of the folder used to contain/group the generated NgRx files."
    },
    "facade": {
      "type": "boolean",
      "default": false,
      "description": "Create a Facade class for the the feature.",
      "x-prompt": "Would you like to use a Facade with your NgRx state?"
    },
    "skipImport": {
      "type": "boolean",
      "default": false,
      "description": "Generate NgRx feature files without registering the feature in the NgModule."
    },
    "skipFormat": {
      "description": "Skip formatting files.",
      "type": "boolean",
      "default": false,
      "x-priority": "internal"
    },
    "skipPackageJson": {
      "type": "boolean",
      "default": false,
      "description": "Do not update the `package.json` with NgRx dependencies.",
      "x-priority": "internal"
    },
    "barrels": {
      "type": "boolean",
      "default": false,
      "description": "Use barrels to re-export actions, state and selectors."
    }
  },
  "additionalProperties": false,
  "required": ["name"]
}
