Skip to main content
Glama

Server Details

Let AI assistants shop for home and auto insurance: compare quote estimates across every carrier.

Ownership verified
Status
Healthy
Uptime
100.0% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
Foresee-Tech/foresee
GitHub Stars
0

TDQS

A4.3/5.0

Scored across 2 tools

Disambiguation4/5

Both tools deliver insurance quotes, but live_carrier_quotes explicitly commissions live agent walks on carrier sites while quote_insurance returns instant estimates. The descriptions clarify the sequence (instant first, live as follow-up), though an agent might still initially confuse which tool to use for firm numbers.

Naming Consistency3/5

Both names use snake_case, but quote_insurance follows a verb_noun pattern while live_carrier_quotes is an adjective_noun phrase. The styles are readable but not uniform, creating a minor inconsistency in the naming convention.

Tool Count3/5

Two tools is thin for a quoting service, but each tool is extremely broad and internally complex, handling many sub-actions (commissioning, collecting, refining, consent). Borderline: the count feels low even though the depth justifies some consolidation.

Completeness4/5

The set covers instant and live quoting across auto, home, and renters, with refinement via re-calls and clear handling of unsupported lines. Binding/payment are out of scope by design, but a tool to list supported carriers/states or manage saved profiles could fill minor gaps.

Available Tools

2 tools
live_carrier_quotesLive carrier quotes
DestructiveIdempotent
Inspect

Purpose: confirm quote estimates on the carriers' own quote sites, via Foresee agents completing their real quote flows.

    IDEMPOTENT, keyed on the profile: the first call commissions the
    walks; calling again with the same profile collects progress and
    results instead of re-submitting anything — whatever the ask. A
    profile that has already been walked returns those results (the
    carriers are never asked twice): the envelope's
    ``coverage_selection`` names the ask the walk typed, and each quote
    carries the carrier's other recorded coverage options as
    ``variants``, so a new ask reads the same run. So call once to
    start, then re-call after a few minutes to collect; agents still
    working report their stage.

    Ask ONCE, before the first call: the consent disclosure below, the
    identity fields, and the questions listed at the end of this
    description under EVERY LINE and under the line being walked — all
    in one message, so the first commissioning call walks every carrier. A call made before
    consent submits nothing and answers ``authorization_required`` with
    the profile's ``needs``, for when you have not asked yet.

    No sign-in is required. The one hard requirement is the user's own
    consent, captured in-band: BEFORE the commissioning call, you MUST
    tell the user, plainly: Foresee will submit their details to the
    named carriers; the carriers may obtain their credit-based insurance
    score (a soft pull, with no impact on your credit score); and the
    carriers may contact them by email or phone. Then get their explicit
    go-ahead and pass their affirmation VERBATIM as ``user_authorization``
    (e.g. "yes, go ahead"). The affirmation is stored as the durable
    consent record for the dispatch; without one the call is refused with
    ``authorization_required``. Foresee only collects quotes; it does
    not take payment or bind insurance.

    Collect the ``identity`` fields in chat. Nothing is filled in from
    anywhere else: what the walks type is what the call states.

    A ``missing_facts`` response is normal: carrier forms insist on facts
    (body style, purchase date, age first licensed…) that Foresee will not
    invent. Each ``needs`` entry carries the carrier (``scope``), the
    facts in the walk's own words (``need``), and ``fields[]`` — per
    fact, the ``ask`` beside the exact schema path to pass the answer
    under (``field``, e.g. ``auto.vehicles[].purchase_date``;
    ``identity.…`` paths go on ``identity``). Ask the user for exactly
    those facts, then call again with the answers merged in at those
    paths. A fact with no ``field`` has no profile home yet — relay
    that carrier's ask as unavailable rather than guessing a key. While
    any carrier waits on a fact the user can answer, nothing is
    submitted: the carriers already able to go are listed under
    ``ready`` and held, so every carrier is walked together. Only when
    the user cannot or will not answer, re-call with
    ``dispatch_ready_only=true`` to walk the ready ones now; that
    receipt is PARTIAL — follow its ``recover`` block: re-call with the
    new facts merged AND ``carriers`` set to exactly
    ``recover.carriers`` — a changed profile is a new dispatch, and an
    unscoped re-call would re-submit the already-walked carriers too.

    Unasserted MINOR facts are not asked: a form field that is really a
    claim nobody made (an anti-theft device, a defensive-driving course,
    years licensed abroad) is answered with the declared no-claim value —
    never a discount claim — and every one comes back in ``assumptions``
    (``field`` + the ``assumed`` value submitted). Relay them with the
    results; if the user corrects one, re-call with the real value at
    that path.

    ``carriers``: OMIT it to walk every carrier walked for the line in
    the user's state — that is the default and the goal. Pass it only
    when the user asks to limit the walk: most carriers with an estimate
    have no walk, so a shortlist copied from quote_insurance results is
    refused with ``carriers_not_walked`` naming the ``walkable`` set to
    choose from. Those
    carriers keep their estimates; the live run adds real quotes from
    every walked carrier.

    ``lines`` names WHICH line to walk, exactly one per call (a fan-out
    drives one form family): ``{"auto": {...the ask...}}``,
    ``{"home": null}``, or ``{"renters": {"coverage_c": 30000,
    "coverage_e": 100000, "coverage_f": 1000, "deductible": 500}}``. An
    AUTO walk's ask is REQUIRED — the limits and deductibles the agents
    ask the carriers for, as actual numbers (`bi` "100/300", `pd` 100,
    `coll_deductible` 500, `comp_deductible` 500, the same four axes as
    quote_insurance); without it the tool answers with the
    selection-required message; ask the user, then call again. A HOME
    walk takes NO ask — the carrier's own form prices its package
    (dwelling amount from its replacement-cost estimate) and the agents
    report what it chose. A RENTERS walk requires its four axes as
    actual dollars — ``coverage_c`` (personal-property/contents),
    ``coverage_e`` (personal liability), ``coverage_f`` (guest medical)
    and ``deductible`` — the agents type the user's numbers on the form
    instead of accepting its defaults, and Foresee never invents them.

    Quotes come back with evidence. ``quote.premium`` is VERBATIM as
    the carrier's page printed it, and ``term_months`` says what it
    covers — a 6-month figure is not a monthly one. When term_months
    is known, present the monthly equivalent (premium ÷ term_months)
    so carriers compare on one basis, the page's own figure beside it;
    without it, relay the printed premium and say the monthly
    equivalent is unknown. A carrier may
    also decline the risk — a real answer to relay, not an error. Every
    carrier without a quote says why in ``detail``: ``declined`` is the
    carrier's own answer; ``missing_facts`` lists under ``fields`` (each
    an ``ask`` and its ``field`` path) what its form wanted — ask the
    user, then re-call with the answers merged and ``carriers`` set to
    that carrier; ``failed`` and ``not_quoted`` mean Foresee couldn't get
    that quote — say so, never that the carrier turned the user down.
    ``skipped`` and ``not_dispatched`` name the carriers NOT walked,
    each with the reason — relay those too; a carrier never silently
    vanishes.

What the carriers' forms ask. In ONE message, together with the consent disclosure and BEFORE the first call, ask the user the EVERY LINE questions plus the questions for each line they want priced, then omit carriers to walk every carrier in the user's state. Each fact names the path its answer goes under.

EVERY LINE:

  • identity: legal name, date of birth, street address, email and phone (identity)

  • household: the spouse of a married applicant (auto.drivers[])

AUTO ONLY:

  • household: gender (gender); marital status (marital_status)

  • work: occupation (occupation)

  • residence: whether the home is owned or rented (home_ownership_status); how long at this address (months_at_residence)

  • each car: whether the vehicle is owned, financed or leased (auto.vehicles[].ownership); when the vehicle was bought (auto.vehicles[].purchase_date); whether the vehicle was new when bought (auto.vehicles[].bought_new); what the vehicle cost new (auto.vehicles[].cost)

  • how each car is used: what the vehicle is used for (auto.vehicles[].primary_use); annual mileage (auto.vehicles[].annual_mileage)

  • each driver: driver's licence number (auto.drivers[].drivers_license_number); age first licensed (auto.drivers[].age_first_licensed); violation history (auto.drivers[].violations); loss history (auto.drivers[].accidents)

  • current insurance: whether there is insurance now (prior_insurance.insured); prior carrier (prior_insurance.carrier); when the prior policy ran (prior_insurance.since); the bodily injury limits carried now (prior_insurance.limits); a lapse in coverage (prior_insurance.lapse)

HOME ONLY:

  • the home: when the property was bought (property.purchased); what the property is used for (property.occupancy); how many people live there (property.household)

ParametersJSON Schema
NameRequiredDescriptionDefault
linesNo
profileYes
carriersNo
identityNo
user_authorizationNo
dispatch_ready_onlyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
errorNo
needsNo
readyNo
agentsNo
detailNo
statusNo
recoverNo
skippedNo
assumptionsNo
example_argumentsNo
coverage_selectionNo
authorization_recordedNo
quote_insuranceInstant insurance quote estimates
Read-only
Inspect

Purpose: generate instant, itemized quote estimates from the carriers Foresee supports, across the lines and states Foresee currently serves, in one call — the LIVE TODAY line at the end of this description names today's set.

