{
  "$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:d7ba34da2e378662fbb05bc23d6aad6b0b4660bbae6f3111e0dd1c471209029b",
  "output_schema": {
    "properties": {
      "effective_date": {
        "enum": [
          "2026-01-01"
        ],
        "type": "string",
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 2 fixtures @ sha256:d7ba34da2e378662fbb05bc23d6aad6b0b4660bbae6f3111e0dd1c471209029b",
          "vectors": 2
        }
      },
      "fr_citation": {
        "enum": [
          "FR 2025-22773 (effective Jan 1, 2026)"
        ],
        "type": "string",
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 2 fixtures @ sha256:d7ba34da2e378662fbb05bc23d6aad6b0b4660bbae6f3111e0dd1c471209029b",
          "vectors": 2
        }
      },
      "headroom": {
        "maximum": 1500,
        "minimum": -500,
        "type": "number",
        "x-observed-values": [
          -500,
          1500
        ],
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 2 fixtures @ sha256:d7ba34da2e378662fbb05bc23d6aad6b0b4660bbae6f3111e0dd1c471209029b",
          "vectors": 2
        }
      },
      "limit": {
        "maximum": 13500,
        "minimum": 2500,
        "type": "number",
        "x-observed-values": [
          2500,
          13500
        ],
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 2 fixtures @ sha256:d7ba34da2e378662fbb05bc23d6aad6b0b4660bbae6f3111e0dd1c471209029b",
          "vectors": 2
        }
      },
      "limit_fixed": {
        "enum": [
          null
        ],
        "type": "null",
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 2 fixtures @ sha256:d7ba34da2e378662fbb05bc23d6aad6b0b4660bbae6f3111e0dd1c471209029b",
          "vectors": 2
        }
      },
      "limit_pct": {
        "maximum": 5,
        "minimum": 3,
        "type": "number",
        "x-observed-values": [
          3,
          5
        ],
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 2 fixtures @ sha256:d7ba34da2e378662fbb05bc23d6aad6b0b4660bbae6f3111e0dd1c471209029b",
          "vectors": 2
        }
      },
      "limit_type": {
        "enum": [
          "pct"
        ],
        "type": "string",
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 2 fixtures @ sha256:d7ba34da2e378662fbb05bc23d6aad6b0b4660bbae6f3111e0dd1c471209029b",
          "vectors": 2
        }
      },
      "loan_amount": {
        "maximum": 450000,
        "minimum": 50000,
        "type": "number",
        "x-observed-values": [
          50000,
          450000
        ],
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 2 fixtures @ sha256:d7ba34da2e378662fbb05bc23d6aad6b0b4660bbae6f3111e0dd1c471209029b",
          "vectors": 2
        }
      },
      "note": {
        "enum": [
          "Thresholds are version-pinned. Run lookup_reg_z_thresholds for year-by-year table. Points-and-fees definition: §1026.32(b)(1). Confirm current thresholds at consumerfinance.gov/rules-policy/final-rules."
        ],
        "type": "string",
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 2 fixtures @ sha256:d7ba34da2e378662fbb05bc23d6aad6b0b4660bbae6f3111e0dd1c471209029b",
          "vectors": 2
        }
      },
      "pass": {
        "enum": [
          false,
          true
        ],
        "type": "boolean",
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 2 fixtures @ sha256:d7ba34da2e378662fbb05bc23d6aad6b0b4660bbae6f3111e0dd1c471209029b",
          "vectors": 2
        }
      },
      "points_and_fees": {
        "maximum": 12000,
        "minimum": 3000,
        "type": "number",
        "x-observed-values": [
          3000,
          12000
        ],
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 2 fixtures @ sha256:d7ba34da2e378662fbb05bc23d6aad6b0b4660bbae6f3111e0dd1c471209029b",
          "vectors": 2
        }
      },
      "regulatory_basis": {
        "enum": [
          "Reg Z §1026.43(e)(3)(ii), QM points-and-fees test"
        ],
        "type": "string",
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 2 fixtures @ sha256:d7ba34da2e378662fbb05bc23d6aad6b0b4660bbae6f3111e0dd1c471209029b",
          "vectors": 2
        }
      },
      "tier_label": {
        "enum": [
          "$27,592 - $82,774.99: 5%",
          ">= $137,958: 3%"
        ],
        "type": "string",
        "x-source": {
          "from": "conformance_fixtures",
          "generator": "scripts/gen-output-schema.mjs",
          "kind": "derived",
          "note": "derived from 2 fixtures @ sha256:d7ba34da2e378662fbb05bc23d6aad6b0b4660bbae6f3111e0dd1c471209029b",
          "vectors": 2
        }
      },
      "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 2 fixtures @ sha256:d7ba34da2e378662fbb05bc23d6aad6b0b4660bbae6f3111e0dd1c471209029b",
          "vectors": 2
        }
      }
    },
    "type": "object"
  },
  "producer": "art-218-qm-points-and-fees",
  "x-derivation": {
    "from": "conformance_fixtures",
    "generator": "scripts/gen-output-schema.mjs",
    "vectors": 2
  }
}
