{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/go-foresee-com/json-schema/go-foresee-com-live-quote-args-schema.json",
  "title": "LiveQuoteArgs",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/go-foresee-com-openapi.json#/components/schemas/LiveQuoteArgs",
  "type": "object",
  "required": [
    "profile",
    "lines",
    "user_authorization"
  ],
  "properties": {
    "profile": {
      "$ref": "#/$defs/QuoteProfile"
    },
    "lines": {
      "type": "object",
      "additionalProperties": true,
      "description": "One key per line to walk. Auto and renters asks are required (same axes as quote_insurance); home takes null — the carrier's own form prices its package. Several keys commission bundled walks."
    },
    "identity": {
      "type": "object",
      "additionalProperties": true,
      "description": "Legal name, dob, street address, email — live submissions only."
    },
    "user_authorization": {
      "type": "string",
      "description": "The user's in-chat go-ahead, verbatim."
    },
    "carriers": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "$defs": {
    "QuoteProfile": {
      "type": "object",
      "additionalProperties": true,
      "description": "ZIP code, age (or dob) and — for auto — each vehicle's year/make/model are required; every other omission becomes a declared assumption reported back under assumptions/tighten_by.",
      "properties": {
        "zip_code": {
          "type": "string",
          "description": "5-digit ZIP. Required."
        },
        "age": {
          "type": "integer",
          "description": "Required, or pass dob."
        },
        "dob": {
          "type": "string",
          "description": "YYYY-MM-DD — accepted alternative to age."
        },
        "city": {
          "type": "string"
        },
        "gender": {
          "type": "string"
        },
        "marital_status": {
          "type": "string"
        },
        "education": {
          "type": "string"
        },
        "employment_status": {
          "type": "string"
        },
        "occupation": {
          "type": "string"
        },
        "credit_range": {
          "type": "string",
          "description": "Used only where state law permits credit in rating."
        },
        "home_ownership_status": {
          "type": "string",
          "description": "rent / own"
        },
        "residence_type": {
          "type": "string"
        },
        "military_affiliation": {
          "type": "string",
          "description": "active / veteran / family / none. USAA is military-affiliated households only."
        },
        "memberships": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "effective_date": {
          "type": "string"
        },
        "prior_insurance": {
          "type": "object",
          "additionalProperties": true,
          "description": "Current/prior insurance for the same line: carrier, limits, tenure."
        },
        "companion_policies": {
          "type": "array",
          "description": "Policies the household already holds, each with the carrier that writes it. A carrier's multi-policy discount applies only to a policy it writes.",
          "items": {
            "type": "object",
            "additionalProperties": true,
            "required": [
              "line"
            ],
            "properties": {
              "line": {
                "type": "string",
                "description": "What the policy insures: home, renters, condo, auto, life, umbrella…"
              },
              "carrier": {
                "type": "string",
                "description": "Who writes it, e.g. \"State Farm\", \"AAA\". Without it no carrier's discount applies."
              },
              "in_force": {
                "type": "boolean",
                "description": "False for a policy that has lapsed or been cancelled."
              }
            }
          }
        },
        "auto": {
          "type": "object",
          "additionalProperties": true,
          "description": "Auto block: vehicles[] (year/make/model required) and drivers[].",
          "properties": {
            "vehicles": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "year": {
                    "type": "integer"
                  },
                  "make": {
                    "type": "string"
                  },
                  "model": {
                    "type": "string"
                  },
                  "ownership": {
                    "type": "string"
                  },
                  "annual_mileage": {
                    "type": "integer"
                  },
                  "primary_use": {
                    "type": "string"
                  },
                  "garaging_zip": {
                    "type": "string"
                  }
                }
              }
            },
            "drivers": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "relation": {
                    "type": "string",
                    "description": "self for the first."
                  },
                  "dob": {
                    "type": "string"
                  },
                  "years_licensed": {
                    "type": "integer"
                  },
                  "accidents": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "on"
                      ]
                    },
                    "description": "Empty list = clean record."
                  },
                  "violations": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "on",
                        "kind"
                      ]
                    }
                  },
                  "sr22_required": {
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "property": {
          "type": "object",
          "additionalProperties": true,
          "description": "Home/renters block.",
          "properties": {
            "year_built": {
              "type": "integer"
            },
            "construction_type": {
              "type": "string"
            },
            "roof_type": {
              "type": "string"
            },
            "square_feet": {
              "type": "integer"
            },
            "protection_class": {
              "type": "string"
            },
            "replacement_cost": {
              "type": "integer"
            },
            "devices": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "losses": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          }
        }
      }
    }
  }
}