`lines` is REQUIRED and is ONE map: each key names a line to price (e.g.
"auto", "renters", "home" — plain words are fine), each value is that
line's coverage ask as actual numbers. A line Foresee doesn't quote in
the user's state comes back under `skipped`: `lines` names each one and
`message` is one sentence, written to be relayed to the user as-is,
naming what Foresee does quote in that state. For auto
the ask has four axes — `bi` (bodily-injury liability, per-person/
per-accident in $000s, e.g. "100/300"), `pd` (property-damage liability in
$000s, e.g. 100), `coll_deductible` (collision deductible in dollars, e.g.
500) and `comp_deductible` (comprehensive deductible in dollars, e.g.
500); `um` and `medpay` are optional. A renters ask has four axes —
`coverage_c` (personal-property/contents limit in dollars, e.g. 30000),
`coverage_e` (personal liability in dollars, e.g. 100000), `coverage_f`
(guest medical in dollars, e.g. 1000) and `deductible` (all-perils, in
dollars, e.g. 500); `coverage_d` is optional. A home ask: `coverage_a`
(the dwelling's replacement cost in dollars), `coverage_e` (e.g. 300000),
`coverage_f` (e.g. 1000) and `aop_deductible` (all-other-perils
deductible in dollars, e.g. 1000). There are no named coverage levels
and the server never defaults: pass exact numbers. An omitted OPTIONAL
axis (`um`, `medpay`, `coverage_d`) keeps each carrier's own
default — the quote's per-coverage lines show what was rated. Any
numbers at or above the state's legal minimum work as the ask (an auto
`bi`/`pd` below it prices nothing — no carrier may sell that policy — and
comes back under `coverage_required` naming the minimum); each carrier's
`price_ladder` prices every other rung, so a starting
selection is easy to refine after the fact. An incomplete ask on a
live line prices nothing and answers with `coverage_required` naming that
line's own axes; an axis supplied with a value no carrier offers (`bi`
"banana", a negative deductible) is refused the same way, naming the bad
value and the format the axis takes. Each supported carrier is priced at
the selection given; a carrier that doesn't offer an asked rung is priced
at its nearest offered one and says so: its entry carries
`rated_vs_asked` (per axis: `asked`, `rated`, and `coverage` "less"/"more"
than asked; the dense text puts it on the `C` row as `rated`). That price is NOT
like-for-like — state the rated limits next to it every time you show it
(e.g. "$255/mo — 30/60 BI / $25k PD, the most this carrier offers, not
the 100/300 / $100k you asked for"), and never let it headline or anchor
a cheapest/spread claim without saying so. A carrier Foresee can't price
appears in `failures` with the reason, as does one Foresee can't price
for a line it was asked on (no program served there yet, or the carrier
doesn't sell that line in the state) — a carrier never silently vanishes
from a line's results. Priced results come back per line under
`by_line`.

Profile requirements: ZIP code, age (or dob) and — for auto — each
vehicle's year/make/model are REQUIRED; they have no server-side
fallback. A missing or mistyped one errors at the schema with guidance;
a value that fits the schema but cannot rate ("not-a-zip", a negative
age) comes back in `profile_required` naming it, with guidance on what
the field takes. Use the profile schema's exact field names: a key the
schema doesn't name is carried but never rated. A complete call — a
25-year-old in Oakland with a 2021 Civic, a January 2025 speeding ticket
and a 2023 at-fault accident, asking for 100/300 BI, $100k PD and $500
collision/comprehensive deductibles:
{"profile": {"zip_code": "94621", "age": 25, "auto": {"drivers": [{"violations": [{"on": "2025-01", "kind": "speeding"}], "accidents": [{"on": "2023-06-15", "at_fault": true, "amount": 4200}]}], "vehicles": [{"year": 2021, "make": "Honda", "model": "Civic"}]}}, "lines": {"auto": {"bi": "100/300", "pd": 100, "coll_deductible": 500, "comp_deductible": 500}}}
Every violation needs `kind` and `on`, every accident `on`; an
incomplete entry is refused naming its path, never assumed away.

Each carrier returns a **point estimate**
(`monthly`) plus a `confidence_interval` that reflects only what's genuinely
unresolvable (irreducible), NOT missing profile fields. A field the caller
omits is filled with ONE declared value and reported in `assumptions` /
`tighten_by` (the reducible "tell us X and we sharpen" gap) — the response
is built to be presented early and refined, never widened into
a vague range. Each entry's `field` is the exact profile path to send
the user's real answer under (e.g. `auto.drivers[].violations`), and
`tighten_by` lists those same paths. The one exception is
`incident_details`: it is answered by completing the incident entries
already sent (dates, fault, BI split), not under a fresh key.

Each carrier's `quote` carries every sub-coverage line (BI/PD/collision/
comprehensive/UM…) with its monthly price, at the selection you passed (echoed
as `coverage_selection`). Most carriers also carry a `price_ladder`: for each
coverage lever of the line (auto: BI limit, PD limit, collision/comprehensive
deductible; renters: deductible and the C/E/F limits; home: AOP deductible
and the A/E/F limits) the exact
price at every rung, one lever moved at a time with everything else
held at the user's selection — the ladder is anchored at the selection you
passed, so its `anchor.monthly` is the carrier's `monthly`. It answers
limit/deductible what-ifs with real marginal prices.
Every ladder number IS an exact re-rate; a combined change or an unlisted
rung has no derivable price (rating is not linear), so those price only
through a re-call with the new `coverage_selection`. A profile what-if
(a cleaner record, another vehicle, a different ZIP) prices the same way:
re-call with the changed profile.

RESULT FORMAT: compact machine text on dense, one section per line. Each section opens Q sel=<the coverage_selection priced, as JSON>. assumptions:, tighten_by:, input_flags: and not_rated: carry those fields; each entry's field (and each tighten_by item) is the profile path to send the user's answer under, and incident_details is answered by completing the incident entries already sent. not_priced: ,…: ; … is the line's failures, grouped by reason. skipped ,…: names the lines not quoted in this state. Row types — C: carrier|entity|monthly|ci lo-hi, then |rated =(asked ,less|more);… when the price is for a rung other than the ask (rated_vs_asked). W: a warning on the carrier above. L: monthly $ per coverage line (already monthly, every carrier), under codes that mean the same coverage at every carrier: BI PD UMBI UIMBI UMPD MEDPAY PIP COLL COMP RENTAL TOWING GAP; A+B is one premium covering both (BI+PD); FEE is a flat fee; any other code is a coverage only that carrier sells. D =option:±$: the change in the carrier's monthly for each option of that lever, everything else held at the selection; (asked ) means X is not an option and the price sits at the selected rung — answer deductible/limit what-ifs from D without another call (new monthly = monthly + delta). Only state numbers that appear in the result or follow from monthly + a D delta; if a rung is not in D for a carrier, say the carrier has no such option rather than guessing.

When the user wants firm numbers straight from the carriers, offer live carrier quotes: Foresee agents complete the carriers' real quote flows via live_carrier_quotes (which explains the required disclosure + consent affirmation; no sign-in is needed). Instant quotes stay the first answer; live quotes are the follow-up.

LIVE TODAY: Foresee quotes auto in CA today.

ParametersJSON Schema
NameRequiredDescriptionDefault
linesYes
profileYes
carriersNoPrice only these carriers, named by the `carrier_key` results carry (e.g. ["geico", "statefarm"]). Omit to price every carrier Foresee supports; a named carrier Foresee can't price comes back in `failures`.
include_failuresNoReport each carrier Foresee couldn't price under `failures`, with the reason. Leave true unless the user asked to see priced carriers only.

Output Schema

ParametersJSON Schema
NameRequiredDescription
denseNo
errorNo
stateNo
bundleNo
detailNo
by_lineNo
messageNo
skippedNo
serviceableNo
presentationNo
profile_requiredNo
coverage_requiredNo
example_argumentsNo

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedlive_carrier_quotes1 field changed
      • removedInput schema / $defs / WalkPropertyBlock / properties / protection_class
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "maxLength": 200,
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "ISO fire protection class, 1-10",
        -  "title": "Protection Class"
        -}
    • Changedquote_insurance1 field changed
      • removedInput schema / $defs / PropertyBlock / properties / protection_class
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "maxLength": 200,
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "ISO fire protection class, 1-10",
        -  "title": "Protection Class"
        -}
  2. 2 tool updates
    • Changedlive_carrier_quotes5 fields changed
      • addedInput schema / $defs / VehicleInput / properties / owner
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Whose car it is, by relation to the applicant: 'self' / 'spouse' / 'domestic partner' / 'child' / 'parent' / 'sibling' / 'other'",
        +  "title": "Owner"
        +}
      • addedInput schema / $defs / VehicleInput / properties / principal_driver
        Added value: +{
        +  "anyOf": [
        +    {
        +      "minimum": 1,
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Who mainly drives it: the driver's place in auto.drivers, 1 = first listed",
        +  "title": "Principal Driver"
        +}
      • addedInput schema / $defs / WalkDriverInput / properties / full_time_student
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Enrolled full time in high school, college or university",
        +  "title": "Full Time Student"
        +}
      • addedInput schema / $defs / WalkDriverInput / properties / good_student
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Grades that earn a good-student discount (usually a B average or better)",
        +  "title": "Good Student"
        +}
      • addedInput schema / $defs / WalkDriverInput / properties / student_away
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "A student living away at school, without any of the policy's cars",
        +  "title": "Student Away"
        +}
    • Changedquote_insurance5 fields changed
      • addedInput schema / $defs / DriverInput / properties / full_time_student
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Enrolled full time in high school, college or university",
        +  "title": "Full Time Student"
        +}
      • addedInput schema / $defs / DriverInput / properties / good_student
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Grades that earn a good-student discount (usually a B average or better)",
        +  "title": "Good Student"
        +}
      • addedInput schema / $defs / DriverInput / properties / student_away
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "A student living away at school, without any of the policy's cars",
        +  "title": "Student Away"
        +}
      • addedInput schema / $defs / VehicleInput / properties / owner
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Whose car it is, by relation to the applicant: 'self' / 'spouse' / 'domestic partner' / 'child' / 'parent' / 'sibling' / 'other'",
        +  "title": "Owner"
        +}
      • addedInput schema / $defs / VehicleInput / properties / principal_driver
        Added value: +{
        +  "anyOf": [
        +    {
        +      "minimum": 1,
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Who mainly drives it: the driver's place in auto.drivers, 1 = first listed",
        +  "title": "Principal Driver"
        +}
  3. 2 tool updates
    • Changedlive_carrier_quotes12 fields changed
      • addedInput schema / $defs / LiveQuoteProfile / anyOf
        Added value: +[
        +  {
        +    "required": [
        +      "age"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "dob"
        +    ]
        +  }
        +]
      • changedInput schema / $defs / LiveQuoteProfile / properties / age / anyOf
        Previous value: -[
        -  {
        -    "type": "integer"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maximum": 120,
        +    "minimum": 16,
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / $defs / LiveQuoteProfile / properties / dob / anyOf
        Removed value: -[
        -  {
        -    "format": "date",
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedInput schema / $defs / LiveQuoteProfile / properties / dob / format
        Added value: +"date"
      • addedInput schema / $defs / LiveQuoteProfile / properties / dob / type
        Added value: +"string"
      • changedInput schema / $defs / LiveQuoteProfile / properties / property / anyOf
        Previous value: -[
        -  {
        -    "$ref": "#/$defs/PropertyBlock"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "$ref": "#/$defs/WalkPropertyBlock"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / $defs / PropertyBlock
        Removed value: -{
        -  "additionalProperties": true,
        -  "description": "The dwelling, for home and renters.",
        -  "properties": {
        -    "bathrooms": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "title": "Bathrooms"
        -    },
        -    "construction_type": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "'frame' / 'masonry' / 'masonry veneer'…",
        -      "title": "Construction Type"
        -    },
        -    "devices": {
        -      "anyOf": [
        -        {
        -          "items": {
        -            "maxLength": 200,
        -            "type": "string"
        -          },
        -          "type": "array"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Protective devices in the home: 'smoke alarm', 'deadbolts', 'fire extinguisher', 'central burglar alarm', 'sprinklers'… ['None'] means asked-and-none; omit the field if never asked",
        -      "title": "Devices"
        -    },
        -    "foundation": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "'slab' / 'raised' / 'basement' / 'crawlspace'…",
        -      "title": "Foundation"
        -    },
        -    "garage": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "'attached 2 car' / 'detached 1 car' / 'carport' / 'none'…",
        -      "title": "Garage"
        -    },
        -    "household": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Number of people living in the home",
        -      "title": "Household"
        -    },
        -    "losses": {
        -      "anyOf": [
        -        {
        -          "items": {
        -            "$ref": "#/$defs/LossInput"
        -          },
        -          "type": "array"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Prior property losses, each dated. [] means none; omit if unknown",
        -      "title": "Losses"
        -    },
        -    "miles_to_fire_station": {
        -      "anyOf": [
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "title": "Miles To Fire Station"
        -    },
        -    "occupancy": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "'owner occupied' / 'tenant occupied' / 'seasonal' / 'vacant'",
        -      "title": "Occupancy"
        -    },
        -    "protection_class": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "ISO fire protection class, 1-10",
        -      "title": "Protection Class"
        -    },
        -    "purchased": {
        -      "anyOf": [
        -        {
        -          "pattern": "^\\d{4}(?:-\\d{2}){0,2}$",
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "When the home was bought: YYYY, YYYY-MM or YYYY-MM-DD",
        -      "title": "Purchased"
        -    },
        -    "renovation_permit_year": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Year of the last permitted plumbing, electrical, heating or roof work",
        -      "title": "Renovation Permit Year"
        -    },
        -    "replacement_cost": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Dwelling replacement cost estimate, dollars",
        -      "title": "Replacement Cost"
        -    },
        -    "roof_layers": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "title": "Roof Layers"
        -    },
        -    "roof_type": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "'composition shingle' / 'tile' / 'metal'…",
        -      "title": "Roof Type"
        -    },
        -    "roof_year": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Year the roof was last replaced",
        -      "title": "Roof Year"
        -    },
        -    "seismic_retrofit": {
        -      "anyOf": [
        -        {
        -          "type": "boolean"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Whether the home has been seismically retrofitted",
        -      "title": "Seismic Retrofit"
        -    },
        -    "square_feet": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "title": "Square Feet"
        -    },
        -    "stories": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "title": "Stories"
        -    },
        -    "swimming_pool": {
        -      "anyOf": [
        -        {
        -          "type": "boolean"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "title": "Swimming Pool"
        -    },
        -    "units": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Number of families the building holds",
        -      "title": "Units"
        -    },
        -    "year_built": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "title": "Year Built"
        -    }
        -  },
        -  "title": "PropertyBlock",
        -  "type": "object"
        -}
      • removedInput schema / $defs / WalkDriverInput / properties / dob / anyOf
        Removed value: -[
        -  {
        -    "format": "date",
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedInput schema / $defs / WalkDriverInput / properties / dob / format
        Added value: +"date"
      • addedInput schema / $defs / WalkDriverInput / properties / dob / type
        Added value: +"string"
      • addedInput schema / $defs / WalkPropertyBlock
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "The dwelling, for home and renters.",
        +  "properties": {
        +    "bathrooms": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Bathrooms"
        +    },
        +    "construction_type": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "'frame' / 'masonry' / 'masonry veneer'…",
        +      "title": "Construction Type"
        +    },
        +    "devices": {
        +      "anyOf": [
        +        {
        +          "items": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Protective devices in the home: 'smoke alarm', 'deadbolts', 'fire extinguisher', 'central burglar alarm', 'sprinklers'… ['None'] means asked-and-none; omit the field if never asked",
        +      "title": "Devices"
        +    },
        +    "employees": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Anyone employed at the property (nanny, housekeeper…)",
        +      "title": "Employees"
        +    },
        +    "foundation": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "'slab' / 'raised' / 'basement' / 'crawlspace'…",
        +      "title": "Foundation"
        +    },
        +    "garage": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "'attached 2 car' / 'detached 1 car' / 'carport' / 'none'…",
        +      "title": "Garage"
        +    },
        +    "hoa": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "In a homeowners association",
        +      "title": "Hoa"
        +    },
        +    "home_sharing": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Rented out short-term (Airbnb, VRBO…)",
        +      "title": "Home Sharing"
        +    },
        +    "household": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Number of people living in the home",
        +      "title": "Household"
        +    },
        +    "hydrant_feet": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Distance to the nearest fire hydrant, feet",
        +      "title": "Hydrant Feet"
        +    },
        +    "in_trust": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "The home is held in a trust",
        +      "title": "In Trust"
        +    },
        +    "losses": {
        +      "anyOf": [
        +        {
        +          "items": {
        +            "$ref": "#/$defs/LossInput"
        +          },
        +          "type": "array"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Prior property losses, each dated. [] means none; omit if unknown",
        +      "title": "Losses"
        +    },
        +    "miles_to_fire_station": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Miles To Fire Station"
        +    },
        +    "occupancy": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "'owner occupied' / 'tenant occupied' / 'seasonal' / 'vacant'",
        +      "title": "Occupancy"
        +    },
        +    "pets": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Pets"
        +    },
        +    "protection_class": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "ISO fire protection class, 1-10",
        +      "title": "Protection Class"
        +    },
        +    "purchased": {
        +      "anyOf": [
        +        {
        +          "pattern": "^\\d{4}(?:-\\d{2}){0,2}$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "When the home was bought: YYYY, YYYY-MM or YYYY-MM-DD",
        +      "title": "Purchased"
        +    },
        +    "renovation_permit_year": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Year of the last permitted plumbing, electrical, heating or roof work",
        +      "title": "Renovation Permit Year"
        +    },
        +    "replacement_cost": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Dwelling replacement cost estimate, dollars",
        +      "title": "Replacement Cost"
        +    },
        +    "roof_layers": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Roof Layers"
        +    },
        +    "roof_type": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "'composition shingle' / 'tile' / 'metal'…",
        +      "title": "Roof Type"
        +    },
        +    "roof_year": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Year the roof was last replaced",
        +      "title": "Roof Year"
        +    },
        +    "seismic_retrofit": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Whether the home has been seismically retrofitted",
        +      "title": "Seismic Retrofit"
        +    },
        +    "solar_panels": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Solar Panels"
        +    },
        +    "square_feet": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Square Feet"
        +    },
        +    "stories": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Stories"
        +    },
        +    "swimming_pool": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Swimming Pool"
        +    },
        +    "units": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Number of families the building holds",
        +      "title": "Units"
        +    },
        +    "year_built": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Year Built"
        +    }
        +  },
        +  "title": "WalkPropertyBlock",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / AgentStatusSummary / properties / fields
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "additionalProperties": {
        +          "type": "string"
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Fields"
        +}
    • Changedquote_insurance8 fields changed
      • removedInput schema / $defs / DriverInput / properties / dob / anyOf
        Removed value: -[
        -  {
        -    "format": "date",
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedInput schema / $defs / DriverInput / properties / dob / format
        Added value: +"date"
      • addedInput schema / $defs / DriverInput / properties / dob / type
        Added value: +"string"
      • addedInput schema / $defs / QuoteProfile / anyOf
        Added value: +[
        +  {
        +    "required": [
        +      "age"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "dob"
        +    ]
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / age / anyOf
        Previous value: -[
        -  {
        -    "type": "integer"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maximum": 120,
        +    "minimum": 16,
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / $defs / QuoteProfile / properties / dob / anyOf
        Removed value: -[
        -  {
        -    "format": "date",
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedInput schema / $defs / QuoteProfile / properties / dob / format
        Added value: +"date"
      • addedInput schema / $defs / QuoteProfile / properties / dob / type
        Added value: +"string"
  4. 1 tool update
    • Changedlive_carrier_quotes3 fields changed
      • addedInput schema / $defs / WalkDriverInput / properties / military_affiliation
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "'active' / 'veteran' / 'family' / 'none'",
        +  "title": "Military Affiliation"
        +}
      • addedInput schema / properties / dispatch_ready_only
        Added value: +{
        +  "default": false,
        +  "title": "Dispatch Ready Only",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / ready
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Ready"
        +}
  5. 1 tool update
    • Changedquote_insurance8 fields changed
      • addedInput schema / properties / carriers / description
        Added value: +"Price only these carriers, named by the `carrier_key` results carry (e.g. [\"geico\", \"statefarm\"]). Omit to price every carrier Foresee supports; a named carrier Foresee can't price comes back in `failures`."
      • addedInput schema / properties / include_failures / description
        Added value: +"Report each carrier Foresee couldn't price under `failures`, with the reason. Leave true unless the user asked to see priced carriers only."
      • removedInput schema / properties / include_partial
        Removed value: -{
        -  "default": false,
        -  "title": "Include Partial",
        -  "type": "boolean"
        -}
      • addedInput schema / properties / lines / $ref
        Added value: +"#/$defs/LinesInput"
      • removedInput schema / properties / lines / anyOf
        Removed value: -[
        -  {
        -    "$ref": "#/$defs/LinesInput"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / lines / default
        Removed value: -null
      • addedInput schema / properties / lines / type
        Added value: +"object"
      • changedInput schema / required
        Previous value: -[
        -  "profile"
        -]New value: +[
        +  "profile",
        +  "lines"
        +]
  6. 2 tool updates
    • Changedlive_carrier_quotes61 fields changed
      • removedInput schema / $defs / AccidentInput / description
        Removed value: -"One accident, dated, on the driver who had it."
      • changedInput schema / $defs / AccidentInput / properties / amount / description
        Previous value: -"Total damage paid out in dollars, if known"New value: +"Damage paid out, dollars"
      • removedInput schema / $defs / AccidentInput / properties / at_fault / description
        Removed value: -"Whether this driver was at fault"
      • changedInput schema / $defs / AccidentInput / properties / on / description
        Previous value: -"When it happened — ISO 8601, reduced precision welcome (\"2023\")."New value: +"When it happened: YYYY, YYYY-MM or YYYY-MM-DD"
      • addedInput schema / $defs / AccidentInput / properties / on / pattern
        Added value: +"^\\d{4}(?:-\\d{2}){0,2}$"
      • changedInput schema / $defs / ApplicantIdentity / description
        Previous value: -"The real applicant's identifying details — required for a live\ncarrier submission, never for instant quotes. No SSN: it is\nstructurally rejected everywhere in this system and no carrier flow\nrequires one to quote. A driver's license number is identity too,\nbut it is per-driver, so it never rides here: every rated driver's\nnumber, the applicant's included, goes on their own\n``auto.drivers[]`` entry — and only when a carrier's ``needs``\nentry asks for it (some carrier forms insist on one before\nquoting); never volunteer it."New value: +"The applicant's name, date of birth, address and contact details."
      • removedInput schema / $defs / ApplicantIdentity / properties / city / description
        Removed value: -"City"
      • changedInput schema / $defs / ApplicantIdentity / properties / dob / description
        Previous value: -"Date of birth, YYYY-MM-DD"New value: +"YYYY-MM-DD"
      • addedInput schema / $defs / ApplicantIdentity / properties / dob / format
        Added value: +"date"
      • removedInput schema / $defs / ApplicantIdentity / properties / email / description
        Removed value: -"Email address — carriers send the quote here"
      • removedInput schema / $defs / ApplicantIdentity / properties / first_name / description
        Removed value: -"Legal first name"
      • removedInput schema / $defs / ApplicantIdentity / properties / last_name / description
        Removed value: -"Legal last name"
      • removedInput schema / $defs / ApplicantIdentity / properties / phone / description
        Removed value: -"Phone number, if the user shares one"
      • removedInput schema / $defs / ApplicantIdentity / properties / street / description
        Removed value: -"Street address (line 1)"
      • removedInput schema / $defs / ApplicantIdentity / properties / unit / description
        Removed value: -"Apartment/unit number (address line 2), if any"
      • changedInput schema / $defs / ApplicantIdentity / properties / zip_code / description
        Previous value: -"5-digit ZIP, if it differs from the profile's"New value: +"Only when it differs from the profile's"
      • addedInput schema / $defs / AutoAsk
        Added value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "bi": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Bodily-injury liability limit, per-person/per-accident in $000s, e.g. \"100/300\"",
        +      "title": "Bi"
        +    },
        +    "coll_deductible": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Collision deductible in dollars, e.g. 500",
        +      "title": "Coll Deductible"
        +    },
        +    "comp_deductible": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Comprehensive deductible in dollars, e.g. 500",
        +      "title": "Comp Deductible"
        +    },
        +    "medpay": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Medical-payments limit in dollars, e.g. 5000",
        +      "title": "Medpay"
        +    },
        +    "pd": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Property-damage liability limit in $000s, e.g. 100",
        +      "title": "Pd"
        +    },
        +    "um": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Uninsured/underinsured-motorist BI limit in $000s, e.g. \"100/300\"",
        +      "title": "Um"
        +    }
        +  },
        +  "title": "AutoAsk",
        +  "type": "object"
        +}
      • removedInput schema / $defs / AutoBlock
        Removed value: -{
        -  "additionalProperties": true,
        -  "description": "The auto line's facts: who drives, and what. Omit the whole block for a\nhousehold that isn't asking about a car — nothing about a vehicle is ever\nassumed for a profile without one.",
        -  "properties": {
        -    "drivers": {
        -      "anyOf": [
        -        {
        -          "items": {
        -            "$ref": "#/$defs/DriverInput"
        -          },
        -          "type": "array"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "title": "Drivers"
        -    },
        -    "vehicles": {
        -      "anyOf": [
        -        {
        -          "items": {
        -            "$ref": "#/$defs/VehicleInput"
        -          },
        -          "type": "array"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "title": "Vehicles"
        -    }
        -  },
        -  "title": "AutoBlock",
        -  "type": "object"
        -}
      • removedInput schema / $defs / CoverageSelectionInput
        Removed value: -{
        -  "additionalProperties": true,
        -  "description": "The coverage to price, as actual numbers on named axes — the value of\neach entry in the `lines` map. Each line reads only its own axes; the map\nkey says which apply.",
        -  "properties": {
        -    "aop_deductible": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "HOME: all-other-perils deductible in dollars, e.g. 1000",
        -      "title": "Aop Deductible"
        -    },
        -    "bi": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Bodily-injury liability limit, per-person/per-accident in $000s, e.g. \"100/300\"",
        -      "title": "Bi"
        -    },
        -    "coll_deductible": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Collision deductible in dollars, e.g. 500",
        -      "title": "Coll Deductible"
        -    },
        -    "comp_deductible": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Comprehensive deductible in dollars, e.g. 500",
        -      "title": "Comp Deductible"
        -    },
        -    "coverage_a": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "HOME: dwelling limit in dollars — set it to the dwelling's replacement cost (the profile's property.replacement_cost when known)",
        -      "title": "Coverage A"
        -    },
        -    "coverage_c": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "RENTERS: personal-property (contents) limit in dollars, e.g. 30000 — the anchor an HO-4 rates off",
        -      "title": "Coverage C"
        -    },
        -    "coverage_d": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "RENTERS: loss-of-use limit in dollars — omit to keep the engine's carrier default (commonly a fixed ratio of the contents limit)",
        -      "title": "Coverage D"
        -    },
        -    "coverage_e": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "RENTERS/HOME: personal liability limit in dollars, e.g. 100000 (renters) / 300000 (home)",
        -      "title": "Coverage E"
        -    },
        -    "coverage_f": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "RENTERS/HOME: guest medical (medical payments to others) limit in dollars, e.g. 1000",
        -      "title": "Coverage F"
        -    },
        -    "deductible": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "RENTERS: all-perils deductible in dollars, e.g. 500",
        -      "title": "Deductible"
        -    },
        -    "medpay": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Medical-payments limit in dollars, e.g. 5000 — omit to keep the carrier's default",
        -      "title": "Medpay"
        -    },
        -    "pd": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Property-damage liability limit in $000s (NOT dollars), e.g. 100",
        -      "title": "Pd"
        -    },
        -    "um": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Uninsured/underinsured-motorist BI limit in $000s, e.g. \"100/300\" — omit to keep the carrier's default",
        -      "title": "Um"
        -    }
        -  },
        -  "title": "CoverageSelectionInput",
        -  "type": "object"
        -}
      • removedInput schema / $defs / DriverInput
        Removed value: -{
        -  "additionalProperties": true,
        -  "description": "One driver on the policy. Exactly one driver is the applicant\n(`relation` omitted or \"self\") and takes their demographics from the\nprofile's top level — restating them here is fine when they agree,\nan error when they don't.",
        -  "properties": {
        -    "accidents": {
        -      "anyOf": [
        -        {
        -          "items": {
        -            "$ref": "#/$defs/AccidentInput"
        -          },
        -          "type": "array"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Accidents, one entry each, e.g. [{\"on\": \"2023-06-15\", \"at_fault\": true, \"amount\": 4200}] — every entry needs `on`. An empty list means none.",
        -      "title": "Accidents"
        -    },
        -    "age_first_licensed": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Age when first licensed, typically 16-18 (Liberty Mutual asks)",
        -      "title": "Age First Licensed"
        -    },
        -    "date_first_licensed": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Date first licensed, YYYY-MM-DD (alternative to age_first_licensed)",
        -      "title": "Date First Licensed"
        -    },
        -    "defensive_driving_course": {
        -      "anyOf": [
        -        {
        -          "type": "boolean"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Completed a defensive-driving / accident-prevention course, last 3 years",
        -      "title": "Defensive Driving Course"
        -    },
        -    "dob": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Date of birth, YYYY-MM-DD",
        -      "title": "Dob"
        -    },
        -    "drivers_license_number": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Driver's license number — identity like the name, supplied only when a carrier's needs entry asks for it (some carrier forms insist on one for every rated driver before quoting). This entry is every driver's ONE home for it, the applicant's included",
        -      "title": "Drivers License Number"
        -    },
        -    "education": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Highest education level: 'No High School' / 'High School' / 'Vocational' / 'Some College' / 'Associate' / 'Bachelors' / 'Masters' / 'Doctorate'",
        -      "title": "Education"
        -    },
        -    "employment_status": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "'Employed' / 'Self-Employed' / 'Retired' / 'Student' / 'Unemployed'",
        -      "title": "Employment Status"
        -    },
        -    "exclusion_reason": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Why an excluded driver doesn't drive, e.g. 'never had a license' — carriers (Allstate) require it for an excluded spouse",
        -      "title": "Exclusion Reason"
        -    },
        -    "first_name": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Legal first name — live carrier forms insist on naming every listed driver (a married applicant's spouse especially); the applicant's own name rides in `identity` instead (logged as PII, never echoed)",
        -      "title": "First Name"
        -    },
        -    "gender": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "title": "Gender"
        -    },
        -    "industry": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "title": "Industry"
        -    },
        -    "last_name": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Legal last name (see first_name)",
        -      "title": "Last Name"
        -    },
        -    "license_state": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Two-letter state that issued this driver's license",
        -      "title": "License State"
        -    },
        -    "marital_status": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "title": "Marital Status"
        -    },
        -    "occupation": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "title": "Occupation"
        -    },
        -    "relation": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "\"self\" (default for the first driver), \"spouse\", \"child\", \"parent\", \"other\"",
        -      "title": "Relation"
        -    },
        -    "rideshare_use": {
        -      "anyOf": [
        -        {
        -          "type": "boolean"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Drives for ride-share or delivery (Uber, Lyft…) — personal policies exclude livery use, so this changes eligibility and rate",
        -      "title": "Rideshare Use"
        -    },
        -    "sr22_required": {
        -      "anyOf": [
        -        {
        -          "type": "boolean"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Needs an SR-22 / financial-responsibility filing",
        -      "title": "Sr22 Required"
        -    },
        -    "status": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "'licensed' (default) / 'permit' / 'not licensed' / 'excluded' — an excluded driver is listed on the household but not rated",
        -      "title": "Status"
        -    },
        -    "violations": {
        -      "anyOf": [
        -        {
        -          "items": {
        -            "$ref": "#/$defs/ViolationInput"
        -          },
        -          "type": "array"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Moving violations, one entry each, e.g. [{\"on\": \"2025-01\", \"kind\": \"speeding\"}] — every entry needs `kind` and `on`. An empty list means a clean record.",
        -      "title": "Violations"
        -    },
        -    "years_licensed": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "title": "Years Licensed"
        -    },
        -    "years_licensed_outside_us": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Years licensed outside the US; 0 = never held a licence abroad — GEICO, The General and Dairyland's live quote forms require the answer",
        -      "title": "Years Licensed Outside Us"
        -    },
        -    "years_licensed_us": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Years licensed in the US, when it differs from years_licensed",
        -      "title": "Years Licensed Us"
        -    }
        -  },
        -  "title": "DriverInput",
        -  "type": "object"
        -}
      • changedInput schema / $defs / HeldPolicyInput / description
        Previous value: -"A policy the household already holds. A carrier's bundle discount\napplies only to a policy THAT carrier's group writes, so the writer is\nhalf the fact: name it, or no carrier's discount applies."New value: +"A policy the household already holds."
      • changedInput schema / $defs / HeldPolicyInput / properties / carrier / description
        Previous value: -"Who writes it, as the household would say it: \"State Farm\", \"Farmers\", \"AAA\". Without it no carrier gives a multi-policy discount"New value: +"Who writes it, e.g. \"State Farm\""
      • removedInput schema / $defs / HeldPolicyInput / properties / in_force / description
        Removed value: -"False for a policy that has lapsed or been cancelled"
      • addedInput schema / $defs / HomeAsk
        Added value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "aop_deductible": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "All-other-perils deductible in dollars, e.g. 1000",
        +      "title": "Aop Deductible"
        +    },
        +    "coverage_a": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Dwelling limit in dollars — the dwelling's replacement cost",
        +      "title": "Coverage A"
        +    },
        +    "coverage_e": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Personal liability limit in dollars, e.g. 300000",
        +      "title": "Coverage E"
        +    },
        +    "coverage_f": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Guest medical (medical payments to others) limit in dollars, e.g. 1000",
        +      "title": "Coverage F"
        +    }
        +  },
        +  "title": "HomeAsk",
        +  "type": "object"
        +}
      • addedInput schema / $defs / LinesInput
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "The coverage to price, one entry per line.",
        +  "properties": {
        +    "auto": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/AutoAsk"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    },
        +    "home": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/HomeAsk"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    },
        +    "renters": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/RentersAsk"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    }
        +  },
        +  "title": "LinesInput",
        +  "type": "object"
        +}
      • addedInput schema / $defs / LiveQuoteProfile
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "The household being quoted: the people and where they live, plus an\n`auto` block (drivers and vehicles) and a `property` block (the\ndwelling). REQUIRED: the ZIP, the applicant's age (or dob) and, for auto,\neach vehicle's year/make/model — when the user was vague, pass a concrete\nvalue and tell them. Everything else is optional; omissions come back as\n`assumptions`.",
        +  "properties": {
        +    "age": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "REQUIRED unless dob is passed. If the user was vague ('mid-20s'), pass a concrete age and present it as your assumption.",
        +      "title": "Age"
        +    },
        +    "auto": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/WalkAutoBlock"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    },
        +    "city": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "City"
        +    },
        +    "companion_policies": {
        +      "anyOf": [
        +        {
        +          "items": {
        +            "$ref": "#/$defs/HeldPolicyInput"
        +          },
        +          "type": "array"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Policies the household already holds, e.g. [{\"line\": \"home\", \"carrier\": \"State Farm\"}]",
        +      "title": "Companion Policies"
        +    },
        +    "credit_range": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "'Excellent' / 'Good' / 'Fair' / 'Poor' — omit it in CA, HI, MA and MI",
        +      "title": "Credit Range"
        +    },
        +    "dob": {
        +      "anyOf": [
        +        {
        +          "format": "date",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "YYYY-MM-DD; alternative to age",
        +      "title": "Dob"
        +    },
        +    "education": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Highest education level: 'No High School' / 'High School' / 'Vocational' / 'Some College' / 'Associate' / 'Bachelors' / 'Masters' / 'Doctorate'",
        +      "title": "Education"
        +    },
        +    "effective_date": {
        +      "anyOf": [
        +        {
        +          "format": "date",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Policy start date, YYYY-MM-DD",
        +      "title": "Effective Date"
        +    },
        +    "employment_status": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "'Employed' / 'Self-Employed' / 'Retired' / 'Student' / 'Unemployed'",
        +      "title": "Employment Status"
        +    },
        +    "gender": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Gender"
        +    },
        +    "home_ownership_status": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "'rent' / 'own with mortgage' / 'own outright' — bare 'own' is accepted",
        +      "title": "Home Ownership Status"
        +    },
        +    "industry": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Industry"
        +    },
        +    "marital_status": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "'Single' / 'Married' / …",
        +      "title": "Marital Status"
        +    },
        +    "memberships": {
        +      "anyOf": [
        +        {
        +          "items": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Organizations the applicant belongs to, e.g. ['Costco', 'AAA']",
        +      "title": "Memberships"
        +    },
        +    "military_affiliation": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "'active' / 'veteran' / 'family' / 'none'",
        +      "title": "Military Affiliation"
        +    },
        +    "military_branch": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Military Branch"
        +    },
        +    "military_rank_paygrade": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "e.g. 'E-5'",
        +      "title": "Military Rank Paygrade"
        +    },
        +    "military_service_end_year": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Military Service End Year"
        +    },
        +    "military_service_start_year": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Military Service Start Year"
        +    },
        +    "months_at_residence": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Months At Residence"
        +    },
        +    "occupation": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Occupation"
        +    },
        +    "prior_insurance": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/WalkPriorInsuranceInput"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    },
        +    "property": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/PropertyBlock"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    },
        +    "residence_type": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "'House' / 'Apartment' / 'Condominium' / 'Manufactured Home' / …",
        +      "title": "Residence Type"
        +    },
        +    "state": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Two-letter code; derived from zip_code when omitted",
        +      "title": "State"
        +    },
        +    "street_address": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Street Address"
        +    },
        +    "unit": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Unit"
        +    },
        +    "zip_code": {
        +      "description": "REQUIRED — 5-digit garaging/home ZIP. ALWAYS pass the ZIP here, never under another key. If the user named only a city, pass that city's best-known ZIP and tell them the assumption.",
        +      "maxLength": 200,
        +      "title": "Zip Code",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "zip_code"
        +  ],
        +  "title": "LiveQuoteProfile",
        +  "type": "object"
        +}
      • changedInput schema / $defs / LossInput / description
        Previous value: -"One prior property loss, dated."New value: +"One prior property loss."
      • changedInput schema / $defs / LossInput / properties / amount / description
        Previous value: -"Amount paid out in dollars, if known"New value: +"Paid out, dollars"
      • changedInput schema / $defs / LossInput / properties / on / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^\\d{4}(?:-\\d{2}){0,2}$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / LossInput / properties / on / description
        Previous value: -"When it happened — ISO 8601, reduced precision welcome"New value: +"When it happened: YYYY, YYYY-MM or YYYY-MM-DD"
      • removedInput schema / $defs / PriorInsuranceInput
        Removed value: -{
        -  "additionalProperties": true,
        -  "description": "The insurance carried now. `since`/`until` are the fact behind every way\na form asks how long it ran — tenure is derived from the dates, never sent\nas its own number.",
        -  "properties": {
        -    "carrier": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Current carrier's name",
        -      "title": "Carrier"
        -    },
        -    "insured": {
        -      "anyOf": [
        -        {
        -          "type": "boolean"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Currently insured?",
        -      "title": "Insured"
        -    },
        -    "lapse": {
        -      "anyOf": [
        -        {
        -          "type": "boolean"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Any lapse in coverage in the last 12 months",
        -      "title": "Lapse"
        -    },
        -    "limits": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Bodily-injury limits carried now, e.g. \"100/300\" — carriers ask it of the insured",
        -      "title": "Limits"
        -    },
        -    "since": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "When this coverage started — ISO 8601, reduced precision welcome (\"2019\")",
        -      "title": "Since"
        -    },
        -    "until": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "When it ends/ended — ISO 8601, reduced precision welcome; omit while the cover is still in force",
        -      "title": "Until"
        -    }
        -  },
        -  "title": "PriorInsuranceInput",
        -  "type": "object"
        -}
      • changedInput schema / $defs / PropertyBlock / description
        Previous value: -"The dwelling's facts — used by home AND renters. Accepted and recorded\ntoday; priced once a property line launches."New value: +"The dwelling, for home and renters."
      • changedInput schema / $defs / PropertyBlock / properties / household / description
        Previous value: -"How many people live in the home"New value: +"Number of people living in the home"
      • changedInput schema / $defs / PropertyBlock / properties / losses / description
        Previous value: -"Prior property losses, each DATED (carrier forms ask when). [] means asked-and-loss-free; omit the field if never asked"New value: +"Prior property losses, each dated. [] means none; omit if unknown"
      • removedInput schema / $defs / PropertyBlock / properties / miles_to_fire_station / description
        Removed value: -"Road miles to the responding fire station — a rating axis at several carriers"
      • changedInput schema / $defs / PropertyBlock / properties / purchased / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^\\d{4}(?:-\\d{2}){0,2}$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / PropertyBlock / properties / purchased / description
        Previous value: -"When the home was purchased — ISO 8601, reduced precision welcome (\"2021\" / \"2021-06\"). Carrier forms ask it outright."New value: +"When the home was bought: YYYY, YYYY-MM or YYYY-MM-DD"
      • changedInput schema / $defs / PropertyBlock / properties / renovation_permit_year / description
        Previous value: -"Year of the last permitted renovation (plumbing/electrical/heating/roof)"New value: +"Year of the last permitted plumbing, electrical, heating or roof work"
      • changedInput schema / $defs / PropertyBlock / properties / replacement_cost / description
        Previous value: -"Estimated dwelling replacement cost in dollars, if the user has one"New value: +"Dwelling replacement cost estimate, dollars"
      • removedInput schema / $defs / PropertyBlock / properties / roof_layers / description
        Removed value: -"How many layers of roofing are on the house"
      • changedInput schema / $defs / PropertyBlock / properties / roof_year / description
        Previous value: -"Year the roof was last fully replaced"New value: +"Year the roof was last replaced"
      • changedInput schema / $defs / PropertyBlock / properties / seismic_retrofit / description
        Previous value: -"Whether an older home has been seismically retrofitted (asked in CA)"New value: +"Whether the home has been seismically retrofitted"
      • changedInput schema / $defs / PropertyBlock / properties / units / description
        Previous value: -"How many families the building holds"New value: +"Number of families the building holds"
      • removedInput schema / $defs / QuoteProfile
        Removed value: -{
        -  "additionalProperties": true,
        -  "description": "The household being quoted: a line-neutral core plus per-line blocks.\nA few facts are REQUIRED — the ZIP, the applicant's age (or dob), and,\nwhen quoting auto, each vehicle's year/make/model — because they have no\nneutral rateable value; YOU supply those, inventing a concrete value from\ncontext when the user was vague and telling them so. Everything else is\noptional: omissions become explicit, priced assumptions (`assumptions` /\n`tighten_by`), never a refusal.\n\nThe core carries facts about the people and where they live; the `auto`\nblock carries `drivers[]` and `vehicles[]`; the `property` block carries\nthe dwelling (home AND renters). A household that will only ever buy\nrenters simply has no `auto` block, and nothing about a car is assumed\nfor it.",
        -  "properties": {
        -    "age": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "REQUIRED unless dob is passed. If the user was vague ('mid-20s'), pass a concrete age and present it as your assumption.",
        -      "title": "Age"
        -    },
        -    "auto": {
        -      "anyOf": [
        -        {
        -          "$ref": "#/$defs/AutoBlock"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "The auto line's facts: drivers[] and vehicles[]"
        -    },
        -    "city": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "title": "City"
        -    },
        -    "companion_policies": {
        -      "anyOf": [
        -        {
        -          "items": {
        -            "$ref": "#/$defs/HeldPolicyInput"
        -          },
        -          "type": "array"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Policies the household already holds, each with who writes it, e.g. [{\"line\": \"home\", \"carrier\": \"State Farm\"}] — only the carrier writing a policy gives a multi-policy discount for it",
        -      "title": "Companion Policies"
        -    },
        -    "credit_range": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "'Excellent' / 'Good' / 'Fair' / 'Poor'. Not a rating input in CA, HI, MA, or MI (credit-based auto rating is banned there) — omit it and don't ask shoppers in those states.",
        -      "title": "Credit Range"
        -    },
        -    "dob": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Date of birth, YYYY-MM-DD (alternative to age)",
        -      "title": "Dob"
        -    },
        -    "education": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Highest education level: 'No High School' / 'High School' / 'Vocational' / 'Some College' / 'Associate' / 'Bachelors' / 'Masters' / 'Doctorate'",
        -      "title": "Education"
        -    },
        -    "effective_date": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Desired start date for the new policy, YYYY-MM-DD",
        -      "title": "Effective Date"
        -    },
        -    "employment_status": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "'Employed' / 'Self-Employed' / 'Retired' / 'Student' / 'Unemployed'",
        -      "title": "Employment Status"
        -    },
        -    "gender": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "title": "Gender"
        -    },
        -    "home_ownership_status": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "'rent' / 'own with mortgage' / 'own outright' — bare 'own' is accepted; carrier forms ask which",
        -      "title": "Home Ownership Status"
        -    },
        -    "industry": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Industry beside the occupation, e.g. 'Finance and Insurance' — GEICO's live quote form insists on it",
        -      "title": "Industry"
        -    },
        -    "marital_status": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "'Single' / 'Married' / …",
        -      "title": "Marital Status"
        -    },
        -    "memberships": {
        -      "anyOf": [
        -        {
        -          "items": {
        -            "maxLength": 200,
        -            "type": "string"
        -          },
        -          "type": "array"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Organizations the applicant belongs to, e.g. ['Costco', 'AAA'] — group/affinity plans (CA §1861.12) discount on them",
        -      "title": "Memberships"
        -    },
        -    "military_affiliation": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "'active' / 'veteran' / 'family' / 'none' — USAA quotes only military-affiliated households",
        -      "title": "Military Affiliation"
        -    },
        -    "military_branch": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Branch of service, e.g. 'Army', 'Navy' (USAA asks)",
        -      "title": "Military Branch"
        -    },
        -    "military_rank_paygrade": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Rank / pay grade, e.g. 'E-5' (USAA asks)",
        -      "title": "Military Rank Paygrade"
        -    },
        -    "military_service_end_year": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "title": "Military Service End Year"
        -    },
        -    "military_service_start_year": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "title": "Military Service Start Year"
        -    },
        -    "months_at_residence": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "How long at the current address, in months",
        -      "title": "Months At Residence"
        -    },
        -    "occupation": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Occupation as carriers collect it, e.g. 'Accountant'",
        -      "title": "Occupation"
        -    },
        -    "prior_insurance": {
        -      "anyOf": [
        -        {
        -          "$ref": "#/$defs/PriorInsuranceInput"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "The insurance carried now — carrier, dates, limits held"
        -    },
        -    "property": {
        -      "anyOf": [
        -        {
        -          "$ref": "#/$defs/PropertyBlock"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "The dwelling's facts — home and renters alike"
        -    },
        -    "residence_type": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "'House' / 'Apartment' / 'Condominium' / 'Manufactured Home' / …",
        -      "title": "Residence Type"
        -    },
        -    "state": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Two-letter state code, e.g. 'CA' (derived from zip_code when omitted)",
        -      "title": "State"
        -    },
        -    "street_address": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Street address (line 1) — sharpens territory rating and is required for live carrier submissions (logged as PII, never echoed)",
        -      "title": "Street Address"
        -    },
        -    "unit": {
        -      "anyOf": [
        -        {
        -          "maxLength": 200,
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Apartment/unit number (address line 2) — a renter or condo dweller in a multi-unit building needs it for live carrier submissions",
        -      "title": "Unit"
        -    },
        -    "zip_code": {
        -      "description": "REQUIRED — 5-digit garaging/home ZIP. ALWAYS pass the ZIP here, never under another key. If the user named only a city, pass that city's best-known ZIP and tell them the assumption.",
        -      "maxLength": 200,
        -      "title": "Zip Code",
        -      "type": "string"
        -    }
        -  },
        -  "required": [
        -    "zip_code"
        -  ],
        -  "title": "QuoteProfile",
        -  "type": "object"
        -}
      • addedInput schema / $defs / RentersAsk
        Added value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "coverage_c": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Personal-property (contents) limit in dollars, e.g. 30000",
        +      "title": "Coverage C"
        +    },
        +    "coverage_d": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Loss-of-use limit in dollars",
        +      "title": "Coverage D"
        +    },
        +    "coverage_e": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Personal liability limit in dollars, e.g. 100000",
        +      "title": "Coverage E"
        +    },
        +    "coverage_f": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Guest medical (medical payments to others) limit in dollars, e.g. 1000",
        +      "title": "Coverage F"
        +    },
        +    "deductible": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "All-perils deductible in dollars, e.g. 500",
        +      "title": "Deductible"
        +    }
        +  },
        +  "title": "RentersAsk",
        +  "type": "object"
        +}
      • changedInput schema / $defs / VehicleInput / properties / body_style / description
        Previous value: -"Trim / body style as the carrier lists it, e.g. \"XLT AWD 4D GAS\""New value: +"Trim / body style, e.g. \"XLT AWD 4D GAS\""
      • removedInput schema / $defs / VehicleInput / properties / bought_new / description
        Removed value: -"Whether the vehicle was new when bought (Allstate asks)"
      • changedInput schema / $defs / VehicleInput / properties / cost / description
        Previous value: -"What the vehicle cost new, whole dollars — some carriers' live quote forms (Kemper) insist on it"New value: +"Cost new, whole dollars"
      • changedInput schema / $defs / VehicleInput / properties / garaging_zip / description
        Previous value: -"ZIP where THIS vehicle is garaged, when it differs from the household's zip_code — auto rating keys on the garaging territory, so a stated garaging ZIP is what gets rated"New value: +"ZIP where this vehicle is kept, when different from zip_code"
      • changedInput schema / $defs / VehicleInput / properties / purchase_date / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^\\d{4}(?:-\\d{2}){0,2}$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / VehicleInput / properties / purchase_date / description
        Previous value: -"When the vehicle was bought — ISO 8601, \"2021-06\" or \"2021\" welcome"New value: +"When bought: YYYY, YYYY-MM or YYYY-MM-DD"
      • removedInput schema / $defs / VehicleInput / properties / vin / description
        Removed value: -"17-character VIN — live carrier forms prefer it over year/make/model"
      • changedInput schema / $defs / ViolationInput / description
        Previous value: -"One citation, as it will be declared. Dated, because carriers\nprice WHEN it happened — counts and windows are derived, never sent."New value: +"One moving violation."
      • changedInput schema / $defs / ViolationInput / properties / on / description
        Previous value: -"When it happened — ISO 8601, reduced precision welcome: \"2024\", \"2024-06\", or \"2024-06-15\". A year IS a date."New value: +"When it happened: YYYY, YYYY-MM or YYYY-MM-DD"
      • addedInput schema / $defs / ViolationInput / properties / on / pattern
        Added value: +"^\\d{4}(?:-\\d{2}){0,2}$"
      • addedInput schema / $defs / WalkAutoBlock
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Omit it for a household without a car.",
        +  "properties": {
        +    "drivers": {
        +      "anyOf": [
        +        {
        +          "items": {
        +            "$ref": "#/$defs/WalkDriverInput"
        +          },
        +          "type": "array"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Drivers"
        +    },
        +    "vehicles": {
        +      "anyOf": [
        +        {
        +          "items": {
        +            "$ref": "#/$defs/VehicleInput"
        +          },
        +          "maxItems": 10,
        +          "type": "array"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Vehicles"
        +    }
        +  },
        +  "title": "WalkAutoBlock",
        +  "type": "object"
        +}
      • addedInput schema / $defs / WalkDriverInput
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "One driver on the policy. The applicant is the driver with relation\n\"self\"; any of their details restated here must match the profile's top\nlevel.",
        +  "properties": {
        +    "accidents": {
        +      "anyOf": [
        +        {
        +          "items": {
        +            "$ref": "#/$defs/AccidentInput"
        +          },
        +          "maxItems": 20,
        +          "type": "array"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Accidents, one entry each, e.g. [{\"on\": \"2023-06-15\", \"at_fault\": true, \"amount\": 4200}] — every entry needs `on`. An empty list means none.",
        +      "title": "Accidents"
        +    },
        +    "age_first_licensed": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Age when first licensed",
        +      "title": "Age First Licensed"
        +    },
        +    "date_first_licensed": {
        +      "anyOf": [
        +        {
        +          "format": "date",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "YYYY-MM-DD; alternative to age_first_licensed",
        +      "title": "Date First Licensed"
        +    },
        +    "defensive_driving_course": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Completed a defensive-driving course in the last 3 years",
        +      "title": "Defensive Driving Course"
        +    },
        +    "dob": {
        +      "anyOf": [
        +        {
        +          "format": "date",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "YYYY-MM-DD",
        +      "title": "Dob"
        +    },
        +    "drivers_license_number": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Drivers License Number"
        +    },
        +    "education": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Highest education level: 'No High School' / 'High School' / 'Vocational' / 'Some College' / 'Associate' / 'Bachelors' / 'Masters' / 'Doctorate'",
        +      "title": "Education"
        +    },
        +    "employment_status": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "'Employed' / 'Self-Employed' / 'Retired' / 'Student' / 'Unemployed'",
        +      "title": "Employment Status"
        +    },
        +    "exclusion_reason": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Exclusion Reason"
        +    },
        +    "first_name": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "First Name"
        +    },
        +    "gender": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Gender"
        +    },
        +    "industry": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Industry"
        +    },
        +    "last_name": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Last Name"
        +    },
        +    "license_state": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Two-letter code of the licensing state",
        +      "title": "License State"
        +    },
        +    "marital_status": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Marital Status"
        +    },
        +    "occupation": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Occupation"
        +    },
        +    "relation": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "\"self\" / \"spouse\" / \"child\" / \"parent\" / \"other\"",
        +      "title": "Relation"
        +    },
        +    "rideshare_use": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Drives for ride-share or delivery",
        +      "title": "Rideshare Use"
        +    },
        +    "sr22_required": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Sr22 Required"
        +    },
        +    "status": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "'licensed' (default) / 'permit' / 'not licensed' / 'excluded'",
        +      "title": "Status"
        +    },
        +    "violations": {
        +      "anyOf": [
        +        {
        +          "items": {
        +            "$ref": "#/$defs/ViolationInput"
        +          },
        +          "maxItems": 20,
        +          "type": "array"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Moving violations, one entry each, e.g. [{\"on\": \"2025-01\", \"kind\": \"speeding\"}] — every entry needs `kind` and `on`. An empty list means a clean record.",
        +      "title": "Violations"
        +    },
        +    "years_licensed": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Years since first licensed",
        +      "title": "Years Licensed"
        +    },
        +    "years_licensed_outside_us": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Years licensed outside the US",
        +      "title": "Years Licensed Outside Us"
        +    },
        +    "years_licensed_us": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Years licensed in the US",
        +      "title": "Years Licensed Us"
        +    }
        +  },
        +  "title": "WalkDriverInput",
        +  "type": "object"
        +}
      • addedInput schema / $defs / WalkPriorInsuranceInput
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "The insurance carried now.",
        +  "properties": {
        +    "carrier": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Carrier"
        +    },
        +    "insured": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Insured"
        +    },
        +    "lapse": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Any lapse in coverage in the last 12 months",
        +      "title": "Lapse"
        +    },
        +    "limits": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Bodily-injury limits held, e.g. \"100/300\"",
        +      "title": "Limits"
        +    },
        +    "since": {
        +      "anyOf": [
        +        {
        +          "pattern": "^\\d{4}(?:-\\d{2}){0,2}$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Start date: YYYY, YYYY-MM or YYYY-MM-DD",
        +      "title": "Since"
        +    },
        +    "until": {
        +      "anyOf": [
        +        {
        +          "pattern": "^\\d{4}(?:-\\d{2}){0,2}$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "End date: YYYY, YYYY-MM or YYYY-MM-DD; omit while in force",
        +      "title": "Until"
        +    }
        +  },
        +  "title": "WalkPriorInsuranceInput",
        +  "type": "object"
        +}
      • changedInput schema / properties / lines / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "$ref": "#/$defs/CoverageSelectionInput"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "$ref": "#/$defs/LinesInput"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / lines / title
        Removed value: -"Lines"
      • changedInput schema / properties / profile / $ref
        Previous value: -"#/$defs/QuoteProfile"New value: +"#/$defs/LiveQuoteProfile"
    • Changedquote_insurance100 fields changed
      • removedInput schema / $defs / AccidentInput / description
        Removed value: -"One accident, dated, on the driver who had it."
      • changedInput schema / $defs / AccidentInput / properties / amount / description
        Previous value: -"Total damage paid out in dollars, if known"New value: +"Damage paid out, dollars"
      • removedInput schema / $defs / AccidentInput / properties / at_fault / description
        Removed value: -"Whether this driver was at fault"
      • changedInput schema / $defs / AccidentInput / properties / on / description
        Previous value: -"When it happened — ISO 8601, reduced precision welcome (\"2023\")."New value: +"When it happened: YYYY, YYYY-MM or YYYY-MM-DD"
      • addedInput schema / $defs / AccidentInput / properties / on / pattern
        Added value: +"^\\d{4}(?:-\\d{2}){0,2}$"
      • addedInput schema / $defs / AutoAsk
        Added value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "bi": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Bodily-injury liability limit, per-person/per-accident in $000s, e.g. \"100/300\"",
        +      "title": "Bi"
        +    },
        +    "coll_deductible": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Collision deductible in dollars, e.g. 500",
        +      "title": "Coll Deductible"
        +    },
        +    "comp_deductible": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Comprehensive deductible in dollars, e.g. 500",
        +      "title": "Comp Deductible"
        +    },
        +    "medpay": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Medical-payments limit in dollars, e.g. 5000",
        +      "title": "Medpay"
        +    },
        +    "pd": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Property-damage liability limit in $000s, e.g. 100",
        +      "title": "Pd"
        +    },
        +    "um": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Uninsured/underinsured-motorist BI limit in $000s, e.g. \"100/300\"",
        +      "title": "Um"
        +    }
        +  },
        +  "title": "AutoAsk",
        +  "type": "object"
        +}
      • changedInput schema / $defs / AutoBlock / description
        Previous value: -"The auto line's facts: who drives, and what. Omit the whole block for a\nhousehold that isn't asking about a car — nothing about a vehicle is ever\nassumed for a profile without one."New value: +"Omit it for a household without a car."
      • changedInput schema / $defs / AutoBlock / properties / drivers / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "$ref": "#/$defs/DriverInput"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "$ref": "#/$defs/DriverInput"
        +    },
        +    "maxItems": 10,
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / AutoBlock / properties / vehicles / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "$ref": "#/$defs/VehicleInput"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "$ref": "#/$defs/VehicleInput"
        +    },
        +    "maxItems": 10,
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / $defs / CoverageSelectionInput
        Removed value: -{
        -  "additionalProperties": true,
        -  "description": "The coverage to price, as actual numbers on named axes — the value of\neach entry in the `lines` map. Each line reads only its own axes; the map\nkey says which apply.",
        -  "properties": {
        -    "aop_deductible": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "HOME: all-other-perils deductible in dollars, e.g. 1000",
        -      "title": "Aop Deductible"
        -    },
        -    "bi": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Bodily-injury liability limit, per-person/per-accident in $000s, e.g. \"100/300\"",
        -      "title": "Bi"
        -    },
        -    "coll_deductible": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Collision deductible in dollars, e.g. 500",
        -      "title": "Coll Deductible"
        -    },
        -    "comp_deductible": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Comprehensive deductible in dollars, e.g. 500",
        -      "title": "Comp Deductible"
        -    },
        -    "coverage_a": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "HOME: dwelling limit in dollars — set it to the dwelling's replacement cost (the profile's property.replacement_cost when known)",
        -      "title": "Coverage A"
        -    },
        -    "coverage_c": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "RENTERS: personal-property (contents) limit in dollars, e.g. 30000 — the anchor an HO-4 rates off",
        -      "title": "Coverage C"
        -    },
        -    "coverage_d": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "RENTERS: loss-of-use limit in dollars — omit to keep the engine's carrier default (commonly a fixed ratio of the contents limit)",
        -      "title": "Coverage D"
        -    },
        -    "coverage_e": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "RENTERS/HOME: personal liability limit in dollars, e.g. 100000 (renters) / 300000 (home)",
        -      "title": "Coverage E"
        -    },
        -    "coverage_f": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "RENTERS/HOME: guest medical (medical payments to others) limit in dollars, e.g. 1000",
        -      "title": "Coverage F"
        -    },
        -    "deductible": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "RENTERS: all-perils deductible in dollars, e.g. 500",
        -      "title": "Deductible"
        -    },
        -    "medpay": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Medical-payments limit in dollars, e.g. 5000 — omit to keep the carrier's default",
        -      "title": "Medpay"
        -    },
        -    "pd": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Property-damage liability limit in $000s (NOT dollars), e.g. 100",
        -      "title": "Pd"
        -    },
        -    "um": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Uninsured/underinsured-motorist BI limit in $000s, e.g. \"100/300\" — omit to keep the carrier's default",
        -      "title": "Um"
        -    }
        -  },
        -  "title": "CoverageSelectionInput",
        -  "type": "object"
        -}
      • changedInput schema / $defs / DriverInput / description
        Previous value: -"One driver on the policy. Exactly one driver is the applicant\n(`relation` omitted or \"self\") and takes their demographics from the\nprofile's top level — restating them here is fine when they agree,\nan error when they don't."New value: +"One driver on the policy. The applicant is the driver with relation\n\"self\"; any of their details restated here must match the profile's top\nlevel."
      • changedInput schema / $defs / DriverInput / properties / accidents / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "$ref": "#/$defs/AccidentInput"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "$ref": "#/$defs/AccidentInput"
        +    },
        +    "maxItems": 20,
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / age_first_licensed / description
        Previous value: -"Age when first licensed, typically 16-18 (Liberty Mutual asks)"New value: +"Age when first licensed"
      • changedInput schema / $defs / DriverInput / properties / date_first_licensed / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "format": "date",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / date_first_licensed / description
        Previous value: -"Date first licensed, YYYY-MM-DD (alternative to age_first_licensed)"New value: +"YYYY-MM-DD; alternative to age_first_licensed"
      • changedInput schema / $defs / DriverInput / properties / defensive_driving_course / description
        Previous value: -"Completed a defensive-driving / accident-prevention course, last 3 years"New value: +"Completed a defensive-driving course in the last 3 years"
      • changedInput schema / $defs / DriverInput / properties / dob / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "format": "date",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / dob / description
        Previous value: -"Date of birth, YYYY-MM-DD"New value: +"YYYY-MM-DD"
      • removedInput schema / $defs / DriverInput / properties / drivers_license_number
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "maxLength": 200,
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Driver's license number — identity like the name, supplied only when a carrier's needs entry asks for it (some carrier forms insist on one for every rated driver before quoting). This entry is every driver's ONE home for it, the applicant's included",
        -  "title": "Drivers License Number"
        -}
      • removedInput schema / $defs / DriverInput / properties / exclusion_reason / description
        Removed value: -"Why an excluded driver doesn't drive, e.g. 'never had a license' — carriers (Allstate) require it for an excluded spouse"
      • removedInput schema / $defs / DriverInput / properties / first_name
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "maxLength": 200,
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Legal first name — live carrier forms insist on naming every listed driver (a married applicant's spouse especially); the applicant's own name rides in `identity` instead (logged as PII, never echoed)",
        -  "title": "First Name"
        -}
      • removedInput schema / $defs / DriverInput / properties / last_name
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "maxLength": 200,
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Legal last name (see first_name)",
        -  "title": "Last Name"
        -}
      • removedInput schema / $defs / DriverInput / properties / license_state
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "maxLength": 200,
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Two-letter state that issued this driver's license",
        -  "title": "License State"
        -}
      • changedInput schema / $defs / DriverInput / properties / relation / description
        Previous value: -"\"self\" (default for the first driver), \"spouse\", \"child\", \"parent\", \"other\""New value: +"\"self\" / \"spouse\" / \"child\" / \"parent\" / \"other\""
      • changedInput schema / $defs / DriverInput / properties / rideshare_use / description
        Previous value: -"Drives for ride-share or delivery (Uber, Lyft…) — personal policies exclude livery use, so this changes eligibility and rate"New value: +"Drives for ride-share or delivery"
      • removedInput schema / $defs / DriverInput / properties / sr22_required / description
        Removed value: -"Needs an SR-22 / financial-responsibility filing"
      • changedInput schema / $defs / DriverInput / properties / status / description
        Previous value: -"'licensed' (default) / 'permit' / 'not licensed' / 'excluded' — an excluded driver is listed on the household but not rated"New value: +"'licensed' (default) / 'permit' / 'not licensed' / 'excluded'"
      • changedInput schema / $defs / DriverInput / properties / violations / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "$ref": "#/$defs/ViolationInput"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "$ref": "#/$defs/ViolationInput"
        +    },
        +    "maxItems": 20,
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / $defs / DriverInput / properties / years_licensed / description
        Added value: +"Years since first licensed"
      • removedInput schema / $defs / DriverInput / properties / years_licensed_outside_us
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Years licensed outside the US; 0 = never held a licence abroad — GEICO, The General and Dairyland's live quote forms require the answer",
        -  "title": "Years Licensed Outside Us"
        -}
      • removedInput schema / $defs / DriverInput / properties / years_licensed_us
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Years licensed in the US, when it differs from years_licensed",
        -  "title": "Years Licensed Us"
        -}
      • changedInput schema / $defs / HeldPolicyInput / description
        Previous value: -"A policy the household already holds. A carrier's bundle discount\napplies only to a policy THAT carrier's group writes, so the writer is\nhalf the fact: name it, or no carrier's discount applies."New value: +"A policy the household already holds."
      • changedInput schema / $defs / HeldPolicyInput / properties / carrier / description
        Previous value: -"Who writes it, as the household would say it: \"State Farm\", \"Farmers\", \"AAA\". Without it no carrier gives a multi-policy discount"New value: +"Who writes it, e.g. \"State Farm\""
      • removedInput schema / $defs / HeldPolicyInput / properties / in_force / description
        Removed value: -"False for a policy that has lapsed or been cancelled"
      • addedInput schema / $defs / HomeAsk
        Added value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "aop_deductible": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "All-other-perils deductible in dollars, e.g. 1000",
        +      "title": "Aop Deductible"
        +    },
        +    "coverage_a": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Dwelling limit in dollars — the dwelling's replacement cost",
        +      "title": "Coverage A"
        +    },
        +    "coverage_e": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Personal liability limit in dollars, e.g. 300000",
        +      "title": "Coverage E"
        +    },
        +    "coverage_f": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Guest medical (medical payments to others) limit in dollars, e.g. 1000",
        +      "title": "Coverage F"
        +    }
        +  },
        +  "title": "HomeAsk",
        +  "type": "object"
        +}
      • addedInput schema / $defs / LinesInput
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "The coverage to price, one entry per line.",
        +  "properties": {
        +    "auto": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/AutoAsk"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    },
        +    "home": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/HomeAsk"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    },
        +    "renters": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/RentersAsk"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    }
        +  },
        +  "title": "LinesInput",
        +  "type": "object"
        +}
      • changedInput schema / $defs / LossInput / description
        Previous value: -"One prior property loss, dated."New value: +"One prior property loss."
      • changedInput schema / $defs / LossInput / properties / amount / description
        Previous value: -"Amount paid out in dollars, if known"New value: +"Paid out, dollars"
      • changedInput schema / $defs / LossInput / properties / on / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^\\d{4}(?:-\\d{2}){0,2}$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / LossInput / properties / on / description
        Previous value: -"When it happened — ISO 8601, reduced precision welcome"New value: +"When it happened: YYYY, YYYY-MM or YYYY-MM-DD"
      • changedInput schema / $defs / PriorInsuranceInput / description
        Previous value: -"The insurance carried now. `since`/`until` are the fact behind every way\na form asks how long it ran — tenure is derived from the dates, never sent\nas its own number."New value: +"The insurance carried now."
      • removedInput schema / $defs / PriorInsuranceInput / properties / carrier / description
        Removed value: -"Current carrier's name"
      • removedInput schema / $defs / PriorInsuranceInput / properties / insured / description
        Removed value: -"Currently insured?"
      • removedInput schema / $defs / PriorInsuranceInput / properties / lapse
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "boolean"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Any lapse in coverage in the last 12 months",
        -  "title": "Lapse"
        -}
      • removedInput schema / $defs / PriorInsuranceInput / properties / limits
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "maxLength": 200,
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Bodily-injury limits carried now, e.g. \"100/300\" — carriers ask it of the insured",
        -  "title": "Limits"
        -}
      • changedInput schema / $defs / PriorInsuranceInput / properties / since / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^\\d{4}(?:-\\d{2}){0,2}$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / PriorInsuranceInput / properties / since / description
        Previous value: -"When this coverage started — ISO 8601, reduced precision welcome (\"2019\")"New value: +"Start date: YYYY, YYYY-MM or YYYY-MM-DD"
      • changedInput schema / $defs / PriorInsuranceInput / properties / until / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^\\d{4}(?:-\\d{2}){0,2}$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / PriorInsuranceInput / properties / until / description
        Previous value: -"When it ends/ended — ISO 8601, reduced precision welcome; omit while the cover is still in force"New value: +"End date: YYYY, YYYY-MM or YYYY-MM-DD; omit while in force"
      • changedInput schema / $defs / PropertyBlock / description
        Previous value: -"The dwelling's facts — used by home AND renters. Accepted and recorded\ntoday; priced once a property line launches."New value: +"The dwelling, for home and renters."
      • changedInput schema / $defs / PropertyBlock / properties / household / description
        Previous value: -"How many people live in the home"New value: +"Number of people living in the home"
      • changedInput schema / $defs / PropertyBlock / properties / losses / description
        Previous value: -"Prior property losses, each DATED (carrier forms ask when). [] means asked-and-loss-free; omit the field if never asked"New value: +"Prior property losses, each dated. [] means none; omit if unknown"
      • removedInput schema / $defs / PropertyBlock / properties / miles_to_fire_station / description
        Removed value: -"Road miles to the responding fire station — a rating axis at several carriers"
      • changedInput schema / $defs / PropertyBlock / properties / purchased / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^\\d{4}(?:-\\d{2}){0,2}$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / PropertyBlock / properties / purchased / description
        Previous value: -"When the home was purchased — ISO 8601, reduced precision welcome (\"2021\" / \"2021-06\"). Carrier forms ask it outright."New value: +"When the home was bought: YYYY, YYYY-MM or YYYY-MM-DD"
      • changedInput schema / $defs / PropertyBlock / properties / renovation_permit_year / description
        Previous value: -"Year of the last permitted renovation (plumbing/electrical/heating/roof)"New value: +"Year of the last permitted plumbing, electrical, heating or roof work"
      • changedInput schema / $defs / PropertyBlock / properties / replacement_cost / description
        Previous value: -"Estimated dwelling replacement cost in dollars, if the user has one"New value: +"Dwelling replacement cost estimate, dollars"
      • removedInput schema / $defs / PropertyBlock / properties / roof_layers / description
        Removed value: -"How many layers of roofing are on the house"
      • changedInput schema / $defs / PropertyBlock / properties / roof_year / description
        Previous value: -"Year the roof was last fully replaced"New value: +"Year the roof was last replaced"
      • changedInput schema / $defs / PropertyBlock / properties / seismic_retrofit / description
        Previous value: -"Whether an older home has been seismically retrofitted (asked in CA)"New value: +"Whether the home has been seismically retrofitted"
      • changedInput schema / $defs / PropertyBlock / properties / units / description
        Previous value: -"How many families the building holds"New value: +"Number of families the building holds"
      • changedInput schema / $defs / QuoteProfile / description
        Previous value: -"The household being quoted: a line-neutral core plus per-line blocks.\nA few facts are REQUIRED — the ZIP, the applicant's age (or dob), and,\nwhen quoting auto, each vehicle's year/make/model — because they have no\nneutral rateable value; YOU supply those, inventing a concrete value from\ncontext when the user was vague and telling them so. Everything else is\noptional: omissions become explicit, priced assumptions (`assumptions` /\n`tighten_by`), never a refusal.\n\nThe core carries facts about the people and where they live; the `auto`\nblock carries `drivers[]` and `vehicles[]`; the `property` block carries\nthe dwelling (home AND renters). A household that will only ever buy\nrenters simply has no `auto` block, and nothing about a car is assumed\nfor it."New value: +"The household being quoted: the people and where they live, plus an\n`auto` block (drivers and vehicles) and a `property` block (the\ndwelling). REQUIRED: the ZIP, the applicant's age (or dob) and, for auto,\neach vehicle's year/make/model — when the user was vague, pass a concrete\nvalue and tell them. Everything else is optional; omissions come back as\n`assumptions`."
      • removedInput schema / $defs / QuoteProfile / properties / auto / description
        Removed value: -"The auto line's facts: drivers[] and vehicles[]"
      • changedInput schema / $defs / QuoteProfile / properties / companion_policies / description
        Previous value: -"Policies the household already holds, each with who writes it, e.g. [{\"line\": \"home\", \"carrier\": \"State Farm\"}] — only the carrier writing a policy gives a multi-policy discount for it"New value: +"Policies the household already holds, e.g. [{\"line\": \"home\", \"carrier\": \"State Farm\"}]"
      • changedInput schema / $defs / QuoteProfile / properties / credit_range / description
        Previous value: -"'Excellent' / 'Good' / 'Fair' / 'Poor'. Not a rating input in CA, HI, MA, or MI (credit-based auto rating is banned there) — omit it and don't ask shoppers in those states."New value: +"'Excellent' / 'Good' / 'Fair' / 'Poor' — omit it in CA, HI, MA and MI"
      • changedInput schema / $defs / QuoteProfile / properties / dob / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "format": "date",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / dob / description
        Previous value: -"Date of birth, YYYY-MM-DD (alternative to age)"New value: +"YYYY-MM-DD; alternative to age"
      • changedInput schema / $defs / QuoteProfile / properties / effective_date / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "format": "date",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / effective_date / description
        Previous value: -"Desired start date for the new policy, YYYY-MM-DD"New value: +"Policy start date, YYYY-MM-DD"
      • changedInput schema / $defs / QuoteProfile / properties / home_ownership_status / description
        Previous value: -"'rent' / 'own with mortgage' / 'own outright' — bare 'own' is accepted; carrier forms ask which"New value: +"'rent' / 'own with mortgage' / 'own outright' — bare 'own' is accepted"
      • removedInput schema / $defs / QuoteProfile / properties / industry / description
        Removed value: -"Industry beside the occupation, e.g. 'Finance and Insurance' — GEICO's live quote form insists on it"
      • changedInput schema / $defs / QuoteProfile / properties / memberships / description
        Previous value: -"Organizations the applicant belongs to, e.g. ['Costco', 'AAA'] — group/affinity plans (CA §1861.12) discount on them"New value: +"Organizations the applicant belongs to, e.g. ['Costco', 'AAA']"
      • changedInput schema / $defs / QuoteProfile / properties / military_affiliation / description
        Previous value: -"'active' / 'veteran' / 'family' / 'none' — USAA quotes only military-affiliated households"New value: +"'active' / 'veteran' / 'family' / 'none'"
      • removedInput schema / $defs / QuoteProfile / properties / military_branch
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "maxLength": 200,
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Branch of service, e.g. 'Army', 'Navy' (USAA asks)",
        -  "title": "Military Branch"
        -}
      • removedInput schema / $defs / QuoteProfile / properties / military_rank_paygrade
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "maxLength": 200,
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Rank / pay grade, e.g. 'E-5' (USAA asks)",
        -  "title": "Military Rank Paygrade"
        -}
      • removedInput schema / $defs / QuoteProfile / properties / military_service_end_year
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Military Service End Year"
        -}
      • removedInput schema / $defs / QuoteProfile / properties / military_service_start_year
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Military Service Start Year"
        -}
      • removedInput schema / $defs / QuoteProfile / properties / months_at_residence / description
        Removed value: -"How long at the current address, in months"
      • removedInput schema / $defs / QuoteProfile / properties / occupation / description
        Removed value: -"Occupation as carriers collect it, e.g. 'Accountant'"
      • removedInput schema / $defs / QuoteProfile / properties / prior_insurance / description
        Removed value: -"The insurance carried now — carrier, dates, limits held"
      • removedInput schema / $defs / QuoteProfile / properties / property / description
        Removed value: -"The dwelling's facts — home and renters alike"
      • changedInput schema / $defs / QuoteProfile / properties / state / description
        Previous value: -"Two-letter state code, e.g. 'CA' (derived from zip_code when omitted)"New value: +"Two-letter code; derived from zip_code when omitted"
      • removedInput schema / $defs / QuoteProfile / properties / street_address / description
        Removed value: -"Street address (line 1) — sharpens territory rating and is required for live carrier submissions (logged as PII, never echoed)"
      • removedInput schema / $defs / QuoteProfile / properties / unit / description
        Removed value: -"Apartment/unit number (address line 2) — a renter or condo dweller in a multi-unit building needs it for live carrier submissions"
      • addedInput schema / $defs / RentersAsk
        Added value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "coverage_c": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Personal-property (contents) limit in dollars, e.g. 30000",
        +      "title": "Coverage C"
        +    },
        +    "coverage_d": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Loss-of-use limit in dollars",
        +      "title": "Coverage D"
        +    },
        +    "coverage_e": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Personal liability limit in dollars, e.g. 100000",
        +      "title": "Coverage E"
        +    },
        +    "coverage_f": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Guest medical (medical payments to others) limit in dollars, e.g. 1000",
        +      "title": "Coverage F"
        +    },
        +    "deductible": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "All-perils deductible in dollars, e.g. 500",
        +      "title": "Deductible"
        +    }
        +  },
        +  "title": "RentersAsk",
        +  "type": "object"
        +}
      • changedInput schema / $defs / VehicleInput / properties / body_style / description
        Previous value: -"Trim / body style as the carrier lists it, e.g. \"XLT AWD 4D GAS\""New value: +"Trim / body style, e.g. \"XLT AWD 4D GAS\""
      • removedInput schema / $defs / VehicleInput / properties / bought_new / description
        Removed value: -"Whether the vehicle was new when bought (Allstate asks)"
      • changedInput schema / $defs / VehicleInput / properties / cost / description
        Previous value: -"What the vehicle cost new, whole dollars — some carriers' live quote forms (Kemper) insist on it"New value: +"Cost new, whole dollars"
      • changedInput schema / $defs / VehicleInput / properties / garaging_zip / description
        Previous value: -"ZIP where THIS vehicle is garaged, when it differs from the household's zip_code — auto rating keys on the garaging territory, so a stated garaging ZIP is what gets rated"New value: +"ZIP where this vehicle is kept, when different from zip_code"
      • changedInput schema / $defs / VehicleInput / properties / purchase_date / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^\\d{4}(?:-\\d{2}){0,2}$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / VehicleInput / properties / purchase_date / description
        Previous value: -"When the vehicle was bought — ISO 8601, \"2021-06\" or \"2021\" welcome"New value: +"When bought: YYYY, YYYY-MM or YYYY-MM-DD"
      • removedInput schema / $defs / VehicleInput / properties / vin / description
        Removed value: -"17-character VIN — live carrier forms prefer it over year/make/model"
      • changedInput schema / $defs / ViolationInput / description
        Previous value: -"One citation, as it will be declared. Dated, because carriers\nprice WHEN it happened — counts and windows are derived, never sent."New value: +"One moving violation."
      • changedInput schema / $defs / ViolationInput / properties / on / description
        Previous value: -"When it happened — ISO 8601, reduced precision welcome: \"2024\", \"2024-06\", or \"2024-06-15\". A year IS a date."New value: +"When it happened: YYYY, YYYY-MM or YYYY-MM-DD"
      • addedInput schema / $defs / ViolationInput / properties / on / pattern
        Added value: +"^\\d{4}(?:-\\d{2}){0,2}$"
      • changedInput schema / properties / lines / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "$ref": "#/$defs/CoverageSelectionInput"
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "$ref": "#/$defs/LinesInput"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / lines / title
        Removed value: -"Lines"
      • addedOutput schema / $defs / SkippedLines
        Added value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "lines": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Lines",
        +      "type": "array"
        +    },
        +    "message": {
        +      "title": "Message",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "lines",
        +    "message"
        +  ],
        +  "title": "SkippedLines",
        +  "type": "object"
        +}
      • changedOutput schema / properties / skipped / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "type": "string"
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "$ref": "#/$defs/SkippedLines"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / skipped / title
        Removed value: -"Skipped"
  7. 2 tool updates
    • Changedlive_carrier_quotes83 fields changed
      • removedInput schema / $defs / AccidentInput / properties / on / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / $defs / AccidentInput / properties / on / default
        Removed value: -null
      • addedInput schema / $defs / AccidentInput / properties / on / type
        Added value: +"string"
      • addedInput schema / $defs / AccidentInput / required
        Added value: +[
        +  "on"
        +]
      • changedInput schema / $defs / CoverageSelectionInput / description
        Previous value: -"The coverage to price, as actual numbers on named axes — the value type\nof every entry in the ``lines`` map, so it publishes each line's axes side\nby side (a line reads only its own; the map key says which apply).\n\nTyped for the same reason as ``QuoteProfile``: with a bare dict the schema\npublished ``additionalProperties: true`` and nothing else, so callers\nguessed key names (\"bodily_injury\") and burned a round trip on the\nselection-required refusal before learning the real ones. The fields are\nall optional HERE because completeness is judged server-side\n(``coverage_ask``, per line): an incomplete selection must reach the\nengines' rich ``coverage_selection_required`` payload — which names the\nmissing axes, a common choice, and (auto) the state's legal minimum — not\ndie as a generic schema validation error. ``extra=\"allow\"`` keeps the\nparser's accepted aliases (``bi_limit``, ``collision_deductible``,\n``uim``…), the rarer home axes (B/C/D ratios, hurricane/water deductibles,\n``endorsements``), and wider overrides working."New value: +"The coverage to price, as actual numbers on named axes — the value of\neach entry in the `lines` map. Each line reads only its own axes; the map\nkey says which apply."
      • changedInput schema / $defs / DriverInput / properties / accidents / description
        Previous value: -"Accidents, each dated. An empty list means none."New value: +"Accidents, one entry each, e.g. [{\"on\": \"2023-06-15\", \"at_fault\": true, \"amount\": 4200}] — every entry needs `on`. An empty list means none."
      • changedInput schema / $defs / DriverInput / properties / drivers_license_number / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / education / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / employment_status / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / exclusion_reason / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / first_name / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / gender / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / industry / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / last_name / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / license_state / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / marital_status / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / occupation / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / relation / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / status / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / violations / description
        Previous value: -"Moving violations, each dated. An empty list means a clean record."New value: +"Moving violations, one entry each, e.g. [{\"on\": \"2025-01\", \"kind\": \"speeding\"}] — every entry needs `kind` and `on`. An empty list means a clean record."
      • addedInput schema / $defs / HeldPolicyInput
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "A policy the household already holds. A carrier's bundle discount\napplies only to a policy THAT carrier's group writes, so the writer is\nhalf the fact: name it, or no carrier's discount applies.",
        +  "properties": {
        +    "carrier": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Who writes it, as the household would say it: \"State Farm\", \"Farmers\", \"AAA\". Without it no carrier gives a multi-policy discount",
        +      "title": "Carrier"
        +    },
        +    "in_force": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "False for a policy that has lapsed or been cancelled",
        +      "title": "In Force"
        +    },
        +    "line": {
        +      "description": "What the policy insures: \"home\", \"renters\", \"condo\", \"auto\", \"life\", \"umbrella\"…",
        +      "maxLength": 200,
        +      "title": "Line",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "line"
        +  ],
        +  "title": "HeldPolicyInput",
        +  "type": "object"
        +}
      • changedInput schema / $defs / LossInput / properties / kind / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / PriorInsuranceInput / properties / carrier / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / PriorInsuranceInput / properties / limits / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / PropertyBlock / properties / construction_type / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / PropertyBlock / properties / devices / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "maxLength": 200,
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / PropertyBlock / properties / foundation / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / PropertyBlock / properties / garage / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / PropertyBlock / properties / occupancy / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / PropertyBlock / properties / protection_class / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / PropertyBlock / properties / roof_type / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / description
        Previous value: -"The household being quoted: a line-neutral core plus per-line blocks\n(#1106). Every fact has a declared posture (`foresee.postures`): a few\nare REQUIRED — the ZIP, the applicant's age (or dob), and, when quoting\nauto, each vehicle's year/make/model — because they have no neutral\nrateable value; YOU supply those, inventing a concrete value from context\nwhen the user was vague and telling them so. Everything else is optional:\nomissions become explicit, priced assumptions (`assumptions` /\n`tighten_by`), never a refusal.\n\nThe core carries facts about the people and where they live; the `auto`\nblock carries `drivers[]` and `vehicles[]`; the `property` block carries\nthe dwelling (home AND renters). A household that will only ever buy\nrenters simply has no `auto` block, and nothing about a car is assumed\nfor it.\n\nTyped (rather than a bare dict) so the connector schema tells the model the\nexact field names: an untyped profile made models guess keys (\"zip\"), the\nvalue was silently ignored, and the engines rated a default location.\n``extra=\"allow\"`` keeps two things working unadvertised: the legacy flat\nspellings (``vehicle_year``, ``spouse_dob``, ``currently_insured``,\n3-year incident counts…), which fold onto the blocks — a flat key\ndisagreeing with a block is a hard error naming both — and richer keys\nflowing through to the engines unchanged."New value: +"The household being quoted: a line-neutral core plus per-line blocks.\nA few facts are REQUIRED — the ZIP, the applicant's age (or dob), and,\nwhen quoting auto, each vehicle's year/make/model — because they have no\nneutral rateable value; YOU supply those, inventing a concrete value from\ncontext when the user was vague and telling them so. Everything else is\noptional: omissions become explicit, priced assumptions (`assumptions` /\n`tighten_by`), never a refusal.\n\nThe core carries facts about the people and where they live; the `auto`\nblock carries `drivers[]` and `vehicles[]`; the `property` block carries\nthe dwelling (home AND renters). A household that will only ever buy\nrenters simply has no `auto` block, and nothing about a car is assumed\nfor it."
      • changedInput schema / $defs / QuoteProfile / properties / city / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / companion_policies / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "$ref": "#/$defs/HeldPolicyInput"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / companion_policies / description
        Previous value: -"Lines the household already HOLDS elsewhere, e.g. [\"home\"] — a held companion policy applies each carrier's multi-policy factor"New value: +"Policies the household already holds, each with who writes it, e.g. [{\"line\": \"home\", \"carrier\": \"State Farm\"}] — only the carrier writing a policy gives a multi-policy discount for it"
      • changedInput schema / $defs / QuoteProfile / properties / credit_range / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / education / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / employment_status / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / gender / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / home_ownership_status / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / industry / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / marital_status / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / memberships / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "maxLength": 200,
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / military_affiliation / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / military_branch / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / military_rank_paygrade / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / occupation / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / residence_type / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / state / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / street_address / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / unit / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / $defs / QuoteProfile / properties / zip_code / maxLength
        Added value: +200
      • changedInput schema / $defs / VehicleInput / properties / anti_theft / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / VehicleInput / properties / body_style / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / VehicleInput / properties / garaging_zip / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / VehicleInput / properties / make / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / VehicleInput / properties / model / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / VehicleInput / properties / ownership / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / VehicleInput / properties / primary_use / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / VehicleInput / properties / trim / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / VehicleInput / properties / vin / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / $defs / ViolationInput / properties / kind / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / $defs / ViolationInput / properties / kind / default
        Removed value: -null
      • changedInput schema / $defs / ViolationInput / properties / kind / description
        Previous value: -"The violation in plain words: \"speeding\", \"DUI\", \"reckless \"\"driving\", \"running a red light\"…"New value: +"The violation in plain words: \"speeding\", \"DUI\", \"reckless driving\", \"running a red light\"…"
      • addedInput schema / $defs / ViolationInput / properties / kind / maxLength
        Added value: +200
      • addedInput schema / $defs / ViolationInput / properties / kind / minLength
        Added value: +1
      • addedInput schema / $defs / ViolationInput / properties / kind / type
        Added value: +"string"
      • removedInput schema / $defs / ViolationInput / properties / on / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / $defs / ViolationInput / properties / on / default
        Removed value: -null
      • addedInput schema / $defs / ViolationInput / properties / on / type
        Added value: +"string"
      • addedInput schema / $defs / ViolationInput / required
        Added value: +[
        +  "on",
        +  "kind"
        +]
      • removedOutput schema / $defs / AgentStatusSummary / description
        Removed value: -"One live agent's status in a dispatch envelope's structuredContent."
      • removedOutput schema / $defs / AgentStatusSummary / properties / line / description
        Removed value: -"The line this agent quotes — entry identity is (carrier, line): a bundled dispatch carries the same carrier once per line"
      • removedOutput schema / $defs / AgentStatusSummary / properties / premium / description
        Removed value: -"Verbatim as the carrier's page printed it"
      • removedOutput schema / $defs / AgentStatusSummary / properties / status / description
        Removed value: -"'in_progress' / 'complete' / 'failed'"
      • removedOutput schema / $defs / AgentStatusSummary / properties / term_months / description
        Removed value: -"The term the printed premium covers, in months — when known, present the monthly equivalent (premium ÷ term_months), never a term figure as a monthly one; when absent, the monthly equivalent is unknown"
      • removedOutput schema / description
        Removed value: -"structuredContent of live_carrier_quotes — one shape for both moments:\nthe commissioning receipt and the collected progress/results envelope."
      • removedOutput schema / properties / assumptions / description
        Removed value: -"Unasserted form facts this dispatch resolved to declared no-claim answers (never a discount claim) — each entry names the profile path (field) and the value submitted (assumed). Relay every one with the results; a user who corrects one re-calls with the real value in the profile"
      • removedOutput schema / properties / coverage_selection / description
        Removed value: -"The ask the walks TYPED — what each headline premium is for. A walked profile answers any ask without re-submitting: if the user's ask differs, read each quote's bound cover and variants (the carrier's other recorded options) and present the match"
      • removedOutput schema / properties / example_arguments / description
        Removed value: -"On a profile_required refusal: a correctly-wrapped call to imitate — re-call with the user's facts in this shape"
      • removedOutput schema / properties / needs / description
        Removed value: -"Facts carrier forms insist on that the profile does not carry, per carrier (scope). Each entry's fields[] pairs the walk's own ask with the exact profile/identity schema path to supply it under (field) — collect the answers from the user and re-call; never invent them"
      • removedOutput schema / properties / recover / description
        Removed value: -"On a partial receipt: how to add the skipped carriers without re-submitting the walked ones — re-call with the missing facts merged AND carriers set to exactly recover.carriers (a changed profile is a new dispatch; unscoped, it would re-walk everyone)"
      • removedOutput schema / properties / status / description
        Removed value: -"'in_progress' / 'partial' / 'complete' — re-call the tool with the same arguments to collect"
    • Changedquote_insurance97 fields changed
      • removedInput schema / $defs / AccidentInput / properties / on / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / $defs / AccidentInput / properties / on / default
        Removed value: -null
      • addedInput schema / $defs / AccidentInput / properties / on / type
        Added value: +"string"
      • addedInput schema / $defs / AccidentInput / required
        Added value: +[
        +  "on"
        +]
      • changedInput schema / $defs / CoverageSelectionInput / description
        Previous value: -"The coverage to price, as actual numbers on named axes — the value type\nof every entry in the ``lines`` map, so it publishes each line's axes side\nby side (a line reads only its own; the map key says which apply).\n\nTyped for the same reason as ``QuoteProfile``: with a bare dict the schema\npublished ``additionalProperties: true`` and nothing else, so callers\nguessed key names (\"bodily_injury\") and burned a round trip on the\nselection-required refusal before learning the real ones. The fields are\nall optional HERE because completeness is judged server-side\n(``coverage_ask``, per line): an incomplete selection must reach the\nengines' rich ``coverage_selection_required`` payload — which names the\nmissing axes, a common choice, and (auto) the state's legal minimum — not\ndie as a generic schema validation error. ``extra=\"allow\"`` keeps the\nparser's accepted aliases (``bi_limit``, ``collision_deductible``,\n``uim``…), the rarer home axes (B/C/D ratios, hurricane/water deductibles,\n``endorsements``), and wider overrides working."New value: +"The coverage to price, as actual numbers on named axes — the value of\neach entry in the `lines` map. Each line reads only its own axes; the map\nkey says which apply."
      • changedInput schema / $defs / DriverInput / properties / accidents / description
        Previous value: -"Accidents, each dated. An empty list means none."New value: +"Accidents, one entry each, e.g. [{\"on\": \"2023-06-15\", \"at_fault\": true, \"amount\": 4200}] — every entry needs `on`. An empty list means none."
      • changedInput schema / $defs / DriverInput / properties / drivers_license_number / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / education / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / employment_status / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / exclusion_reason / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / first_name / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / gender / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / industry / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / last_name / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / license_state / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / marital_status / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / occupation / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / relation / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / status / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / DriverInput / properties / violations / description
        Previous value: -"Moving violations, each dated. An empty list means a clean record."New value: +"Moving violations, one entry each, e.g. [{\"on\": \"2025-01\", \"kind\": \"speeding\"}] — every entry needs `kind` and `on`. An empty list means a clean record."
      • addedInput schema / $defs / HeldPolicyInput
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "A policy the household already holds. A carrier's bundle discount\napplies only to a policy THAT carrier's group writes, so the writer is\nhalf the fact: name it, or no carrier's discount applies.",
        +  "properties": {
        +    "carrier": {
        +      "anyOf": [
        +        {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Who writes it, as the household would say it: \"State Farm\", \"Farmers\", \"AAA\". Without it no carrier gives a multi-policy discount",
        +      "title": "Carrier"
        +    },
        +    "in_force": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "False for a policy that has lapsed or been cancelled",
        +      "title": "In Force"
        +    },
        +    "line": {
        +      "description": "What the policy insures: \"home\", \"renters\", \"condo\", \"auto\", \"life\", \"umbrella\"…",
        +      "maxLength": 200,
        +      "title": "Line",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "line"
        +  ],
        +  "title": "HeldPolicyInput",
        +  "type": "object"
        +}
      • changedInput schema / $defs / LossInput / properties / kind / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / PriorInsuranceInput / properties / carrier / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / PriorInsuranceInput / properties / limits / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / PropertyBlock / properties / construction_type / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / PropertyBlock / properties / devices / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "maxLength": 200,
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / PropertyBlock / properties / foundation / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / PropertyBlock / properties / garage / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / PropertyBlock / properties / occupancy / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / PropertyBlock / properties / protection_class / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / PropertyBlock / properties / roof_type / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / description
        Previous value: -"The household being quoted: a line-neutral core plus per-line blocks\n(#1106). Every fact has a declared posture (`foresee.postures`): a few\nare REQUIRED — the ZIP, the applicant's age (or dob), and, when quoting\nauto, each vehicle's year/make/model — because they have no neutral\nrateable value; YOU supply those, inventing a concrete value from context\nwhen the user was vague and telling them so. Everything else is optional:\nomissions become explicit, priced assumptions (`assumptions` /\n`tighten_by`), never a refusal.\n\nThe core carries facts about the people and where they live; the `auto`\nblock carries `drivers[]` and `vehicles[]`; the `property` block carries\nthe dwelling (home AND renters). A household that will only ever buy\nrenters simply has no `auto` block, and nothing about a car is assumed\nfor it.\n\nTyped (rather than a bare dict) so the connector schema tells the model the\nexact field names: an untyped profile made models guess keys (\"zip\"), the\nvalue was silently ignored, and the engines rated a default location.\n``extra=\"allow\"`` keeps two things working unadvertised: the legacy flat\nspellings (``vehicle_year``, ``spouse_dob``, ``currently_insured``,\n3-year incident counts…), which fold onto the blocks — a flat key\ndisagreeing with a block is a hard error naming both — and richer keys\nflowing through to the engines unchanged."New value: +"The household being quoted: a line-neutral core plus per-line blocks.\nA few facts are REQUIRED — the ZIP, the applicant's age (or dob), and,\nwhen quoting auto, each vehicle's year/make/model — because they have no\nneutral rateable value; YOU supply those, inventing a concrete value from\ncontext when the user was vague and telling them so. Everything else is\noptional: omissions become explicit, priced assumptions (`assumptions` /\n`tighten_by`), never a refusal.\n\nThe core carries facts about the people and where they live; the `auto`\nblock carries `drivers[]` and `vehicles[]`; the `property` block carries\nthe dwelling (home AND renters). A household that will only ever buy\nrenters simply has no `auto` block, and nothing about a car is assumed\nfor it."
      • changedInput schema / $defs / QuoteProfile / properties / city / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / companion_policies / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "$ref": "#/$defs/HeldPolicyInput"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / companion_policies / description
        Previous value: -"Lines the household already HOLDS elsewhere, e.g. [\"home\"] — a held companion policy applies each carrier's multi-policy factor"New value: +"Policies the household already holds, each with who writes it, e.g. [{\"line\": \"home\", \"carrier\": \"State Farm\"}] — only the carrier writing a policy gives a multi-policy discount for it"
      • changedInput schema / $defs / QuoteProfile / properties / credit_range / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / education / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / employment_status / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / gender / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / home_ownership_status / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / industry / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / marital_status / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / memberships / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "maxLength": 200,
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / military_affiliation / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / military_branch / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / military_rank_paygrade / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / occupation / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / residence_type / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / state / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / street_address / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / QuoteProfile / properties / unit / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / $defs / QuoteProfile / properties / zip_code / maxLength
        Added value: +200
      • changedInput schema / $defs / VehicleInput / properties / anti_theft / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / VehicleInput / properties / body_style / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / VehicleInput / properties / garaging_zip / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / VehicleInput / properties / make / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / VehicleInput / properties / model / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / VehicleInput / properties / ownership / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / VehicleInput / properties / primary_use / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / VehicleInput / properties / trim / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / $defs / VehicleInput / properties / vin / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / $defs / ViolationInput / properties / kind / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / $defs / ViolationInput / properties / kind / default
        Removed value: -null
      • changedInput schema / $defs / ViolationInput / properties / kind / description
        Previous value: -"The violation in plain words: \"speeding\", \"DUI\", \"reckless \"\"driving\", \"running a red light\"…"New value: +"The violation in plain words: \"speeding\", \"DUI\", \"reckless driving\", \"running a red light\"…"
      • addedInput schema / $defs / ViolationInput / properties / kind / maxLength
        Added value: +200
      • addedInput schema / $defs / ViolationInput / properties / kind / minLength
        Added value: +1
      • addedInput schema / $defs / ViolationInput / properties / kind / type
        Added value: +"string"
      • removedInput schema / $defs / ViolationInput / properties / on / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / $defs / ViolationInput / properties / on / default
        Removed value: -null
      • addedInput schema / $defs / ViolationInput / properties / on / type
        Added value: +"string"
      • addedInput schema / $defs / ViolationInput / required
        Added value: +[
        +  "on",
        +  "kind"
        +]
      • removedOutput schema / $defs / BundleSummary / description
        Removed value: -"One carrier's bundle arithmetic when a call prices several lines\ntogether. Totals are two REAL ratings of the same profile — the carrier's\nmulti-policy factors applied and cleared — never a percentage: the\nfactors apply per line and per coverage, and each shows in that line's\nown quote cell like any other applied factor. This block only adds the\ncross-line sums those cells cannot carry."
      • removedOutput schema / $defs / BundleSummary / properties / bundle_total / description
        Removed value: -"Monthly total across those lines rated together — the sum of this carrier's headline `monthly` in each line's by_line cell"
      • removedOutput schema / $defs / BundleSummary / properties / lines / description
        Removed value: -"The lines this carrier priced together"
      • removedOutput schema / $defs / BundleSummary / properties / savings / description
        Removed value: -"standalone_total − bundle_total, USD per month"
      • removedOutput schema / $defs / BundleSummary / properties / standalone_total / description
        Removed value: -"Monthly total for the same lines each rated alone"
      • removedOutput schema / $defs / CarrierQuoteSummary / description
        Removed value: -"One carrier's headline in a quote result's structuredContent."
      • removedOutput schema / $defs / CarrierQuoteSummary / properties / carrier_quote_url / description
        Removed value: -"The carrier's own quoting portal — where a purchase completes"
      • removedOutput schema / $defs / CarrierQuoteSummary / properties / monthly / description
        Removed value: -"Point-estimate monthly premium, USD"
      • addedOutput schema / $defs / CarrierQuoteSummary / properties / rated_vs_asked
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Rated Vs Asked"
        +}
      • removedOutput schema / $defs / CarrierQuoteSummary / properties / warnings / description
        Removed value: -"Per-carrier honesty notes — off-ladder-ask divergence, unconfirmed eligibility, no direct purchase path — relay them with the price"
      • removedOutput schema / $defs / LineQuoteSummary / description
        Removed value: -"One priced line's headline block inside ``by_line``: the ask, the\nprices, and the declared honesty blocks — what was assumed, what to ask\nthe user to sharpen it, who couldn't price the ask and why, and which\ngiven inputs these rates don't price. Surface all of them."
      • removedOutput schema / $defs / LineQuoteSummary / properties / assumptions / description
        Removed value: -"Omitted facts priced at a declared stand-in value — relay them with the prices; never present an assumed price as a measured one. An entry carrying `path` names the exact profile field to send the user's real answer under; a path-less entry is answered by completing the incident entries already sent"
      • removedOutput schema / $defs / LineQuoteSummary / properties / coverage_selection / description
        Removed value: -"The ask this line was priced at, echoed verbatim"
      • removedOutput schema / $defs / LineQuoteSummary / properties / failures / description
        Removed value: -"Carriers that could not price this exact ask, each with the reason (limit not offered, eligibility…) — they dropped out, they are not cheap or missing"
      • removedOutput schema / $defs / LineQuoteSummary / properties / input_flags / description
        Removed value: -"Given inputs that look wrong (e.g. an odometer reading sent as annual mileage)"
      • removedOutput schema / $defs / LineQuoteSummary / properties / not_rated / description
        Removed value: -"Inputs the caller GAVE that these rates do not price (a second vehicle, rideshare use…) — relay each note verbatim"
      • removedOutput schema / $defs / LineQuoteSummary / properties / tighten_by / description
        Removed value: -"The missing facts that most move the price — offer to re-quote with the user's answers, each sent under its matching assumptions (or input_flags) entry's `path`"
      • removedOutput schema / description
        Removed value: -"structuredContent of the quote tools: headline numbers only, keyed by\nline from the first scan (#1106) so a second line's launch never diffs\nthis schema.\n\nThe content channel carries the full sub-coverage/ladder detail; this stays\nconcise on purpose, and carries no internal identifiers (GHI #1101)."
      • removedOutput schema / properties / bundle / description
        Removed value: -"Per-carrier bundle totals, keyed like by_line's carrier_key, when one carrier priced several of the asked lines together. Absent means no bundle pricing was computed — never present multi-line prices as bundled unless this block says so"
      • removedOutput schema / properties / by_line / description
        Removed value: -"Each priced line's carriers, cheapest first"
      • removedOutput schema / properties / coverage_required / description
        Removed value: -"Lines needing a coverage ask, each naming its own axes"
      • addedOutput schema / properties / dense
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Dense"
        +}
      • removedOutput schema / properties / example_arguments / description
        Removed value: -"On a profile_required refusal: a correctly-wrapped call to imitate — re-call with the user's facts in this shape"
      • removedOutput schema / properties / presentation / description
        Removed value: -"How to present priced results — rides with them"
      • removedOutput schema / properties / profile_required / description
        Removed value: -"Required profile facts still missing (field → what to pass). Nothing is priced while any is open: supply each — if the user didn't state one, pass your best concrete value and present it to them as your assumption"
      • removedOutput schema / properties / skipped / description
        Removed value: -"Lines not priced, with the honest reason — relay it"
  8. 2 tool updates
    • First observedlive_carrier_quotes
    • First observedquote_insurance

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to get real home & auto insurance quotes and start binding through a network of licensed independent agencies.
    1
    Apache 2.0
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides tools for motor insurance quoting, including vehicle lookups, postcode risk assessments, and premium calculations. It enables users to generate and compare car insurance quotes through natural language interactions.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.