{
  "$schema": "https://json-schema.org/draft-07/schema#",
  "$id": "https://local/shared/rules/bootstrap/manifest.schema.json",
  "title": "Project rules manifest",
  "description": "Declares which rule slices a project inherits. Consumed by the rules-bootstrap skill to compose .cursor/rules/.",
  "type": "object",
  "required": ["project", "global", "stacks"],
  "additionalProperties": false,
  "properties": {
    "project": {
      "type": "object",
      "required": ["name"],
      "additionalProperties": false,
      "properties": {
        "name": { "type": "string", "minLength": 1 },
        "description": { "type": "string" },
        "data_classification": {
          "type": "string",
          "enum": ["private_sensitive", "internal", "low_sensitive"],
          "description": "Drives runtime-policy compatibility (SPB-01, SPB-10)."
        },
        "owners": { "type": "array", "items": { "type": "string" } }
      }
    },
    "global": {
      "type": "object",
      "additionalProperties": false,
      "required": ["version"],
      "properties": {
        "version": { "type": "string", "description": "Tag or commit of the global-baseline used at bootstrap time." },
        "include": {
          "type": "array",
          "items": { "type": "string" },
          "description": "Optional restriction; default is all global-baseline files."
        },
        "exclude": {
          "type": "array",
          "items": { "type": "string" }
        }
      }
    },
    "stacks": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": ["backend", "frontend", "data", "infra"]
      },
      "uniqueItems": true,
      "description": "Stack modules to include."
    },
    "overrides": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["path"],
        "additionalProperties": false,
        "properties": {
          "path": { "type": "string", "description": "Path to a project-overrides folder." },
          "rationale": { "type": "string" },
          "expires": { "type": "string", "format": "date" }
        }
      }
    },
    "rendered": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "target": { "type": "string", "default": ".cursor/rules", "description": "Destination directory inside the target project." },
        "mode": { "type": "string", "enum": ["copy", "symlink"], "default": "copy" }
      }
    }
  }
}
