{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://trp.ecoclaim.ca/schemas/v3/option-assessment.schema.json",
  "title": "TRP OptionAssessment",
  "description": "Comparison of a baseline and a candidate option with gates, impact, cost and approval status. Draft 3.0.0-draft.",
  "allOf": [{ "$ref": "common.schema.json#/$defs/envelope" }],
  "type": "object",
  "required": ["claim_id", "requirement_id", "baseline_option_id", "candidate_option_id", "functional_unit", "eligibility", "recommendation"],
  "properties": {
    "type": { "const": "trp.option_assessment" },
    "claim_id": { "$ref": "common.schema.json#/$defs/identifier" },
    "requirement_id": { "$ref": "common.schema.json#/$defs/identifier" },
    "baseline_option_id": { "$ref": "common.schema.json#/$defs/identifier" },
    "candidate_option_id": { "$ref": "common.schema.json#/$defs/identifier" },
    "functional_unit": {
      "type": "object",
      "required": ["quantity", "unit"],
      "properties": {
        "quantity": { "type": "number" },
        "unit": { "type": "string" },
        "description": { "type": "string" }
      }
    },
    "eligibility": {
      "type": "object",
      "required": ["status", "mandatory_checks"],
      "properties": {
        "status": { "enum": ["pass", "fail", "needs_review"] },
        "mandatory_checks": {
          "type": "array",
          "items": {
            "type": "object",
            "required": ["name", "status"],
            "properties": {
              "name": { "type": "string" },
              "status": { "enum": ["pass", "fail", "unknown", "pending_approval"] }
            }
          }
        }
      }
    },
    "carbon": {
      "type": "object",
      "properties": {
        "baseline_kg_co2e": { "type": ["number", "null"] },
        "candidate_kg_co2e": { "type": ["number", "null"] },
        "boundary": { "type": "string" },
        "status": { "enum": ["pending_data", "calculated", "not_comparable"] }
      }
    },
    "commercial": {
      "type": "object",
      "properties": {
        "currency": { "type": "string", "pattern": "^[A-Z]{3}$" },
        "baseline_installed_cost": { "type": ["number", "null"] },
        "candidate_installed_cost": { "type": ["number", "null"] },
        "quote_status": { "enum": ["unverified", "supplier_quote", "contractor_bid", "invoiced"] }
      }
    },
    "availability": {
      "type": "object",
      "properties": {
        "status": { "enum": ["confirmed", "reported", "estimated", "unknown", "unavailable"] },
        "checked_at": { "type": ["string", "null"], "format": "date-time" }
      }
    },
    "resilience": {
      "type": "object",
      "properties": {
        "perils": { "type": "array", "items": { "type": "string" } },
        "assessment_status": { "enum": ["not_assessed", "assessed"] }
      }
    },
    "recommendation": {
      "type": "object",
      "required": ["status", "human_approval_required"],
      "properties": {
        "status": { "enum": ["recommended", "not_recommended", "insufficient_evidence", "not_comparable"] },
        "human_approval_required": { "const": true }
      }
    }
  }
}
