{
  "$comment": "DERIVED OUTPUT-CONTRACT SIDECAR — a WITNESS domain from fixtures, never a declaration. May decide L2G-pass; may NEVER produce a dead-branch L2G-fail. Generated by scripts/gen-output-schema.mjs (CHAIN-FV-L2-G-RESCOPE-3). ⛔ Do not hand-edit — run the generator.",
  "kernel_digest": "sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
  "output_schema": {
    "properties": {
      "apor_pct": {
        "maximum": 5.5,
        "minimum": 0,
        "type": "number",
        "x-observed-values": [
          0,
          5.5
        ],
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "apr_pct": {
        "maximum": 12.5,
        "minimum": 0,
        "type": "number",
        "x-observed-values": [
          0,
          7.5,
          12.5
        ],
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "apr_spread_pct": {
        "maximum": 7,
        "minimum": 0,
        "type": "number",
        "x-observed-values": [
          0,
          2,
          7
        ],
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "apr_threshold_basis": {
        "enum": [
          "first_lien_standard_6.5pp"
        ],
        "type": "string",
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "apr_threshold_pct": {
        "maximum": 6.5,
        "minimum": 6.5,
        "type": "number",
        "x-observed-values": [
          6.5
        ],
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "apr_trigger_met": {
        "enum": [
          false,
          true
        ],
        "type": "boolean",
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "consumes": {
        "enum": [
          "art-220 (lookup_reg_z_thresholds) supplies the HOEPA threshold table (table: hoepa). This node pins the same values for local deterministic compute."
        ],
        "type": "string",
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "fr_citation": {
        "enum": [
          "FR 2025-22773, effective 2026-01-01; 12 CFR §1026.32(a)(1)(ii)"
        ],
        "type": "string",
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "has_prepayment_penalty": {
        "enum": [
          false
        ],
        "type": "boolean",
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "is_high_cost": {
        "enum": [
          false,
          true
        ],
        "type": "boolean",
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "is_small_dwelling": {
        "enum": [
          false
        ],
        "type": "boolean",
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "lien_type": {
        "enum": [
          "first"
        ],
        "type": "string",
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "loan_amount": {
        "maximum": 400000,
        "minimum": 0,
        "type": "number",
        "x-observed-values": [
          0,
          400000
        ],
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "note": {
        "enum": [
          "HOEPA restrictions apply if ANY trigger is met. APOR must be supplied by caller from FFIEC weekly APOR table (ffiec.gov/ratespread). For HPML escrow requirement: use art-235 (test_hpml_escrow)."
        ],
        "type": "string",
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "points_and_fees": {
        "maximum": 25000,
        "minimum": 0,
        "type": "number",
        "x-observed-values": [
          0,
          5000,
          25000
        ],
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "points_fees_floor": {
        "maximum": 1380,
        "minimum": 1380,
        "type": "number",
        "x-observed-values": [
          1380
        ],
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "points_fees_limit": {
        "maximum": 20000,
        "minimum": 1380,
        "type": "number",
        "x-observed-values": [
          1380,
          20000
        ],
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "points_fees_limit_pct": {
        "maximum": 5,
        "minimum": 5,
        "type": "number",
        "x-observed-values": [
          5
        ],
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "points_fees_trigger_met": {
        "enum": [
          false,
          true
        ],
        "type": "boolean",
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "pp_pct_limit": {
        "maximum": 2,
        "minimum": 2,
        "type": "number",
        "x-observed-values": [
          2
        ],
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "pp_period_limit_months": {
        "maximum": 36,
        "minimum": 36,
        "type": "number",
        "x-observed-values": [
          36
        ],
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "prepayment_penalty_pct": {
        "maximum": 0,
        "minimum": 0,
        "type": "number",
        "x-observed-values": [
          0
        ],
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "prepayment_penalty_period_months": {
        "maximum": 0,
        "minimum": 0,
        "type": "number",
        "x-observed-values": [
          0
        ],
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "prepayment_penalty_trigger_met": {
        "enum": [
          false
        ],
        "type": "boolean",
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "regulatory_basis": {
        "enum": [
          "12 CFR §1026.32(a)(1) HOEPA high-cost mortgage trigger test. APR trigger: §1026.32(a)(1)(i). Points-and-fees trigger: §1026.32(a)(1)(ii). Prepayment penalty trigger: §1026.32(a)(1)(iii)."
        ],
        "type": "string",
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "table_version": {
        "enum": [
          "HOEPA-REGZ-2026-01-01"
        ],
        "type": "string",
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "triggers_fired": {
        "type": "array",
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      },
      "year": {
        "maximum": 2026,
        "minimum": 2026,
        "type": "number",
        "x-observed-values": [
          2026
        ],
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 3 fixtures @ sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "vectors": 3
        }
      }
    },
    "type": "object"
  },
  "producer": "art-234-test-hoepa-high-cost",
  "x-derivation": {
    "from": "conformance_fixtures",
    "generator": "scripts/gen-output-schema.mjs",
    "vectors": 3
  }
}
