{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/coveragecat-com/json-schema/coveragecat-com-consumer-homeowners-prefill-request-schema.json",
  "title": "ConsumerHomeownersPrefillRequest",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/coveragecat-com-consumer-openapi.yml#/components/schemas/ConsumerHomeownersPrefillRequest",
  "additionalProperties": false,
  "properties": {
    "credit_consent_pending": {
      "const": true,
      "description": "Must be true. Signals that the user has not yet been shown the review page. Homeowners handoffs collect consumer-report authorization for insurance underwriting on that review turn; umbrella handoffs defer that authorization until the user chooses an offer at `select`.",
      "type": "boolean"
    },
    "field_estimates": {
      "description": "Optional estimate metadata for values that are defensible but not yet directly confirmed by the user. On the initial consumer umbrella handoff, prefer sending only `intake`; add top-level `field_estimates` only when you are certain each `field` already matches a current umbrella review field path.",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "type": "array"
    },
    "intake": {
      "additionalProperties": true,
      "description": "Fullest currently known consumer homeowners application patch assembled from the user's own context before any piecemeal follow-up. The first create call must already identify whether the property is standard homeowners, condo, or landlord coverage.",
      "properties": {
        "home": {
          "description": "Initial product-selection row for the first create call. Send a single object or an array, and make sure the first home row already distinguishes standard homeowners, condo, or landlord coverage.",
          "oneOf": [
            {
              "$ref": "#/$defs/ConsumerHomeownersInitialHome"
            },
            {
              "items": {
                "$ref": "#/$defs/ConsumerHomeownersInitialHome"
              },
              "minItems": 1,
              "type": "array"
            }
          ]
        }
      },
      "required": [
        "home"
      ],
      "type": "object"
    }
  },
  "required": [
    "intake",
    "credit_consent_pending"
  ],
  "type": "object",
  "$defs": {
    "ConsumerHomeownersInitialHome": {
      "additionalProperties": true,
      "anyOf": [
        {
          "description": "Standard homeowners coverage. Send both a non-rental home_ownership and a non-condo property_type.",
          "properties": {
            "home_ownership": {
              "enum": [
                "owned_primary",
                "owned_seasonal",
                "under_construction"
              ],
              "type": "string"
            },
            "property_type": {
              "enum": [
                "single_family",
                "duplex",
                "triplex",
                "quadplex",
                "apartment",
                "townhouse",
                "manufacture_or_mobile"
              ],
              "type": "string"
            }
          },
          "required": [
            "home_ownership",
            "property_type"
          ],
          "type": "object"
        },
        {
          "description": "Condo coverage. Send property_type: condo.",
          "properties": {
            "property_type": {
              "const": "condo",
              "type": "string"
            }
          },
          "required": [
            "property_type"
          ],
          "type": "object"
        },
        {
          "description": "Landlord coverage. Send home_ownership: owned_rental.",
          "properties": {
            "home_ownership": {
              "const": "owned_rental",
              "type": "string"
            }
          },
          "required": [
            "home_ownership"
          ],
          "type": "object"
        },
        {
          "description": "Landlord coverage. A rented rental_status also counts when home_ownership is not yet known.",
          "properties": {
            "rental_status": {
              "enum": [
                "room",
                "attached_unit",
                "detached_unit"
              ],
              "type": "string"
            }
          },
          "required": [
            "rental_status"
          ],
          "type": "object"
        }
      ],
      "description": "Initial homeowners home row. Coverage Cat needs this row to distinguish standard homeowners, condo, or landlord coverage before it can assemble the rest of the application.",
      "type": "object"
    }
  }
}