{
  "$schema": "http://json-schema.org/draft-07/schema",
  "$id": "SemmetAngularFeature",
  "title": "Semmet Angular Feature Options Schema",
  "type": "object",
  "description": "Generates an optional, minimal Angular feature boundary without imposing Semmet components or application architecture.",
  "additionalProperties": false,
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the feature.",
      "$default": {
        "$source": "argv",
        "index": 0
      },
      "x-prompt": "What name would you like to use for the feature?"
    },
    "project": {
      "type": "string",
      "description": "The Angular project to update.",
      "$default": {
        "$source": "projectName"
      }
    },
    "path": {
      "type": "string",
      "format": "path",
      "description": "The parent path where the feature directory is created.",
      "visible": false
    },
    "preset": {
      "type": "string",
      "enum": ["minimal", "layered"],
      "default": "minimal",
      "description": "Feature organization preset. Only minimal is implemented in this phase."
    },
    "page": {
      "type": "boolean",
      "default": true,
      "description": "Generate a standalone page shell."
    },
    "routing": {
      "type": "boolean",
      "default": true,
      "description": "Generate a feature routes file."
    },
    "route": {
      "type": "string",
      "description": "URL segment used when registering the feature. Defaults to the feature name."
    },
    "registerRoute": {
      "type": "boolean",
      "default": false,
      "description": "Register the feature lazily in the project's app.routes.ts."
    },
    "lazy": {
      "type": "boolean",
      "default": true,
      "description": "Use lazy loading in the feature and parent route."
    },
    "api": {
      "type": "boolean",
      "default": false,
      "description": "Reserved for the later api-resource composition phase."
    },
    "state": {
      "type": "boolean",
      "default": false,
      "description": "Reserved for the later feature-state composition phase."
    },
    "models": {
      "type": "boolean",
      "default": false,
      "description": "Reserved for the later models composition phase."
    },
    "e2e": {
      "type": "boolean",
      "default": false,
      "description": "Reserved for the deterministic feature E2E harness phase."
    },
    "force": {
      "type": "boolean",
      "default": false,
      "description": "Overwrite files owned by this schematic."
    }
  },
  "required": ["name", "project"]
}
