{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://example.com/schemas/infrastructure-decisions.schema.json",
  "title": "Infrastructure Decision System",
  "type": "object",
  "required": ["description", "objective", "infrastructure_decisions"],
  "properties": {
    "description": { "type": "string", "minLength": 1 },
    "objective": { "type": "string", "minLength": 1 },
    "infrastructure_decisions": {
      "type": "object",
      "required": ["objective", "why", "decisionPrinciples", "ownerStackPreference", "decisionAreas", "siteTypeRecommendations", "scenarioExamples", "agentWorkflow", "antiPatterns", "qaGates", "passCriteria", "objectiveAlignment"],
      "properties": {
        "objective": { "type": "string", "minLength": 1 },
        "why": { "type": "string", "minLength": 1 },
        "decisionPrinciples": { "type": "array", "minItems": 3 },
        "ownerStackPreference": {
          "type": "object",
          "required": ["objective", "why", "defaultStack", "frameworkDecisionRules", "overrideEvidenceRequired", "antiBiasRules"]
        },
        "decisionAreas": {
          "type": "array",
          "minItems": 8,
          "items": {
            "type": "object",
            "required": ["id", "name", "objective", "tiers", "agentQuestions", "guardrails"]
          }
        },
        "siteTypeRecommendations": {
          "type": "array",
          "minItems": 3,
          "items": {
            "type": "object",
            "required": ["siteType", "defaultTiers", "upgradeTriggers"]
          }
        },
        "scenarioExamples": {
          "type": "array",
          "minItems": 5,
          "items": {
            "type": "object",
            "required": ["id", "scenario", "recommendedStack", "decisionPath", "explicitTradeoffs", "qaEvidence", "overrideTriggers", "blockedChoices"]
          }
        },
        "agentWorkflow": { "type": "array", "minItems": 5 },
        "antiPatterns": {
          "type": "array",
          "minItems": 4,
          "items": {
            "type": "object",
            "required": ["id", "issue", "fix"]
          }
        },
        "qaGates": { "type": "array", "minItems": 1 },
        "passCriteria": { "type": "array", "minItems": 1 },
        "objectiveAlignment": { "type": "string", "minLength": 1 }
      }
    }
  }
}
