{
  "$schema": "http://json-schema.org/schema",
  "$id": "SemmetInterceptor",
  "title": "Semmet functional HTTP interceptor",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "name": {
      "type": "string",
      "description": "Security/observability recipe to generate.",
      "enum": ["correlation-id", "problem-details", "auth-token", "logging"],
      "$default": {
        "$source": "argv",
        "index": 0
      },
      "x-prompt": {
        "message": "Which interceptor recipe?",
        "type": "list",
        "items": [
          { "value": "correlation-id", "label": "Correlation ID" },
          { "value": "problem-details", "label": "Problem Details" },
          { "value": "auth-token", "label": "Auth token" },
          { "value": "logging", "label": "Safe logging hooks" }
        ]
      }
    },
    "project": {
      "type": "string",
      "description": "Angular project.",
      "$default": {
        "$source": "projectName"
      }
    },
    "path": {
      "type": "string",
      "format": "path",
      "description": "Destination directory."
    },
    "register": {
      "type": "boolean",
      "default": false,
      "description": "Register the interceptor in a recognized app.config.ts."
    },
    "force": {
      "type": "boolean",
      "default": false,
      "description": "Overwrite generated interceptor files."
    }
  },
  "required": ["name"]
}
